banbing上不去过天天向上吗

&figure&&img src=&https://pic3.zhimg.com/v2-d764e0ad4e2_b.jpg& data-rawwidth=&620& data-rawheight=&350& class=&origin_image zh-lightbox-thumb& width=&620& data-original=&https://pic3.zhimg.com/v2-d764e0ad4e2_r.jpg&&&/figure&&p&&/p&&figure&&img src=&https://pic2.zhimg.com/v2-475b2e0b41b8cf84db2205_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&703& data-rawheight=&258& class=&origin_image zh-lightbox-thumb& width=&703& data-original=&https://pic2.zhimg.com/v2-475b2e0b41b8cf84db2205_r.jpg&&&/figure&&p&谷歌、微软、亚马逊······这些巨型硅谷 IT 公司应该是很多 IT 从业者们的梦想之地。&/p&&figure&&img src=&https://pic2.zhimg.com/v2-608e7bff1b502f2dda6ab3_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&498& data-rawheight=&233& data-thumbnail=&https://pic4.zhimg.com/v2-608e7bff1b502f2dda6ab3_b.jpg& class=&origin_image zh-lightbox-thumb& width=&498& data-original=&https://pic4.zhimg.com/v2-608e7bff1b502f2dda6ab3_r.jpg&&&/figure&&p&这些科技巨头过去十几年在互联网领域叱咤风云,而在当下风生水起的 AI 技术浪潮中,这些公司依然走在科技的最前沿,吸引大批 IT 人才慕名加入。虽然谷歌、微软和苹果等大厂这两年扩招了很多 AI 职位,但入职的路上依然困难重重。最近机器学习专家、Acing AI 创始人 Vimarsh Karbhari 分享了谷歌、微软、亚马逊等硅谷 IT 巨头 AI 职位的面试习题,希望对准备将来加入这些公司的你能有所帮助。即便是现阶段没有此项计划,看看大厂的要求也是可以的。&/p&&figure&&img src=&https://pic1.zhimg.com/v2-40d56cc2b60c5c949d39c_b.jpg& data-size=&normal& data-rawwidth=&200& data-rawheight=&200& class=&content_image& width=&200&&&figcaption&Vimarsh Karbhari&/figcaption&&/figure&&p&&br&&/p&&h2&&b&Google&/b&&/h2&&p&作为全球知名的科技巨头,谷歌将世界上许多最顶尖的 AI 科学家、数据科学家和研发工程师招至麾下。自从去年谷歌 CEO 宣布“AI 先行”战略后,谷歌开始将 AI 技术应用在自家产品上。与此同时许多有志于在 AI 领域发展的人也跃跃欲试,申请加入谷歌。&/p&&p&此前谷歌的 AI 研究主要有三大领域:&b&数据基础设施与分析&/b&,&b&谷歌大脑项目&/b&和&b&谷歌 AI 医疗&/b&。不过今年 4 月初,谷歌对旗下业务大幅调整,将谷歌大脑和其它业务整合为 AI 业务。&/p&&p&&br&&/p&&p&谷歌在 AI 领域的研究成果主要涉及三块:&/p&&ul&&li&&b&机器智能&/b&&/li&&li&&b&机器感知&/b&&/li&&li&&b&自然语言处理&/b&&/li&&/ul&&p&&br&&/p&&p&&b&面试过程&/b&&/p&&p&谷歌的技术面试流程就是标准的技术面过程,先是电话或视频面试,然后是现场面试。对于技术面试需要注意的地方,谷歌 Career 上有详细的指导,可以参考一下:&/p&&p&&a href=&http://link.zhihu.com/?target=https%3A//careers.google.com/how-we-hire/interview/%23interviews-for-software-engineering-and-technical-roles& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&careers.google.com/how-&/span&&span class=&invisible&&we-hire/interview/#interviews-for-software-engineering-and-technical-roles&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&&br&&/p&&p&&b&谷歌 AI 有关的重要读物和资料&/b&&/p&&p&&br&&/p&&ul&&li&&b&TensorFlow&/b&&/li&&/ul&&p&TensorFlow 是谷歌推出的一款重量级 AI 学习系统,面试谷歌 AI 职位,它是必须要熟悉的。&/p&&p&参考读物:&a href=&http://link.zhihu.com/?target=https%3A//arxiv.org/pdf/v2.pdf& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&arxiv.org/pdf/&/span&&span class=&invisible&&5v2.pdf&/span&&span class=&ellipsis&&&/span&&/a&&/p&&ul&&li&&b&谷歌在硬件和软件方面应用的各种AI工具&/b&&/li&&/ul&&p&参考资料:&a href=&http://link.zhihu.com/?target=https%3A//ai.google/tools/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&ai.google/tools/&/span&&span class=&invisible&&&/span&&/a&&/p&&ul&&li&&b&非官方谷歌数据科学博客&/b&&/li&&/ul&&p&资料地址:&a href=&http://link.zhihu.com/?target=http%3A//www.unofficialgoogledatascience.com/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&unofficialgoogledatascience.com&/span&&span class=&invisible&&/&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&&br&&/p&&p&&b&谷歌 AI 和数据科学 20 道面试习题&/b&&/p&&ul&&li&1/x 的导数是?&/li&&li&画出 log(x+10) 的曲线&/li&&li&怎样设计一份客户满意度调查?&/li&&li&将一枚硬币投掷 10 次,8 次正面,2 次反面。你该怎样分析这枚硬币是否重量分布均匀?p 值为多少?&/li&&li&假设你有 10 枚硬币,把每一枚都投掷 10 次(总共投掷 100 次),并观察结果。你会修正自己测试硬币重量分布是否均匀的方法吗?&/li&&li&解释一种非正态概率分布,以及如何应用它?&/li&&li&为何使用特征选择?如果两个预测值高度相关,对逻辑回归的系数有何影响?系数的置信区间如何?&/li&&li&K 均值聚类方法与高斯混合模型:K 均值聚类算法与 EM 算法的区别是什么?&/li&&li&当使用高斯混合模型时,你如何确定模型是适用的?(正态分布)&/li&&li&如果聚类中的标签已知,如何评估模型的性能?&/li&&li&假如你有一个谷歌应用,对其作出了修改。你怎么测试一个度量是否发生变化?&/li&&li&描述一下数据分析流程&/li&&li&为何不用逻辑回归,而用 GBM 算法?&/li&&li&推导 GBM 算法的公式&/li&&li&你如何衡量用户对视频的喜欢程度?&/li&&li&模拟一个二元正太分布&/li&&li&推导一个分布的方差&/li&&li&每年有多少人申请加入谷歌&/li&&li&如何估计中位数?&/li&&li&如果对一个回归模型中的两个系数分别进行估计,在统计上是显著的,你认为将二者一起估计,在统计上是否依然显著?&/li&&/ul&&p&&br&&/p&&figure&&img src=&https://pic3.zhimg.com/v2-107ca51f0961defef1de_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1000& data-rawheight=&402& class=&origin_image zh-lightbox-thumb& width=&1000& data-original=&https://pic3.zhimg.com/v2-107ca51f0961defef1de_r.jpg&&&/figure&&p&&br&&/p&&h2&&b&Microsoft&/b&&/h2&&p&和谷歌一样,微软今年也大幅调整了自家业务,拥抱 AI。微软 CEO 纳德拉在给员工的内部信中宣布成立两个全新的部门:Intelligent Cloud 和 Intelligent Edge。这表明微软决定全力参与这场 AI 浪潮,不用说微软会招揽更多的 AI 人才。&/p&&p&&br&&/p&&p&&b&面试流程&/b&&/p&&p&微软的面试流程和其它招聘软件工程师的公司一样。不过数据科学职位通常会做些变动,这也反应了此类职位的重要地位。面试过程通常包括电话面试(会聊到写代码)和现场面试。其中现场面试大概有 4-5 轮面试,可能有 2-3 轮面试中会深入探讨数据科学相关的问题、研究和模型,剩余的面试部分主要是测试编程能力。&/p&&p&&br&&/p&&p&&b&微软 AI 职位相关参考资料&/b&&/p&&p&和谷歌一样,微软最近也发布了自家 AI 学习平台—— AI School。其核心 AI 平台被分为三块:&b&服务,基础设施&/b&和&b&工具&/b&。&/p&&p&&br&&/p&&ul&&li&微软 AI School:&a href=&http://link.zhihu.com/?target=https%3A//aischool.microsoft.com/learning-paths& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&aischool.microsoft.com/&/span&&span class=&invisible&&learning-paths&/span&&span class=&ellipsis&&&/span&&/a&&/li&&li&AI Demos(数据表示和可视化展示):&a href=&http://link.zhihu.com/?target=https%3A//aidemos.microsoft.com/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&aidemos.microsoft.com/&/span&&span class=&invisible&&&/span&&/a&&/li&&li&微软 Azure AI Solutions(和亚马逊 AWS 类似):&a href=&http://link.zhihu.com/?target=https%3A//gallery.azure.ai/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&gallery.azure.ai/&/span&&span class=&invisible&&&/span&&/a&&/li&&li&微软研究播客:&a href=&http://link.zhihu.com/?target=https%3A//www.microsoft.com/en-us/research/blog/category/podcast/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://www.&/span&&span class=&visible&&microsoft.com/en-us/res&/span&&span class=&invisible&&earch/blog/category/podcast/&/span&&span class=&ellipsis&&&/span&&/a&&/li&&/ul&&p&&br&&/p&&p&&b&AI/数据科学相关面试题&/b&&/p&&ul&&li&合并 K(这里设 K=2)个数组,并将它们排序。&/li&&li&从 5 百万个搜索请求中选出一个代表样本的最佳方法是什么?&/li&&li&你在西雅图的 3 个朋友告诉你那里在下雨,其中一人撒谎的概率为 1/3,那么西雅图在下雨的概率是多少?&/li&&li&能否解释一下朴素贝叶斯的基本知识?你如何设定阙值?&/li&&li&能否解释一下什么是分布式计算(MapReduce)?它的工作原理是什么?&/li&&li&能否解释一下支持向量机?&/li&&li&如何检测一个新的观测值是否为异常值?什么是偏差-方差权衡(bias-variance trade off)?&/li&&li&探讨一下如何从产品用户群体中随机选一个样本&/li&&li&如何实现自动完成(AutoComplete)?&/li&&li&描述一下 Gradient Boost 算法的工作原理。&/li&&li&找到一个整数列表中子序列的最大值。&/li&&li&如果要概括一份推特简讯,你会怎么做?&/li&&li&解释一下在应用机器学习算法前进行数据整理和清洗的步骤。&/li&&li&如何处理不平衡二元分类问题?&/li&&li&如何衡量数据点之间的距离?&/li&&li&定义方差。&/li&&li&箱型图和直方图之间的区别是什么?&/li&&li&你怎么解决 L2 正则回归问题?&/li&&li&如何用一些计算技巧更快的计算逆矩阵?&/li&&li&怎样在不用计算器的情况下进行一系列的计算?解释自己解决步骤背后的逻辑。&/li&&li&好的数据可视化和糟糕的数据可视化之间有哪些不同?&/li&&li&你怎样找到百分位?请写出实现代码。&/li&&li&从一组值的序列中找到最大子序列和。&/li&&li&L1 正则化矩阵和 L2 正则化矩阵的区别是什么?&/li&&li&创建一个函数,检查一个词是否为回文结构。&/li&&/ul&&p&&br&&/p&&p&从面试题中也可以看出,微软的面试中有不少&b&开放式问题&/b&,可以有很多中解决方法。也有一些问题基于数据表示和可视化,这和其他一些公司有些不同。&/p&&p&&br&&/p&&p&下一篇准备整理&b&苹果&/b&和&b&亚马逊&/b&的面试题,想看的同学就给这篇戳个赞呗?&/p&&hr&&blockquote&&b&&i&参考资料:&/i&&/b& &b&&i&&a href=&http://link.zhihu.com/?target=https%3A//medium.com/acing-ai/microsoft-ai-interview-questions-acing-the-ai-interview-beea& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&medium.com/acing-ai/mic&/span&&span class=&invisible&&rosoft-ai-interview-questions-acing-the-ai-interview-beea&/span&&span class=&ellipsis&&&/span&&/a&&/i&&/b&&/blockquote&&figure&&img src=&https://pic1.zhimg.com/v2-03b642bbf1bc_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&600& data-rawheight=&500& class=&origin_image zh-lightbox-thumb& width=&600& data-original=&https://pic1.zhimg.com/v2-03b642bbf1bc_r.jpg&&&/figure&&p&&/p&
谷歌、微软、亚马逊······这些巨型硅谷 IT 公司应该是很多 IT 从业者们的梦想之地。这些科技巨头过去十几年在互联网领域叱咤风云,而在当下风生水起的 AI 技术浪潮中,这些公司依然走在科技的最前沿,吸引大批 IT 人才慕名加入。虽然谷歌、微软和苹果…
ML,CV领域 &br&&br&arxiv 很多人都说过了,为了提供更佳的阅读体验,李飞飞的弟子karpathy写了下面这个网站:&br&&a href=&//link.zhihu.com/?target=http%3A//www.arxiv-sanity.com/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&arxiv-sanity.com/&/span&&span class=&invisible&&&/span&&/a&&br&&br&&br&它提供CV,CL,LG,NE,ML等领域的最新论文,并有根据论文的收藏数进行推荐等其他功能。
ML,CV领域 arxiv 很多人都说过了,为了提供更佳的阅读体验,李飞飞的弟子karpathy写了下面这个网站:
它提供CV,CL,LG,NE,ML等领域的最新论文,并有根据论文的收藏数进行推荐等其他功能。
&figure&&img src=&https://pic4.zhimg.com/50/v2-e034fdd07fc495961eeffd2_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&703& data-rawheight=&258& class=&origin_image zh-lightbox-thumb& width=&703& data-original=&https://pic4.zhimg.com/50/v2-e034fdd07fc495961eeffd2_r.jpg&&&/figure&&p&TensorFlow 是 Google 开发的一款用于机器学习的开源软件库。它能够在所有 Linux,Windows和 MacOS 平台上运行 CPU 和 GPU。Tensorflow 可用于设计,实现和训练深度学习模型。&/p&&p&&br&&/p&&p&下面是由&a href=&//link.zhihu.com/?target=https%3A//github.com/xitu/gold-miner& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&掘金翻译计划&/a&实时维护的 TensorFlow 官方文档中文版,维护者为全球各大公司开发人员和各著名高校研究者及学生。希望能对大家入门 TensorFlow 提供更多的帮助。&/p&&p&&br&&/p&&a href=&//link.zhihu.com/?target=https%3A//github.com/xitu/tensorflow-docs& data-draft-node=&block& data-draft-type=&link-card& data-image=&https://pic3.zhimg.com/v2-0d4abb57fce89d887e18d6_ipico.jpg& data-image-width=&180& data-image-height=&180& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&xitu/tensorflow-docs&/a&&p&&br&&/p&&p&今天我们就手把手教你如何使用 TensorFlow 搭建一个简单的神经网络,实现 TensorFlow 中的Hello World,只需七步,就能迅速入门。本文我们使用著名的&b&鸢尾花&/b&(记住这个名字,以后你会经常遇到它)数据集来训练模型,然后让模型为给定的花朵正确分类。&/p&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/50/v2-93bf90ac7b401a140e756_b.jpg& data-size=&normal& data-rawwidth=&550& data-rawheight=&350& class=&origin_image zh-lightbox-thumb& width=&550& data-original=&https://pic1.zhimg.com/50/v2-93bf90ac7b401a140e756_r.jpg&&&figcaption&鸢尾花(Irises)&/figcaption&&/figure&&p&&br&&/p&&p&鸢尾花数据集包含 3 种花,包括“山鸢尾”(Setosa),“杂色鸢尾”(Versicolor)和“维吉尼亚鸢尾”(Virginica)。为了识别每种花型,我们设定了 4 种花的属性,包括&b&萼片长度&/b&,&b&萼片宽度&/b&,&b&花瓣长度&/b&和&b&花瓣宽度&/b&。&/p&&p&我们下面会用 TensorFlow 搭建一个神经网络,让它根据这些因素正确识别出鸢尾花的种类。&/p&&p&&br&&/p&&p&首先,我们用训练数据集来训练我们的模型,然后我们会用测试数据集来测试其准确性。你可以从这里下载训练数据集(&a href=&//link.zhihu.com/?target=http%3A//download.tensorflow.org/data/iris_training.csv& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&download.tensorflow.org&/span&&span class=&invisible&&/data/iris_training.csv&/span&&span class=&ellipsis&&&/span&&/a&),并在这里测试数据集(&a href=&//link.zhihu.com/?target=http%3A//download.tensorflow.org/data/iris_test.csv& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&download.tensorflow.org&/span&&span class=&invisible&&/data/iris_test.csv&/span&&span class=&ellipsis&&&/span&&/a&)。&/p&&p&&br&&/p&&h2&&b&第一步&/b&&/h2&&p&首先,我们需要读取 .csv 文件中的数据并导入它们。Pandas 库可以很轻松处理这个问题。 Pandas 库中的 read_csv()函数将读取文件并将内容加载为指定的变量。对于函数的参数, 我们需要指定文件的路径,names 参数可以用来指定每个列的名字。&/p&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/50/v2-d3aef8870452d_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&654& data-rawheight=&124& class=&origin_image zh-lightbox-thumb& width=&654& data-original=&https://pic1.zhimg.com/50/v2-d3aef8870452d_r.jpg&&&/figure&&p&&br&&/p&&h2&&b&第二步&/b&&/h2&&p&数据集中的花朵的类型都编码为 0,1 和 2。我们需要使用 one hot 方法将它们编码为 [1,0,0],[0,1,0] 和 [0,0,1]。这将使网络的训练和优化变得容易,因为网络的输出也是以 one hot 格式生成的。&/p&&p&然后我们需要定义训练集的 x,y 和测试集的 x,y。&/p&&p&&br&&/p&&figure&&img src=&https://pic2.zhimg.com/50/v2-b58a69d67d90f8b0aa67cca806eaa938_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&662& data-rawheight=&189& class=&origin_image zh-lightbox-thumb& width=&662& data-original=&https://pic2.zhimg.com/50/v2-b58a69d67d90f8b0aa67cca806eaa938_r.jpg&&&/figure&&p&&br&&/p&&p&&br&&/p&&h2&&b&第三步&/b&&/h2&&p&然后,它需要为输入(X),输出(Y)定义占位符,并定义网络的权重和偏差。这里我们有 4 列输入,因为数据集有 4 个特征和 3 列输出来映射 3 种类型的花。占位符的 shape 应该满足这一点。 此外,权重矩阵的 shape 必须是 4x3,而偏差必须是 3 的向量才能将输入映射到输出(无隐藏层)。&/p&&p&&br&&/p&&figure&&img src=&https://pic3.zhimg.com/50/v2-fcb926fc8af8_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&368& data-rawheight=&124& class=&content_image& width=&368&&&/figure&&p&&br&&/p&&h2&&b&第四步&/b&&/h2&&p&然后我们需要通过一个激活函数发送输出,这里可以用 Tensorflow 中的 soft-max 函数。为了该训练模型,我们需要计算模型的成本,也就是模型的输出中出现了多少错误,这里我们计算平均方差。然后我们可以训练模型,并使用 AdamOptimizer 降低成本。&/p&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/50/v2-becc16efe774_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&445& data-rawheight=&111& class=&origin_image zh-lightbox-thumb& width=&445& data-original=&https://pic1.zhimg.com/50/v2-becc16efe774_r.jpg&&&/figure&&p&&br&&/p&&h2&&b&第五步&/b&&/h2&&p&为了在培训后检查我们的模型是否准确,我们需要将我们的模型预测与实际结果进行比较。然后我们可以通过计算我们得到的正确结果来计算我们模型的准确性。&/p&&p&&br&&/p&&figure&&img src=&https://pic3.zhimg.com/50/v2-a0b2ab5b8da8f_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&493& data-rawheight=&128& class=&origin_image zh-lightbox-thumb& width=&493& data-original=&https://pic3.zhimg.com/50/v2-a0b2ab5b8da8f_r.jpg&&&/figure&&p&&br&&/p&&p&在这里,我们检查由我们的模型生成的输出是否等于实际结果(Y)。该模型将为每种花计算一个值,这个值可以视为是否为某种花的概率。我们选择可能性最高的花种,argmax 函数会返回最大值的索引。记住,结果是 one hot 格式,这种方法能让我们很容易的检查正确性。&/p&&p&在此之后,我们需要开始训练模型。在此之前,我们首先需要使用 global_variables_initializer 函数初始化所有全局变量。&/p&&p&&br&&/p&&h2&&b&第六步&/b&&/h2&&p&现在我们开始训练模型。每个 Tensor 执行必须在 Tensorflow 的会话中完成。因此,在训练之前我们需要创建一个会话,并且在完成所有工作后,我们需要关闭会话。&/p&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/50/v2-3f6be292c2_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&678& data-rawheight=&174& class=&origin_image zh-lightbox-thumb& width=&678& data-original=&https://pic1.zhimg.com/50/v2-3f6be292c2_r.jpg&&&/figure&&p&&br&&/p&&p&首先,执行初始化张量的变量,然后将模型训练 1000 次。训练时,我们需要指定训练数据集为 X,相应的结果为 Y,因为需要它们训练张量。这里在传递 Y 时,我们会迭代和创建一个新数组,以确保它的 shape 与上面定义的相同。在每次迭代中,将成本绘制成图形以便查看实际的训练效果。&/p&&p&&br&&/p&&h2&&b&第七步&/b&&/h2&&p&最后,当训练过程结束时,将成本变化图绘制出来并通过测试数据集测试模型的准确性。&/p&&p&&br&&/p&&figure&&img src=&https://pic2.zhimg.com/50/v2-527f9c5e76a16bff74ed8fda6aa52b76_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&705& data-rawheight=&115& class=&origin_image zh-lightbox-thumb& width=&705& data-original=&https://pic2.zhimg.com/50/v2-527f9c5e76a16bff74ed8fda6aa52b76_r.jpg&&&/figure&&p&&br&&/p&&p&经过 1000 次训练迭代后,可以获得 96.67% 的准确度,这个结果确实令人印象深刻,而成本变化图清楚的显示了每次迭代中减少成本后模型性能有了巨大改善。&/p&&figure&&img src=&https://pic4.zhimg.com/50/v2-d8a9fce1a3e94a_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&618& data-rawheight=&468& class=&origin_image zh-lightbox-thumb& width=&618& data-original=&https://pic4.zhimg.com/50/v2-d8a9fce1a3e94a_r.jpg&&&/figure&&p&&br&&/p&&p&本文能帮助 Tensorflow 的新手通过这个简单的例子来了解它的概念,从此开拓 TensorFlow 的星辰大海。&/p&&p&&br&&/p&&p&下面是本教程的全部 Python 代码,可以在免搭环境的&a href=&//link.zhihu.com/?target=http%3A//jizhi.im/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&集智主站&/a&自己敲一敲:&/p&&p&&br&&/p&&div class=&highlight&&&pre&&code class=&language-python&&&span class=&kn&&import&/span& &span class=&nn&&tensorflow&/span& &span class=&kn&&as&/span& &span class=&nn&&tf&/span&
&span class=&kn&&import&/span& &span class=&nn&&pandas&/span& &span class=&kn&&as&/span& &span class=&nn&&pd&/span&
&span class=&kn&&from&/span& &span class=&nn&&matplotlib&/span& &span class=&kn&&import&/span& &span class=&n&&pyplot&/span& &span class=&k&&as&/span& &span class=&n&&plt&/span&
&span class=&c&&#read data from csv&/span&
&span class=&n&&train_data&/span& &span class=&o&&=&/span& &span class=&n&&pd&/span&&span class=&o&&.&/span&&span class=&n&&read_csv&/span&&span class=&p&&(&/span&&span class=&s&&&iris_training.csv&&/span&&span class=&p&&,&/span& &span class=&n&&names&/span&&span class=&o&&=&/span&&span class=&p&&[&/span&&span class=&s&&'f1'&/span&&span class=&p&&,&/span& &span class=&s&&'f2'&/span&&span class=&p&&,&/span& &span class=&s&&'f3'&/span&&span class=&p&&,&/span& &span class=&s&&'f4'&/span&&span class=&p&&,&/span& &span class=&s&&'f5'&/span&&span class=&p&&])&/span&
&span class=&n&&test_data&/span& &span class=&o&&=&/span& &span class=&n&&pd&/span&&span class=&o&&.&/span&&span class=&n&&read_csv&/span&&span class=&p&&(&/span&&span class=&s&&&iris_test.csv&&/span&&span class=&p&&,&/span& &span class=&n&&names&/span&&span class=&o&&=&/span&&span class=&p&&[&/span&&span class=&s&&'f1'&/span&&span class=&p&&,&/span& &span class=&s&&'f2'&/span&&span class=&p&&,&/span& &span class=&s&&'f3'&/span&&span class=&p&&,&/span& &span class=&s&&'f4'&/span&&span class=&p&&,&/span& &span class=&s&&'f5'&/span&&span class=&p&&])&/span&
&span class=&c&&#encode results to onehot&/span&
&span class=&n&&train_data&/span&&span class=&p&&[&/span&&span class=&s&&'f5'&/span&&span class=&p&&]&/span& &span class=&o&&=&/span& &span class=&n&&train_data&/span&&span class=&p&&[&/span&&span class=&s&&'f5'&/span&&span class=&p&&]&/span&&span class=&o&&.&/span&&span class=&n&&map&/span&&span class=&p&&({&/span&&span class=&mi&&0&/span&&span class=&p&&:&/span& &span class=&p&&[&/span&&span class=&mi&&1&/span&&span class=&p&&,&/span& &span class=&mi&&0&/span&&span class=&p&&,&/span& &span class=&mi&&0&/span&&span class=&p&&],&/span& &span class=&mi&&1&/span&&span class=&p&&:&/span& &span class=&p&&[&/span&&span class=&mi&&0&/span&&span class=&p&&,&/span& &span class=&mi&&1&/span&&span class=&p&&,&/span& &span class=&mi&&0&/span&&span class=&p&&],&/span& &span class=&mi&&2&/span&&span class=&p&&:&/span& &span class=&p&&[&/span&&span class=&mi&&0&/span&&span class=&p&&,&/span& &span class=&mi&&0&/span&&span class=&p&&,&/span& &span class=&mi&&1&/span&&span class=&p&&]})&/span&
&span class=&n&&test_data&/span&&span class=&p&&[&/span&&span class=&s&&'f5'&/span&&span class=&p&&]&/span& &span class=&o&&=&/span& &span class=&n&&test_data&/span&&span class=&p&&[&/span&&span class=&s&&'f5'&/span&&span class=&p&&]&/span&&span class=&o&&.&/span&&span class=&n&&map&/span&&span class=&p&&({&/span&&span class=&mi&&0&/span&&span class=&p&&:&/span& &span class=&p&&[&/span&&span class=&mi&&1&/span&&span class=&p&&,&/span& &span class=&mi&&0&/span&&span class=&p&&,&/span& &span class=&mi&&0&/span&&span class=&p&&],&/span& &span class=&mi&&1&/span&&span class=&p&&:&/span& &span class=&p&&[&/span&&span class=&mi&&0&/span&&span class=&p&&,&/span& &span class=&mi&&1&/span&&span class=&p&&,&/span& &span class=&mi&&0&/span&&span class=&p&&],&/span& &span class=&mi&&2&/span&&span class=&p&&:&/span& &span class=&p&&[&/span&&span class=&mi&&0&/span&&span class=&p&&,&/span& &span class=&mi&&0&/span&&span class=&p&&,&/span& &span class=&mi&&1&/span&&span class=&p&&]})&/span&
&span class=&c&&#separate train data&/span&
&span class=&n&&train_x&/span& &span class=&o&&=&/span& &span class=&n&&train_data&/span&&span class=&p&&[[&/span&&span class=&s&&'f1'&/span&&span class=&p&&,&/span& &span class=&s&&'f2'&/span&&span class=&p&&,&/span& &span class=&s&&'f3'&/span&&span class=&p&&,&/span& &span class=&s&&'f4'&/span&&span class=&p&&]]&/span&
&span class=&n&&train_y&/span& &span class=&o&&=&/span& &span class=&n&&train_data&/span&&span class=&o&&.&/span&&span class=&n&&ix&/span&&span class=&p&&[:,&/span& &span class=&s&&'f5'&/span&&span class=&p&&]&/span&
&span class=&c&&#separate test data&/span&
&span class=&n&&test_x&/span& &span class=&o&&=&/span& &span class=&n&&test_data&/span&&span class=&p&&[[&/span&&span class=&s&&'f1'&/span&&span class=&p&&,&/span& &span class=&s&&'f2'&/span&&span class=&p&&,&/span& &span class=&s&&'f3'&/span&&span class=&p&&,&/span& &span class=&s&&'f4'&/span&&span class=&p&&]]&/span&
&span class=&n&&test_y&/span& &span class=&o&&=&/span& &span class=&n&&test_data&/span&&span class=&o&&.&/span&&span class=&n&&ix&/span&&span class=&p&&[:,&/span& &span class=&s&&'f5'&/span&&span class=&p&&]&/span&
&span class=&c&&#placeholders for inputs and outputs&/span&
&span class=&n&&X&/span& &span class=&o&&=&/span& &span class=&n&&tf&/span&&span class=&o&&.&/span&&span class=&n&&placeholder&/span&&span class=&p&&(&/span&&span class=&n&&tf&/span&&span class=&o&&.&/span&&span class=&n&&float32&/span&&span class=&p&&,&/span& &span class=&p&&[&/span&&span class=&bp&&None&/span&&span class=&p&&,&/span& &span class=&mi&&4&/span&&span class=&p&&])&/span&
&span class=&n&&Y&/span& &span class=&o&&=&/span& &span class=&n&&tf&/span&&span class=&o&&.&/span&&span class=&n&&placeholder&/span&&span class=&p&&(&/span&&span class=&n&&tf&/span&&span class=&o&&.&/span&&span class=&n&&float32&/span&&span class=&p&&,&/span& &span class=&p&&[&/span&&span class=&bp&&None&/span&&span class=&p&&,&/span& &span class=&mi&&3&/span&&span class=&p&&])&/span&
&span class=&c&&#weight and bias&/span&
&span class=&n&&weight&/span& &span class=&o&&=&/span& &span class=&n&&tf&/span&&span class=&o&&.&/span&&span class=&n&&Variable&/span&&span class=&p&&(&/span&&span class=&n&&tf&/span&&span class=&o&&.&/span&&span class=&n&&zeros&/span&&span class=&p&&([&/span&&span class=&mi&&4&/span&&span class=&p&&,&/span& &span class=&mi&&3&/span&&span class=&p&&]))&/span&
&span class=&n&&bias&/span& &span class=&o&&=&/span& &span class=&n&&tf&/span&&span class=&o&&.&/span&&span class=&n&&Variable&/span&&span class=&p&&(&/span&&span class=&n&&tf&/span&&span class=&o&&.&/span&&span class=&n&&zeros&/span&&span class=&p&&([&/span&&span class=&mi&&3&/span&&span class=&p&&]))&/span&
&span class=&c&&#output after going activation function&/span&
&span class=&n&&output&/span& &span class=&o&&=&/span& &span class=&n&&tf&/span&&span class=&o&&.&/span&&span class=&n&&nn&/span&&span class=&o&&.&/span&&span class=&n&&softmax&/span&&span class=&p&&(&/span&&span class=&n&&tf&/span&&span class=&o&&.&/span&&span class=&n&&matmul&/span&&span class=&p&&(&/span&&span class=&n&&X&/span&&span class=&p&&,&/span& &span class=&n&&weight&/span&&span class=&p&&)&/span& &span class=&o&&+&/span& &span class=&n&&bias&/span&&span class=&p&&)&/span&
&span class=&c&&#cost funciton&/span&
&span class=&n&&cost&/span& &span class=&o&&=&/span& &span class=&n&&tf&/span&&span class=&o&&.&/span&&span class=&n&&reduce_mean&/span&&span class=&p&&(&/span&&span class=&n&&tf&/span&&span class=&o&&.&/span&&span class=&n&&square&/span&&span class=&p&&(&/span&&span class=&n&&Y&/span&&span class=&o&&-&/span&&span class=&n&&output&/span&&span class=&p&&))&/span&
&span class=&c&&#train model&/span&
&span class=&n&&train&/span& &span class=&o&&=&/span& &span class=&n&&tf&/span&&span class=&o&&.&/span&&span class=&n&&train&/span&&span class=&o&&.&/span&&span class=&n&&AdamOptimizer&/span&&span class=&p&&(&/span&&span class=&mf&&0.01&/span&&span class=&p&&)&/span&&span class=&o&&.&/span&&span class=&n&&minimize&/span&&span class=&p&&(&/span&&span class=&n&&cost&/span&&span class=&p&&)&/span&
&span class=&c&&#check sucess and failures&/span&
&span class=&n&&success&/span& &span class=&o&&=&/span& &span class=&n&&tf&/span&&span class=&o&&.&/span&&span class=&n&&equal&/span&&span class=&p&&(&/span&&span class=&n&&tf&/span&&span class=&o&&.&/span&&span class=&n&&argmax&/span&&span class=&p&&(&/span&&span class=&n&&output&/span&&span class=&p&&,&/span& &span class=&mi&&1&/span&&span class=&p&&),&/span& &span class=&n&&tf&/span&&span class=&o&&.&/span&&span class=&n&&argmax&/span&&span class=&p&&(&/span&&span class=&n&&Y&/span&&span class=&p&&,&/span& &span class=&mi&&1&/span&&span class=&p&&))&/span&
&span class=&c&&#calculate accuracy&/span&
&span class=&n&&accuracy&/span& &span class=&o&&=&/span& &span class=&n&&tf&/span&&span class=&o&&.&/span&&span class=&n&&reduce_mean&/span&&span class=&p&&(&/span&&span class=&n&&tf&/span&&span class=&o&&.&/span&&span class=&n&&cast&/span&&span class=&p&&(&/span&&span class=&n&&success&/span&&span class=&p&&,&/span& &span class=&n&&tf&/span&&span class=&o&&.&/span&&span class=&n&&float32&/span&&span class=&p&&))&/span&&span class=&o&&*&/span&&span class=&mi&&100&/span&
&span class=&c&&#initialize variables&/span&
&span class=&n&&init&/span& &span class=&o&&=&/span& &span class=&n&&tf&/span&&span class=&o&&.&/span&&span class=&n&&global_variables_initializer&/span&&span class=&p&&()&/span&
&span class=&c&&#start the tensorflow session&/span&
&span class=&k&&with&/span& &span class=&n&&tf&/span&&span class=&o&&.&/span&&span class=&n&&Session&/span&&span class=&p&&()&/span& &span class=&k&&as&/span& &span class=&n&&sess&/span&&span class=&p&&:&/span&
&span class=&n&&costs&/span& &span class=&o&&=&/span& &span class=&p&&[]&/span&
&span class=&n&&sess&/span&&span class=&o&&.&/span&&span class=&n&&run&/span&&span class=&p&&(&/span&&span class=&n&&init&/span&&span class=&p&&)&/span&
&span class=&c&&#train model 1000 times&/span&
&span class=&k&&for&/span& &span class=&n&&i&/span& &span class=&ow&&in&/span& &span class=&nb&&range&/span&&span class=&p&&(&/span&&span class=&mi&&1000&/span&&span class=&p&&):&/span&
&span class=&n&&_&/span&&span class=&p&&,&/span&&span class=&n&&c&/span& &span class=&o&&=&/span& &span class=&n&&sess&/span&&span class=&o&&.&/span&&span class=&n&&run&/span&&span class=&p&&([&/span&&span class=&n&&train&/span&&span class=&p&&,&/span& &span class=&n&&cost&/span&&span class=&p&&],&/span& &span class=&p&&{&/span&&span class=&n&&X&/span&&span class=&p&&:&/span& &span class=&n&&train_x&/span&&span class=&p&&,&/span& &span class=&n&&Y&/span&&span class=&p&&:&/span& &span class=&p&&[&/span&&span class=&n&&t&/span& &span class=&k&&for&/span& &span class=&n&&t&/span& &span class=&ow&&in&/span& &span class=&n&&train_y&/span&&span class=&o&&.&/span&&span class=&n&&as_matrix&/span&&span class=&p&&()]})&/span&
&span class=&n&&costs&/span&&span class=&o&&.&/span&&span class=&n&&append&/span&&span class=&p&&(&/span&&span class=&n&&c&/span&&span class=&p&&)&/span&
&span class=&k&&print&/span&&span class=&p&&(&/span&&span class=&s&&&Training finished!&&/span&&span class=&p&&)&/span&
&span class=&c&&#plot cost graph&/span&
&span class=&n&&plt&/span&&span class=&o&&.&/span&&span class=&n&&plot&/span&&span class=&p&&(&/span&&span class=&nb&&range&/span&&span class=&p&&(&/span&&span class=&mi&&1000&/span&&span class=&p&&),&/span& &span class=&n&&costs&/span&&span class=&p&&)&/span&
&span class=&n&&plt&/span&&span class=&o&&.&/span&&span class=&n&&title&/span&&span class=&p&&(&/span&&span class=&s&&&Cost Variation&&/span&&span class=&p&&)&/span&
&span class=&n&&plt&/span&&span class=&o&&.&/span&&span class=&n&&show&/span&&span class=&p&&()&/span&
&span class=&k&&print&/span&&span class=&p&&(&/span&&span class=&s&&&Accuracy: &/span&&span class=&si&&%.2f&/span&&span class=&s&&&&/span& &span class=&o&&%&/span&&span class=&n&&accuracy&/span&&span class=&o&&.&/span&&span class=&n&&eval&/span&&span class=&p&&({&/span&&span class=&n&&X&/span&&span class=&p&&:&/span& &span class=&n&&test_x&/span&&span class=&p&&,&/span& &span class=&n&&Y&/span&&span class=&p&&:&/span& &span class=&p&&[&/span&&span class=&n&&t&/span& &span class=&k&&for&/span& &span class=&n&&t&/span& &span class=&ow&&in&/span& &span class=&n&&test_y&/span&&span class=&o&&.&/span&&span class=&n&&as_matrix&/span&&span class=&p&&()]}))&/span&
&/code&&/pre&&/div&&p&&br&&/p&&p&对于本文教程,谷歌此前发布过视频版,我们进行了译制,可以去集智主站上瞅瞅:&/p&&a href=&//link.zhihu.com/?target=https%3A//jizhi.im/blog/post/aia-2& data-draft-node=&block& data-draft-type=&link-card& data-image=&https://pic1.zhimg.com/v2-7d621e9b422a452a0.jpg& data-image-width=&1280& data-image-height=&720& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&边看边练的简明机器学习教程 Part II - 集智专栏&/a&&hr&&blockquote&&b&&i&参考资料:&/i&&/b& &i&&a href=&//link.zhihu.com/?target=https%3A//towardsdatascience.com/hello-world-in-tensorflow-973e6c38e8ed& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&towardsdatascience.com/&/span&&span class=&invisible&&hello-world-in-tensorflow-973e6c38e8ed&/span&&span class=&ellipsis&&&/span&&/a&&/i& &/blockquote&&p&&br&&/p&&p&&b&集智AI课堂将于 4 月 9 号停止售课,需要报名的同学不要错过,这可能是今年最好的转入人工智能行业的契机了,等你~&/b&&/p&&figure&&img src=&https://pic2.zhimg.com/50/v2-8cf50391bcadffb_b.jpg& data-caption=&& data-size=&small& data-rawwidth=&750& data-rawheight=&1334& class=&origin_image zh-lightbox-thumb& width=&750& data-original=&https://pic2.zhimg.com/50/v2-8cf50391bcadffb_r.jpg&&&/figure&
TensorFlow 是 Google 开发的一款用于机器学习的开源软件库。它能够在所有 Linux,Windows和 MacOS 平台上运行 CPU 和 GPU。Tensorflow 可用于设计,实现和训练深度学习模型。 下面是由实时维护的 TensorFlow 官方文档中文版,维护者为全球各大…
&figure&&img src=&https://pic3.zhimg.com/v2-019fa26aec7f9e350b0bdcb_b.jpg& data-rawwidth=&550& data-rawheight=&309& class=&origin_image zh-lightbox-thumb& width=&550& data-original=&https://pic3.zhimg.com/v2-019fa26aec7f9e350b0bdcb_r.jpg&&&/figure&&p&&/p&&figure&&img src=&https://pic2.zhimg.com/v2-ca629e3baa8a45f800c24f7a65c39e76_b.jpg& data-rawwidth=&2929& data-rawheight=&1072& class=&origin_image zh-lightbox-thumb& width=&2929& data-original=&https://pic2.zhimg.com/v2-ca629e3baa8a45f800c24f7a65c39e76_r.jpg&&&/figure&&p&&br&&/p&&p&原文地址:&a href=&https://link.zhihu.com/?target=https%3A//jizhi.im/blog/post/dota2dom& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&凭什么不让我选火枪?——论Dota2英雄克制关系&/a& (前往原文即可运行文中所有代码)&/p&&hr&&h2&&b&01. 克制关系&/b&&/h2&&p&&br&&/p&&p&Dota 里面选火枪,就像守望里选半藏,经常会被泼脏水。其实从数据上看,作为出场率与新英雄大圣比肩的角色,狙击手在胜率上并没有落后,放到全体英雄当中也是处于中上水平。&/p&&p&&br&&/p&&figure&&img src=&https://pic3.zhimg.com/v2-21d52ae231e5a462ef3be3af8f1540d8_b.jpg& data-rawwidth=&2126& data-rawheight=&1012& class=&origin_image zh-lightbox-thumb& width=&2126& data-original=&https://pic3.zhimg.com/v2-21d52ae231e5a462ef3be3af8f1540d8_r.jpg&&&/figure&&p&(一般说前五,不是第四就是第五)&/p&&p&&br&&/p&&p&又有人常说,“火枪容易被针对克制”,那么这个“克制”究竟怎么讲,就很有说头了。&/p&&p&&br&&/p&&figure&&img src=&https://pic3.zhimg.com/v2-019fa26aec7f9e350b0bdcb_b.jpg& data-rawwidth=&550& data-rawheight=&309& class=&origin_image zh-lightbox-thumb& width=&550& data-original=&https://pic3.zhimg.com/v2-019fa26aec7f9e350b0bdcb_r.jpg&&&/figure&&p&(传说哥镇楼)&/p&&p&&br&&/p&&p&Dota 里的英雄克制关系不像《口袋妖怪》的属性相克那样体现在线性计算上,Lina 的龙破斩烧在树精卫士身上并没有额外的伤害加成,蝙蝠骑士也不会对 Lion 或小强的地刺免疫。&/p&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-7fdef5fd71bc7_b.jpg& data-rawwidth=&392& data-rawheight=&291& class=&content_image& width=&392&&&/figure&&p&&br&&/p&&p&但经过长期大量的战斗实践,玩家们还是发现,有的英雄之间配合很舒服,有的英雄之间则可以有效限制,正因为如此 Ban/Pick 才显得尤为重要。而对于广大普通玩家来说,因为这种配合/克制并非线性的数值关系,所以能否真正发挥出得出来,还存在一定的缘分。&/p&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-0aa8e0dbdebd2ddac3610b9_b.jpg& data-rawwidth=&200& data-rawheight=&196& class=&content_image& width=&200&&&/figure&&p&&br&&/p&&p&比如说有些玩法可以在职业比赛中大放异彩,但是绝大多数玩家不具备这样的意识和操作基础,这种高级套路所产生的克制关系,对一般人来说指导意义不大,也就是我们常说的“看了你也学不会系列”&/p&&p&&br&&/p&&a class=&video-box& href=&https://link.zhihu.com/?target=https%3A//www.zhihu.com/video/600192& target=&_blank& data-video-id=&& data-video-playable=&true& data-name=&& data-poster=&https://pic3.zhimg.com/v2-6f573e55c23d1fd0f842.jpg& data-lens-id=&600192&&
&img class=&thumbnail& src=&https://pic3.zhimg.com/v2-6f573e55c23d1fd0f842.jpg&&&span class=&content&&
&span class=&title&&&span class=&z-ico-extern-gray&&&/span&&span class=&z-ico-extern-blue&&&/span&&/span&
&span class=&url&&&span class=&z-ico-video&&&/span&https://www.zhihu.com/video/600192&/span&
&p&&br&&/p&&p&Dotamax 提供的配合/克制关系是基于统计概率得到的一个系数。那么这个系数是如何得出的呢? &/p&&p&&br&&/p&&p&即使是G胖本人来,恐怕也很难去统计每局比赛里两个英雄之间相爱相杀的详细记录,像白牛冲了几次火枪,斧王淘汰了几次亚巴顿等等。而且技能上的克制只是战术胜利,未必就能推动整场比赛的胜利。所以不论从可行性还是策略性上看,都是根据相互之间的比赛胜率更加合适。&/p&&p&&br&&/p&&p&但是这个「克制系数」并非与胜率正相关,更不是简单的「胜率过半就算克制」或者「超过全局胜率就算克制」。下图中亚巴顿对先知的胜率达到60%以上,超过了亚巴顿的全局平均胜率,但还是被归为“被克制”。&/p&&p&&br&&/p&&figure&&img src=&https://pic3.zhimg.com/v2-05afdbfcb600bd4cb2b9a84a9dd5f0f1_b.jpg& data-rawwidth=&1472& data-rawheight=&628& class=&origin_image zh-lightbox-thumb& width=&1472& data-original=&https://pic3.zhimg.com/v2-05afdbfcb600bd4cb2b9a84a9dd5f0f1_r.jpg&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-2da6d1839b06becf573c96c_b.jpg& data-rawwidth=&4267& data-rawheight=&267& class=&origin_image zh-lightbox-thumb& width=&4267& data-original=&https://pic4.zhimg.com/v2-2da6d1839b06becf573c96c_r.jpg&&&/figure&&h2&&b&02. Log5&/b&&/h2&&p&&br&&/p&&p&Log5这里指的不是5的对数,而是一个公式,用来预估A, B两支队伍交手的赢面,依据是两队各自的平均胜率pA, pB。&/p&&figure&&img src=&https://pic1.zhimg.com/v2-fdb18f371b7dd8909119_b.jpg& data-rawwidth=&402& data-rawheight=&80& class=&content_image& width=&402&&&/figure&&p&&br&&/p&&ul&&li&若pA=1,姑且认为这是一只不可战胜的力量,则pA,B=1;&/li&&li&若pA=0,那就是来送的,则pA,B=0;&/li&&li&若pA=pB,那是“旗鼓相当的对手”,pA,B=0.5;&/li&&li&pA=pB= 0 or 1是个特殊情况,以子之矛陷子之盾,分母为0了。&/li&&/ul&&p&&br&&/p&&p&这个概率是一方对另一方的获胜期望概率,是根据平日成绩(不考虑对手的特殊情况)计算出来的。如果两个英雄交手多次,而各自胜负都与全局胜率相当,那就说明双方都是正常发挥,谁也没有压制谁。&/p&&p&&br&&/p&&figure&&img src=&https://pic2.zhimg.com/v2-0d5b20fd3296fcf9eb4162_b.jpg& data-rawwidth=&576& data-rawheight=&432& class=&origin_image zh-lightbox-thumb& width=&576& data-original=&https://pic2.zhimg.com/v2-0d5b20fd3296fcf9eb4162_r.jpg&&&/figure&&p&(魔男の压制)&/p&&p&&br&&/p&&p&而真正的压制效果,不是胜率过半,而是使对方的胜率低于正常水平。假设巅峰时期的泰森未尝一败,而 Kaiser 已经被打的半身不遂从未获胜,赛前泰森对我的获胜期望当然是 pE = 100%。而经过若干场比赛,我竟然和泰森打了个55开,把泰森对我的胜率逼到了 pA=50%!这时媒体可能就会搞个大新闻,说什么Kaiser 是“泰森杀手”,尽管其实我们强行55开。&/p&&p&&br&&/p&&p&那么泰森对我的克制系数就是 (pA-pE)/pE=-50%,负数表示被压制,反过来也可以计算我对泰森的克制系数是无穷大,因为本来的数学期望是0。也就是原本越强势的英雄,在对上弱势英雄时本来期望胜率也是较高的,而实际胜率的落差越大,就表示越遭到克制。&/p&&p&&br&&/p&&p&比如亚巴顿的全局胜率有 56.21%,是比较高的,高胜率英雄中辅助占很大比重;而先知只有 41.39%,那么亚巴顿对阵先知本来是有 64.5%的希望获胜的,但实际胜率却只有 62.13%,所以虽然亚巴顿的赢面更大,但是在和先知对阵的时候,却不如预想的轻松。&/p&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-8b748e31e7f8afd1952421_b.jpg& data-rawwidth=&1551& data-rawheight=&324& class=&origin_image zh-lightbox-thumb& width=&1551& data-original=&https://pic1.zhimg.com/v2-8b748e31e7f8afd1952421_r.jpg&&&/figure&&p&(亚巴顿与先知各自的全局胜率)&/p&&p&&br&&/p&&p&不妨验证一下亚巴顿对先知的克制系数(62.13% - 64.51%) / 64.51% = -3.69%,与 Dotamax 给出的数据恰好吻合。&/p&&p&&br&&/p&&p&回过头来再说狙击手的问题,经由上面的计算可知,一个英雄在全局胜率还可以的情况下,不可能被所有人都克制(否则就不能有那个胜率了)。量化地看,同样是被克,程度也是不同的。比如说亚巴顿对先知克,其实系数只有 -3.69%;而狙击手对幽鬼的克制系数可达 -8.22%,俗话叫“克得死死的”。&/p&&p&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-eabadf3d3a6abd4e864a_b.jpg& data-rawwidth=&1436& data-rawheight=&622& class=&origin_image zh-lightbox-thumb& width=&1436& data-original=&https://pic4.zhimg.com/v2-eabadf3d3a6abd4e864a_r.jpg&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-2da6d1839b06becf573c96c_b.jpg& data-rawwidth=&4267& data-rawheight=&267& class=&origin_image zh-lightbox-thumb& width=&4267& data-original=&https://pic4.zhimg.com/v2-2da6d1839b06becf573c96c_r.jpg&&&/figure&&h2&&b&03. 数据来源&/b&&/h2&&p&&br&&/p&&p&Dota2 数据集来自加州大学欧文分校机器学习与智能系统中心。&/p&&p&数据采集自 日的2小时内,共有 92650局比赛,数据包括比赛结果(1天辉获胜;-1夜魇获胜)和登场英雄(1天辉;-1夜魇)。&/p&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-f3fce5b467ecfd757dc28c21c5055e93_b.jpg& data-rawwidth=&859& data-rawheight=&677& class=&origin_image zh-lightbox-thumb& width=&859& data-original=&https://pic1.zhimg.com/v2-f3fce5b467ecfd757dc28c21c5055e93_r.jpg&&&/figure&&p&&br&&/p&&p&补全以上代码后点击运行可见(&b&知乎编辑器实际上并不兹瓷,&/b&&a href=&https://link.zhihu.com/?target=https%3A//jizhi.im/blog/post/dota2dom& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&点这里可前往原贴运行&/a&),原始数据是一个很稀疏的矩阵,毕竟 Dota 英雄有100多个,而每场只能选10个。如果直接把英雄选择当作比赛的特征去预测胜负,还是比较困难的。&/p&&p&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-2da6d1839b06becf573c96c_b.jpg& data-rawwidth=&4267& data-rawheight=&267& class=&origin_image zh-lightbox-thumb& width=&4267& data-original=&https://pic4.zhimg.com/v2-2da6d1839b06becf573c96c_r.jpg&&&/figure&&h2&&b&04. 计算实践&/b&&/h2&&p&&br&&/p&&p&其实接下来的工作就是一个“数据清洗”的过程,因为我们并不是要做预测,也不设计任何“智能”的话题,因此并不会用到机器学习或深度学习等技术。&/p&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-72f6affcdb7dfbf13b98614_b.jpg& data-rawwidth=&865& data-rawheight=&1226& class=&origin_image zh-lightbox-thumb& width=&865& data-original=&https://pic1.zhimg.com/v2-72f6affcdb7dfbf13b98614_r.jpg&&&/figure&&p&(&a href=&https://link.zhihu.com/?target=https%3A//jizhi.im/blog/post/dota2dom& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&请点击这里去往原贴运行代码&/a&)&/p&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-f4fcc5a565e597e16b0c2b_b.jpg& data-rawwidth=&1422& data-rawheight=&600& class=&origin_image zh-lightbox-thumb& width=&1422& data-original=&https://pic1.zhimg.com/v2-f4fcc5a565e597e16b0c2b_r.jpg&&&/figure&&p&&br&&/p&&p&下面的程序可以计算特定英雄的克制关系,支持中文字符匹配。比如对米拉娜感兴趣,则输入 hero_dom(&米拉娜&)、hero_dom(&白虎&) 或 hero_dom(&虎女&)均可。&/p&&p&&br&&/p&&p&&b&注意: 需要先运行上一段代码&/b&&/p&&p&&br&&/p&&p&因为数据集原本只是用于研究,规模很小,所以挖掘结果肯定是存在偏差的。尝试几个英雄可以发现,一些冷门英雄的出镜率较高,读者朋友们不妨思考一些这是为何?话说回来,如果我轻易就获得了跟 DotaMax 一样的结果,那就粗大事儿了。&/p&&p&&br&&/p&&p&欢迎读者朋友们把自己感兴趣的英雄克制关系发表在评论中,相互分享以分析偏差产生的原因。&/p&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-5f37f0e8e7f60e01cc63c687c53284df_b.jpg& data-rawwidth=&869& data-rawheight=&880& class=&origin_image zh-lightbox-thumb& width=&869& data-original=&https://pic1.zhimg.com/v2-5f37f0e8e7f60e01cc63c687c53284df_r.jpg&&&/figure&&p&&br&&/p&&h2&拓展阅读:&/h2&&p&&br&&/p&&p&&i&&a href=&https://link.zhihu.com/?target=https%3A//jizhi.im/blog/post/top10-2017-09& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&机器学习文章 Top 10(2017年9月),OpenAI竟然才排第7&/a&&/i&&/p&&p&&i&&a href=&https://link.zhihu.com/?target=https%3A//jizhi.im/blog/post/detecting-malicious-requests& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&TensorFlow+Keras检测恶意请求&/a&&/i&&/p&&p&&i&&a href=&https://link.zhihu.com/?target=https%3A//jizhi.im/blog/post/dota2-openai-more& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&他这个Z炮是怎么压到我的?——OpenAI解释Dota2AI的实现过程&/a&&/i&&/p&&p&&br&&/p&&p&&br&&/p&&p&官方微博:@景略集智&/p&&p&微信公众号:jizhi-im&/p&&p&集智QQ群:&/p&&p&商务合作:chenyang@jizhi.im&/p&&p&投稿转载:kexiyang@jizhi.im&/p&&p&&br&&/p&&figure&&img src=&https://pic3.zhimg.com/v2-efbbde0fef67ea51c94cafa7_b.jpg& data-rawwidth=&1024& data-rawheight=&831& class=&origin_image zh-lightbox-thumb& width=&1024& data-original=&https://pic3.zhimg.com/v2-efbbde0fef67ea51c94cafa7_r.jpg&&&/figure&&p&&/p&
原文地址: (前往原文即可运行文中所有代码)01. 克制关系 Dota 里面选火枪,就像守望里选半藏,经常会被泼脏水。其实从数据上看,作为出场率与新英雄大圣比肩的角色,狙击手在胜率上并没有落后,放到全体英雄…
&p&想学好一个东西,先得搞懂你为什么要学它。&/p&&hr&&h2&01. Why Python?&/h2&&p&Python 是数据科学界的主流编程语言,相对于传统的 Excel 等数据处理工具,Python 具备处理海量数据的能力,并且可以执行机器学习算法。从数据获取(网络爬虫等工具)、数据清理到数据分析拟合再到最终的可视化呈现,Python都能胜任。&/p&&p&&br&&/p&&p&相比 C、C++、Fortran 等编译语言,Python 作为动态解释语言,可以像 Matlab 等科学计算工具一样“写一行,跑一行”——对用户更加友好,也更适于新手入门。在日渐繁荣的机器学习、人工智能领域更是独当一面,这是 Python 近年来热度稳步攀升甚至在有的统计中高居榜首的原因,也是我站(&a href=&//link.zhihu.com/?target=http%3A//jizhi.im& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&jizhi.im&/span&&span class=&invisible&&&/span&&/a&)选择 Python 作为主要编程语言的原因。下图为2016年编程语言相对热度(图片来自:&a href=&//link.zhihu.com/?target=https%3A//www.codeeval.com& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://www.&/span&&span class=&visible&&codeeval.com&/span&&span class=&invisible&&&/span&&/a&)&/p&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/50/v2-27f4396787eaeaa518994_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&663& data-rawheight=&495& class=&origin_image zh-lightbox-thumb& width=&663& data-original=&https://pic1.zhimg.com/50/v2-27f4396787eaeaa518994_r.jpg&&&/figure&&p&&br&&/p&&p&&br&&/p&&p&当然,如果你想要在计算机科学领域有更深入的研究,我们还是推荐你也学习一下 C 或 Java 等语言。&/p&&p&&br&&/p&&hr&&h2&02. 边学♂边做&/h2&&p&&br&&/p&&p&始终觉得,看视频不是一种很好的学技能方式,尽管视频仍是在线教育的绝对主流。很多朋友报名过不少编程网课,并加入了学员交流群组,最后发现&b&很多令人困惑的问题不在课程内容本身,而是本地开发环境的部署,或者操作系统、软件版本差异造成的障碍&/b&。&/p&&p&&br&&/p&&p&即使克服了以上软硬件的底层困难,看视频还是一种比较容易疲倦的体验,因为过程中缺少互动和反馈。游戏之所以好玩,有的UI让人沉浸,其根本要素都在于反馈。在UI设计中,每个组件都有多种状态的外观,时刻让人获知自己的行为(点击、聚焦、失焦)及其结果。而游戏,特别是动作游戏,则对反馈提出了毫秒级的精确要求,才能得到理想的“打击感”。&/p&&p&&br&&/p&&p&集智(&a href=&//link.zhihu.com/?target=http%3A//jizhi.im& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&jizhi.im&/span&&span class=&invisible&&&/span&&/a&)希望能够让每一位读者都能发挥主观能动性,不仅是单向的信息输入,而是时刻知道自己在做什么,做的是否正确优雅,产生了哪些影响,这是用户与文章课程的互动。&/p&&p&&br&&/p&&p&如果发展顺利,用户与用户的互动(PK)将是更好的催化剂,初步计划是建立 Kaggle 那样的竞赛平台,并融入类 Github 的社区功能,大家一言不和就 show code,就像斗图一样自然。&/p&&p&&br&&/p&&hr&&h2&03. Python基本元素之变量(Variable)&/h2&&p&&br&&/p&&p&在实际应用当中,很多数值将反复出现,比如圆周率 π,或者自然常数 e(常量也是一种变量),如果不想每次都重复输入十几位小数的话,最好预先定义为变量,更不用说那些需要频繁变动的参数。&/p&&p&&br&&/p&&p&Python 中定义变量非常简单,只需要起好名字,用等号赋值。比如要定义一个变量叫 answer 其值是 42 ,则代码就是:&/p&&p&&br&&/p&&figure&&img src=&https://pic3.zhimg.com/50/v2-e83e1dcc631_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1077& data-rawheight=&95& class=&origin_image zh-lightbox-thumb& width=&1077& data-original=&https://pic3.zhimg.com/50/v2-e83e1dcc631_r.jpg&&&/figure&&p&&br&&/p&&p&除下划线_以外的特殊符号如+,-不能用于命名变量。Python中已有的&b&关键字&/b&如 for,if,import 也不能直接用作变量名,当然只要不是完全匹配的,像 forif,for_if 还是可以的,只是一般不推荐。&/p&&p&&br&&/p&&p&对一个变量多次赋值即可完成更改,请&b&&a href=&//link.zhihu.com/?target=https%3A//jizhi.im/blog/post/pyintro01& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&点击这里&/a&&/b&前往集智,在下面的# 代码补完区域对变量 answer 赋值为 9527,并点击&b&运行&/b&查看程序执行结果。&/p&&p&&br&&/p&&figure&&img src=&https://pic2.zhimg.com/50/v2-4a055c15979ada416cdbb92ed5c8cd02_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1058& data-rawheight=&434& class=&origin_image zh-lightbox-thumb& width=&1058& data-original=&https://pic2.zhimg.com/50/v2-4a055c15979ada416cdbb92ed5c8cd02_r.jpg&&&/figure&&p&&br&&/p&&p&如果程序编写正确,你将获得 Excited 提示,否则将获得其他评价(试了就知道)。&/p&&p&&br&&/p&&hr&&h2&04. 注释&/h2&&p&&br&&/p&&p&稍有常识的人都看得出,Python 不是易语言,不可能执行中文(至少当前的3.5版本是这样),而上面的初始代码中却含有“# 代码补完”字样,并且没有报错。&/p&&p&&br&&/p&&p&这是因为有注释符号#,其所在行之后的内容都不会被解释器执行,只是显示给代码的阅读者。注释可以提高代码的可读性,这在团队协作中尤为重要。&/p&&p&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/50/v2-ac105c325bdfcdc3aef0a_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1068& data-rawheight=&88& class=&origin_image zh-lightbox-thumb& width=&1068& data-original=&https://pic4.zhimg.com/50/v2-ac105c325bdfcdc3aef0a_r.jpg&&&/figure&&p&&br&&/p&&hr&&h2&05. Print函数&/h2&&p&&br&&/p&&p&我们仍未知道那天程序运行时发生了什么,也没有必要全都知道,但有些变量的值还是需要关心的,这时就可以用 print() 函数将它们输出到屏幕上。函数是封装好的程序,普通的使用者并不需要深入了解 print() 的作用机理,只在需要时调用即可,这就避免了每次都自创一套输出内容的方法(重复造轮子)。活用函数使程序更加模块化,提高了代码的重复利用率。&/p&&p&&br&&/p&&p&函数的最基本构成是输入、执行语句和返回值,print 以变量为参数,返回值就是变量的值,并且会输出到屏幕。&/p&&p&&br&&/p&&p&下面请读者自定义一个名为 age 的变量,并定义为 90,再用print()将其输出。(&b&&a href=&//link.zhihu.com/?target=https%3A//jizhi.im/blog/post/pyintro01& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&点击这里&/a&&/b&,按照我站的基本操作,去产生。)&/p&&p&&br&&/p&&figure&&img src=&https://pic3.zhimg.com/50/v2-5dceeafa0a5712aa9daee_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1050& data-rawheight=&353& class=&origin_image zh-lightbox-thumb& width=&1050& data-original=&https://pic3.zhimg.com/50/v2-5dceeafa0a5712aa9daee_r.jpg&&&/figure&&p&&br&&/p&&hr&&h2&06. 数据类型&/h2&&p&&br&&/p&&p&之前出现过的几个变量,比如42,9527都是&b&整型&/b&变量。除此之外还有&b&浮点型&/b&变量,&b&字符型&/b&变量等。&/p&&p&&br&&/p&&p&浮点型变量可以表示小数:233.333,。&/p&&p&字符型变量可以同来表示文本信息,用单引号('')或双引号(&&)表示:'苟',&苟&。注意单引号和双引号虽然没有太大区别,但是不能混用,像'苟&是不行的。&/p&&p&&br&&/p&&p&在赋值过程中,不需要明文指定变量的类型,Python 解释器接到消息,会根据数值是否含有小数和引号自动判断。&/p&&p&&br&&/p&&hr&&h2&07. Type函数&/h2&&p&&br&&/p&&p&type() 函数的用法与 print() 类似,应该说所有函数用起来都是差不多的,它的作用是返回输入参数的类型(整型,浮点,字符或其他)。与 print() 不同的是,type() 不会把结果直接显示到屏幕上,它本身就像一个包含返回值的变量,可以嵌入程序中调用。&/p&&p&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/50/v2-abcab2f9314e3_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1061& data-rawheight=&119& class=&origin_image zh-lightbox-thumb& width=&1061& data-original=&https://pic4.zhimg.com/50/v2-abcab2f9314e3_r.jpg&&&/figure&&p&&br&&/p&&hr&&h2&08. 算术运算&/h2&&p&&br&&/p&&p&Python 支持基本的四则运算符:加+,减-,乘*,除/,运算符的优先级顺序也与日常计算相同:括号优先、乘除优于加减。&/p&&p&&br&&/p&&p&已有变量 nineteen=19, 请通过基本运算得到值 42,然后赋值予变量 forty_two;再由 forty_two 计算得到 420,并赋值予变量 four_hundred_twenty。&/p&&p&&br&&/p&&figure&&img src=&https://pic2.zhimg.com/50/v2-c838a52efef5b2eacdcea55cb1cf4786_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1064& data-rawheight=&465& class=&origin_image zh-lightbox-thumb& width=&1064& data-original=&https://pic2.zhimg.com/50/v2-c838a52efef5b2eacdcea55cb1cf4786_r.jpg&&&/figure&&p&&br&&/p&&hr&&h2&09. 类型转换&/h2&&p&&br&&/p&&p&除了在定义变量时指定数据类型以外,Python 也提供灵活改变数据类型的函数。str() 将数值变量转换为&b&字符&/b&,字符类型可以直接与其他文本连接或进行字符操作,但是就不能再参与算数计算了。float() 可以将字符变量转换为&b&浮点数&/b&(&i&前提是字符内容必须确实是数字&/i&),int() 函数可以将字符或浮点数转换为&b&整数&/b&,对于浮点数,int() 相当于向下取整。&/p&&p&&br&&/p&&hr&&h2&10. 类和对象&/h2&&p&&br&&/p&&p&&b&类&/b&(class)是具有相似属性的存在集合,&b&对象&/b&(object)是类的实例。如果把哺乳动物看作一个类,它哺乳(这是关键属性,名称由来)、有脊椎、恒温等等,而一条狗就是哺乳动物的一个对象。而胎生就不是哺乳动物类的属性,因为鸭嘴兽是卵生。(注意不要脑补成呆呆兽)&/p&&p&&br&&/p&&p&在 Python 中,每个变量都是一个对象,它们都属于各自的数据类型。0和1都是整数类的对象,3.14是浮点数类的对象,“谈笑风生”是字符类的对象。&/p&&p&&br&&/p&&p&每个类都包含所有对象共有的属性,有些属性像函数一样可以完成特定功能,称为&b&方法&/b&(method)。&/p&&p&&br&&/p&&hr&&h2&11. 列表(List)&/h2&&p&&br&&/p&&p&列表是一种数据结构的类,每个具体的列表都是一个对象。一个列表对象是由若干元素组成的集合,元素之间被逗号(,)分隔。比如一串数字[1,1,2,3,5,8],或者一系列字符[&金坷垃&,&圣地亚哥&,&威廉伯爵&,&流失&,&蒸发&],当然也可以是由不同类型元素组成的混合列表。&/p&&p&&br&&/p&&p&应用中一般先定义一个空列表l = [],再调用列表类的.append()方法添加元素。调用方法的具体格式是&b&对象&/b& + &b&.&/b& + &b&方法名&/b&:(&b&&a href=&//link.zhihu.com/?target=https%3A//jizhi.im/blog/post/pyintro01& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&点击这里&/a&&/b&,去主站运行)&/p&&p&&br&&/p&&figure&&img src=&https://pic3.zhimg.com/50/v2-c22e34b721c84afb658d9f_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1049& data-rawheight=&674& class=&origin_image zh-lightbox-thumb& width=&1049& data-original=&https://pic3.zhimg.com/50/v2-c22e34b721c84afb658d9f_r.jpg&&&/figure&&p&&br&&/p&&p&除了向空集中append元素,也可以在定义时直接指定列表所含的元素&/p&&p&&br&&/p&&figure&&img src=&https://pic2.zhimg.com/50/v2-2b1bdfe9ffe220_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1083& data-rawheight=&129& class=&origin_image zh-lightbox-thumb& width=&1083& data-original=&https://pic2.zhimg.com/50/v2-2b1bdfe9ffe220_r.jpg&&&/figure&&p&&br&&/p&&hr&&h2&12. 列表索引(index)&/h2&&p&&br&&/p&&figure&&img src=&https://pic2.zhimg.com/50/v2-e508cd38cac9d7f6951d0fef_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1920& data-rawheight=&959& class=&origin_image zh-lightbox-thumb& width=&1920& data-original=&https://pic2.zhimg.com/50/v2-e508cd38cac9d7f6951d0fef_r.jpg&&&/figure&&p&(Index Librorum Prohibitorum)&/p&&p&&br&&/p&&p&创建列表是为了在程序中使用,多数情况下我们需要的是列表中的某个元素而非整个集合,而指向某个特定元素就是通过&b&索引&/b&(index)。&/p&&p&&br&&/p&&p&列表中的元素是有序的,&b&第一个元素的索引为0,第二个索引为1&/b&,依次类推。&/p&&p&&br&&/p&&p&获取某个元素的方法是:在列表对象后面紧跟方括号([]),方括号内写有该元素的索引值。元素的索引可以是负数,此时表示倒序排列,如[-1]对应最后一个元素。&/p&&p&&br&&/p&&p&试从下面的列表中提取出第6个元素和倒数第4个元素,分别赋值予变量 the_sixth 和last_but_three。(&b&&a href=&//link.zhihu.com/?target=https%3A//jizhi.im/blog/post/pyintro01& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&点这里&/a&&/b&,去运行)&/p&&p&&br&&/p&&figure&&img src=&https://pic2.zhimg.com/50/v2-b1bf1ca6f20fe914424fe_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1049& data-rawheight=&497& class=&origin_image zh-lightbox-thumb& width=&1049& data-original=&https://pic2.zhimg.com/50/v2-b1bf1ca6f20fe914424fe_r.jpg&&&/figure&&p&&br&&/p&&hr&&h2&13. 列表切片&/h2&&p&&br&&/p&&p&除了个别元素,有时我们也想要重点考察列表的一部分,或者整个列表非常大,同时操作太耗资源,这时就需要进行&b&切片&/b&操作。对列表切片并获取其中一部分仍然是通过索引,但是加入了冒号(:)操作符来产生一个区间:切片索引[3:7]对应的是索引3到索引6(前闭后开)。len()函数可以返回列表的长度即元素个数。&/p&&p&&br&&/p&&p&对下面的列表进行切片,获取索引2至10(包含索引为10的元素)的列表,并命名为 second_tenth。然后将此列表的长度赋值予变量 length_2_10。&/p&&p&&br&&/p&&figure&&img src=&https://pic2.zhimg.com/50/v2-60c76ddfcfa_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1059& data-rawheight=&547& class=&origin_image zh-lightbox-thumb& width=&1059& data-original=&https://pic2.zhimg.com/50/v2-60c76ddfcfa_r.jpg&&&/figure&&p&&br&&/p&&p&&br&&/p&&p&&b&拓展阅读:&/b&&/p&&p&&i&&a href=&//link.zhihu.com/?target=https%3A//jizhi.im/blog/post/pyintro02& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&[Python入门] 02 控制流&/a&&/i&&/p&&p&&i&&a href=&//link.zhihu.com/?target=https%3A//jizhi.im/blog/post/pyintro03& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&[Python入门] 03 字典&/a&&/i&&/p&&p&&i&&a href=&//link.zhihu.com/?target=https%3A//jizhi.im/blog/post/pyintro04& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&[Python入门] 04 文件与函数&/a&&/i&&/p&&p&&br&&/p&&p&&br&&/p&&p&官方微博:@景略集智&/p&&p&微信公众号:jizhi-im&/p&&p&集智QQ群:&/p&&p&商务合作:chenyang@jizhi.im&/p&&p&投稿转载:kexiyang@jizhi.im&/p&
想学好一个东西,先得搞懂你为什么要学它。01. Why Python?Python 是数据科学界的主流编程语言,相对于传统的 Excel 等数据处理工具,Python 具备处理海量数据的能力,并且可以执行机器学习算法。从数据获取(网络爬虫等工具)、数据清理到数据分析拟合再…
&p&原文地址:&a href=&//link.zhihu.com/?target=https%3A//jizhi.im/blog/post/pythonbasics& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Python超简洁教程,现在就开始加入数据科学大军&/a&&/p&&hr&&p&在过去的几年间,使用 Python 这门语言作为数据科学研究工具的人数逐年得到攀升,根据 O'Reilly数据科学从业者薪酬调查报告,54%的受访者都在使用 Python 作为首选语言,这个数据要比2015年的调查结果——51%还要高一点。&/p&&p&&br&&/p&&p&没人可以否认 Python 已经逐渐成为了数据科学产业以及智能化时代的先头兵,而且必定会在未来继续保佑这种优势。毫无疑问,无论是逐渐扩大的业界份额,还是海量的数据科学库件,以及平缓的学习曲线,Python 作为一门程序语言,几乎已经没有比它更适合作为数据科学的实践工具了。&/p&&p&&br&&/p&&p&当然,Python 易学好懂,但如果你是刚入行的学生或是从业者,你仍然需要一些基本的程序语言知识来帮你度过一开始的难关。因此,我(指作者,译者注)为各位数据科学家,尤其是初学者准备了一个小攻略。这个小攻略可以方便大家快速查阅在数据科学研究过程中的一些程序用法,也可以作为一本指南帮助大家更快更好地掌握 Python。&/p&&p&&br&&/p&&p&这本小攻略与 DataCamp 的课程《数据科学所用到的 Python》有所关联,大家可以配合阅读。&/p&&p&如需下载 PDF 版本,请&a href=&//link.zhihu.com/?target=https%3A//s3.amazonaws.com/assets.datacamp.com/blog_assets/PythonForDataScience.pdf& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&点击这里&/a&。这本小攻略提及了 Python 中诸如变量、数据类型、字符串、列表等基础知识以及一些科学计算所用的基本库件如 Numpy 等等。下面是文档截图。&/p&&p&&br&&/p&&figure&&img src=&https://pic3.zhimg.com/50/v2-ec7a0dfdfd6fae_b.jpg& data-rawwidth=&1920& data-rawheight=&1080& class=&origin_image zh-lightbox-thumb& width=&1920& data-original=&https://pic3.zhimg.com/50/v2-ec7a0dfdfd6fae_r.jpg&&&/figure&&p&(为方便大家阅读,译文将原始文档截图转换呈现在此。——译者注)&/p&&hr&&p&&b&受知乎编辑器限制,集智无法在此提供一个很好的操作环境&/b&,请大家&b&&i&&a href=&//link.zhihu.com/?target=https%3A//jizhi.im/blog/post/pythonbasics& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&点击这里&/a&&/i&&/b&前往主站,点击运行尝试跑跑程序。&/p&&p&&br&&/p&&p&我们提供了一些Python入门的知识,方便大家实践。大家可以在移动端和PC端无障碍享受运行程序的快感,部分代码截图如下:&/p&&figure&&img src=&https://pic3.zhimg.com/50/v2-70c877ebf50bd86197ab_b.jpg& data-rawwidth=&859& data-rawheight=&378& class=&origin_image zh-lightbox-thumb& width=&859& data-original=&https://pic3.zhimg.com/50/v2-70c877ebf50bd86197ab_r.jpg&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic2.zhimg.com/50/v2-30aa835bfe565e763fc12ab7cd186494_b.jpg& data-rawwidth=&868& data-rawheight=&529& class=&origin_image zh-lightbox-thumb& width=&868& data-original=&https://pic2.zhimg.com/50/v2-30aa835bfe565e763fc12ab7cd186494_r.jpg&&&/figure&&figure&&img src=&https://pic1.zhimg.com/50/v2-dcbd9e8b7d7bbbff89713_b.jpg& data-rawwidth=&857& data-rawheight=&321& class=&origin_image zh-lightbox-thumb& width=&857& data-original=&https://pic1.zhimg.com/50/v2-dcbd9e8b7d7bbbff89713_r.jpg&&&/figure&&p&&br&&/p&&p&欢迎你来。&/p&&p&&br&&/p&&h2&讨论组:&/h2&&p&官方微博:@景略集智&/p&&p&微信公众号:景略集智&/p&&p&集智QQ群:&/p&&p&商务合作:chenyang@jizhi.im&/p&&p&投稿转载:kexiyang@jizhi.im&/p&
原文地址:在过去的几年间,使用 Python 这门语言作为数据科学研究工具的人数逐年得到攀升,根据 O'Reilly数据科学从业者薪酬调查报告,54%的受访者都在使用 Python 作为首选语言,这个数据要比2015年的调查结…
&p&谢邀。&/p&&p&针对这个问题,我们邀请了微软亚洲研究院&b&机器学习组&/b&的主管研究员秦涛博士与大家分享他的观点。&/p&&figure&&img src=&https://pic1.zhimg.com/50/v2-c314c816ca881c91efcb3344_b.jpg& data-rawwidth=&283& data-rawheight=&283& class=&content_image& width=&283&&&/figure&&p&&b&微软亚洲研究院机器学习组&/b&包含机器学习的各个主要方向,在理论、算法、应用等不同层面推动机器学习领域的学术前沿。该组目前的研究重点为深度学习、增强学习、分布式机器学习和图学习。其研究课题还包括排序学习、计算广告和云定价。在过去的十几年间,该组在顶级国际会议和期刊上发表了大量高质量论文,帮助微软的产品部门解决了很多复杂问题,并向开源社区贡献了&a href=&//link.zhihu.com/?target=https%3A//mp.weixin.qq.com/s%3F__biz%3DMzAwMTA3MzM4Nw%3D%3D%26mid%3Didx%3D1%26sn%3Def1ba087cf42db81f0a0de%23rd& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&微软分布式机器学习工具包(DMTK)&/a&和&a href=&//link.zhihu.com/?target=http%3A//mp.weixin.qq.com/s%3F__biz%3DMzAwMTA3MzM4Nw%3D%3D%26mid%3D%26idx%3D1%26sn%3Dee9d6ee5fabf1%26chksm%3D82c0a988b5bd86ca2b7ce2cb7c895dadd6173c7bdfffbb14f%23rd& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&微软图引擎(Graph Engine)&/a&,LightLDA、&a href=&//link.zhihu.com/?target=http%3A//mp.weixin.qq.com/s%3F__biz%3DMzAwMTA3MzM4Nw%3D%3D%26mid%3D%26idx%3D1%26sn%3D615217bcdb0b642ebadc96%26chksm%3D82c0d6adb5b75fbbd8c4eef92aabd297f7d2f1e4b0dd86a65a3d8be6%23rd& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&LightGBM等&/a&,并受到广泛关注。该组正在招贤纳士,诚邀各路英雄好汉加盟,共同逐鹿AI天下。&a href=&//link.zhihu.com/?target=https%3A//www.microsoft.com/en-us/research/people/tyliu/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&联系我们。&/a&&/p&&br&&p&————这里是正式回答的分割线————&/p&&br&&p&要回答这个问题,先要从&b&人工智能近年的进展&/b&开始说起。&/p&&p&从1956年达特茅斯会议上人工智能的诞生开始,到如今人工智能已经发展了61年,这期间人工智能历经风雨,经历了数次高潮也有数次低谷,每次高潮都是因为核心技术的提出引起了人们极大的兴趣,吸引了大量的资金的投入。但同时由于大家的期望值远远超过了技术所能够达到的高度,因此当人们发现巨大的资金和人才的投入不能达到预期成果的时候,人工智能的冬天也随之而来。幸运的是,现在我们正处于人工智能的第三次浪潮,并且目前看来,距离下一个冬天还是挺远的。从媒体的报道,大家可能都能了解到,人工智能在各个方向都取得了非常大的进展,不管是研究上、实践上,还是应用上。下面我们简单回顾一下人工智能近年来在各个方向取得的进展。&/p&&p&早在2012年,微软就在“21世纪的计算”大会上展示了一个同声传译的系统,这个系统其实相当复杂:当微软研究院创始人Rick Rashid用英文演讲的时候,这个系统首先需要将英文的语音识别成英文的文本,然后通过一个翻译系统把英文翻译成中文,然后再把中文文本合成成为中文的语音。整个复杂的过程都是通过深度学习的技术来支撑的。&/p&&p&在2015年底,发生了一件对计算机视觉领域而言非常重要的事情,就是微软亚洲研究院的研究员提出了一个新的基于CNN的深度模型叫做残差网络,这个残差网络深度高达152层,取得了当时图象识别比赛上面最好的成绩。到现在为止,深度残差网络在计算机视觉的研究中被广泛使用,并且被集成到微软还有其他大公司的产品中。&/p&&p&再到后来,2016年初,可能大家都知道,AlphaGo这个系统打败了围棋世界冠军李世石,这非常出乎人们的预料,特别是AI专家的预料,因为大家普遍认为,机器要在围棋上战胜人类可能还需要20年。在2016年下半年,微软宣布了另外一项AI上的进展,就是在日常对话的语音识别中,微软的技术已经达到了人类的水平,这也是非常了不起的,因为如果大家关注一下我们日常的讲话,就会发现,其中有很多停顿,并且带一些语气词,与朗诵或者新闻播音相差很大,这种日常对话识别要达到人类的水平是很不容易的。&/p&&p&从以上的简单回顾可以看出,&b&人工智能的第三波浪潮和深度学习是分不开的。&/b&深度学习里最经典的模型是全连接的神经网络,就是每相临的两层之间节点之间是通过边全连接;再就是卷积神经网络,这个在计算机视觉里面用得非常多;再就是循环神经网络RNN,这个在对系列进行建模,例如自然语言处理或者语音信号里面用得很多,这些都是非常成功的深度神经网络的模型。还有一个非常重要的技术就是深度强化学习技术,这是深度学习和强化学习的结合,也是AlphaGo系统所采用的技术。&/p&&p&深度学习的成功主要归功于三大因素——&b&大数据、大模型、大计算&/b&。现在可以利用的数据特别是人工标注的数据非常多,使得我们能够从数据中学到以前没法学习的东西。另外技术上的发展使得训练大模型成为了可能,例如上千层的深度神经网络,这个在四年以前都觉得不能想象的事情,现在都已经发展成为现实,并且在产品中都有了很广泛的使用。再就是大计算,从CPU到GPU,可获取的计算资源越来越丰富。&/p&&p&大数据、大模型、大计算是深度学习的三大支柱,因此这三个方向都是当前研究的热点,例如如何从更多更大的数据里面进行学习,如何训练更大更深的模型。非常深的模型,当前更成功的例子是在计算机视觉里面,但如何把这种更深的模型引入到自然语言处理里面,还需要研究,例如当前几个大公司的神经机器翻译模型,都是利用较深的RNN,但是还是远远达不到残差网络的深度。从大计算这个方面来讲,整个演变过程是从CPU到GPU到FPGA,再发展到现在有些公司定制自己专有芯片,国内的有一些创业公司,也都在做一些AI芯片,专门为AI来设计一些硬件。大计算另外一个角度就是深度学习的平台和系统,这个可以说是各大AI或者是互联网公司的着重发力的地方,例如微软的CNTK、DMTK,再比如TensorFlow、Torch,以及学术界的开源平台包括Theano、Caffe、MxNet等等。可以预计,在短期内,各大公司还会在这个领域做非常激烈的竞争,希望能够吸引第三方公司使用他们的平台和系统。&/p&&br&&p&&b&俗话说成也萧何败也萧何,大数据、大模型、大计算是深度学习成功的三大支柱因素,但他们同时也为深度学

我要回帖

更多关于 bingban病变 的文章

 

随机推荐