Python3⼊门机器学习经典算法与应⽤
Python 是⼀种⾮常流⾏和强⼤的解释性编程语⾔。不像 R 语⾔,Python 是个很完整的语⾔和平台,你既可以⽤来做研发,也可以⽤来开发产品体系。
⽽且,Python 还有很多模块和程序库供我们选择,从⽽针对⼀个任务能有很多个解决⽅案。怎么样,听起来还是很厉害的吧?
如果⽤ Python 执⾏机器学习,刚开始时最好⽅式就是先完成⼀个⼩项⽬,为什么这么说呢?
因为这会让你先懂得如何安装和启动 Python 解释器(这是最起码的要求吧)。
因为这会让你从总体上知道怎样⼀步步完成⼀个项⽬。
因为这会增加你的信⼼,或许能让你开始创建⾃⼰的⼩项⽬。
新⼿很需要⼀个完整的⼩项⽬练⼿
教材书还有课程这些东西还是⽐较烦⼈的,虽然给你讲解的很细,讲的也很多,但都太零碎,你单靠这些很难领会这些知识点如何综合运⽤到⼀起。
将机器学习运⽤到⾃⼰的数据集上时,就算是开始⼀个项⽬了。
⼀个机器学习项⽬可能并不是直线式的,但是很多步骤都是⽿熟能详:
定义问题。
准备数据。
评估算法。
优化结果。
呈现结果。
真正掌握⼀个新平台新⼯具的最好⽅法,就是⽤它⼀步步完成⼀个完整的机器学习项⽬,并涉及所有的重要步骤,也就是从导⼊数据,总结数据,评估算法到做出预测等。
这么⼀套流程操作下来,你⼤概就能明⽩其中的套路了。
机器学习的 Hello World
先开始拿来练⼿的⼀个最好的⼩项⽬就是分类鸢尾花(数据集链接),这项⽬很适合新⼿,因为⾮常简单易懂。
因为属性都是数值,所以你要知道这么去导⼊和处理数据。
python统计字符出现的次数该项⽬是个分类问题,能让你练习操作⼀种相对简单的监督式学习算法。
同时它也是个多类分类问题,因此可能需要⼀些特殊的处理⽅法。
它只有 4 个属性和 150 个⽰例,意味着数据集很⼩,不会占太多内存。
所有数值属性都有相同的单位和⼤⼩,在使⽤前⽆需进⾏特别的缩放和转换。
下⾯我们就开始学习如何⽤ Python 执⾏机器学习中的 Hello World。
⽤ Python 进⾏机器学习:⼿把⼿教程
在这部分,我们会完成⼀个完整的机器学习⼩项⽬,下⾯是主要步骤:
安装 Python 和 SciPy 平台。
导⼊数据集。
总结数据集。
可视化数据集。
评估算法。
做出预测。
可以⾃⼰试着敲命令⾏代码,要想加快速度,也可以复制粘贴我的代码。
1.下载、安装和启动 Python SciPy
如果你电脑上没安装,先安装 Python 和 SciPy 平台。
这部分不再细说,因为⽹上有很多教程。
1.1 安装 SciPy 程序库
本⽂所⽤ Python 版本为 2.7 或 3.5 。springboot跨域
scipy
numpy
matplotlib
pandas
Sklearn
安装上⾯这些程序库有很多种⽅法,建议选择选择⼀种⽅法,然后安装这些程序库都⽤这种⽅法。
SciPy 安装页⾯上提供了在多种系统安装上⽂程序库的详细⽅法:
在 Mac OS 上,你可以⽤ macports 安装 Python2.7 和这些程序库,更多信息点击这⾥
在 Linux 上,可以⽤你的软件包管理器,就跟在 Fedora 上安装 RPM ⼀样。
socket连接不上如果你是 Windows 系统,建议安装免费版的 Anaconda。
注意:上⾯这些⽅法的基础是你的电脑上已经安装了 0.18 或更⾼版本的 scikit-learn。
1.2启动 Python,检查程序版本
java课程设计定做大概多少钱这⼀步很重要,⼀定要确保你成功安装了 Python 环境,可以正常运⾏。
下⾯的脚本可以帮你测试你的 Python 环境,它会导⼊本教程所需的每个程序库,并导出相应版本。
打开命令⾏,启动 Python 解释器:
Python
我建议你直接在解释器上⼯作,或者写出脚本后在命令⾏上运⾏,不⽤在很⼤的编辑器和 IDE上跑脚本。我们要关注的重点是机器学习,⽽不是软件⼯具。
输⼊或复制粘贴以下脚本:
如果在 OS X ⼯作站上运⾏,会得到如下输出:
Python: 2.7.11 (default, Mar 1 2016, 18:40:10) [GCC 4.2.1 Compatible Apple LLVM 7.0.2 (clang-700.1.81)]scipy:
0.17.0numpy: 1.10.4matplotlib: 1.5.1pandas: 0.17.1sklearn: 0.18.1
可以和你⾃⼰的输出对照⼀下。
formation fee理想状况下,两者应该⼀样或者⼤部分很接近。API ⼀般不会快速变化,所以如果你的版本有点低的话,也不⽤担⼼,本教程仍然适⽤你后⾯的学习。
如果你在这⾥出现了错误,先暂停⼀下,修正错误。
如果你没法流畅的运⾏上述脚本,那你后⾯就没法完整地完成这篇教程。
建议针对你出现的错误上⽹搜⼀下,或者问问有经验的⼈,⽐如上集智社区。
2.导⼊数据
我们要⽤的是鸢尾花数据集,这数据集很有名,⼏乎⼊门学习机器学习的⼈最先⽤的数据集就是它了,可以说是机器学习数据集中的 Hello Word。
它包含了 150 个鸢尾花观察值,花的测量值以厘⽶为单位分为 4 列。第 5 列是观察到的花朵的种类。所有观察花朵都属于三个种类。
在这⼀步,我们会从 CSV ⽂件 URL 中导⼊鸢尾花数据。
2.1 导⼊程序库
⾸先,我们导⼊本教程⽤到的所有模块、函数和对象。
所有信息导⼊时必须准确⽆误。如果出现错误,马上停⽌。在继续操作前,⼀定确保得到正确的 SciPy 环境。
2.2 导⼊数据集
我们可以从 UCI 机器学习库中直接导⼊数据,使⽤⼯具为 Pandas。我们下⾯还会接着⽤它来进⾏数据统计和可视化⼯作。注意,我们在导⼊数据时会指明每⼀列的名字,这有助于后⾯我们处理数据。
python入门教程非常详细word导⼊数据集时也应没有任何差错。
如果你出现了⽹络问题,可以将iris.data ⽂件下载⾄你的⼯作⽬录,然后将 URL 改为本地⽂件名,⽤同样的⽅法导⼊它。
3.总结数据集
现在我们可以看⼀看数据了。
在这⼀步,我们以多个⽅式分析⼀下数据:
数据集的维度。
详细查看数据本⾝。
所有属性的统计摘要。
数据根据类别变量的分类状况。
别担⼼,每种⽅式只有⼀⾏命令⾏。这些命令⾏不是⼀次性的,将来项⽬⾥可以重复使⽤,绝不浪费。
3.1 数据集维度
我们可以快速的了解数据的形状属性包含了多少⾏(⽰例)和多少列(属性)。
shapeprint(dataset.shape)
你应该会看到有 150 ⾏和 5 列:
(150, 5)
3.2 详细查看数据
认认真真看看你数据总归是件好事。
headprint(dataset.head(20))
你应该会看到数据的前20⾏:
sepal-length sepal-width petal-length petal-width class
3.3 统计摘要
现在我们可以看看对每个属性的统计摘要,包含了数量、平均值、最⼤值、最⼩值,还有⼀些百分位数值。descriptionsprint(dataset.describe())
我们可以看到所有的数字值都有相同的单位(厘⽶),⼤⼩也都在0到8厘⽶之间。
sepal-length sepal-width petal-length petal-widthcount 150.000000 150.000000 150.000000 150.000000mean 5.843333 3.054000 3.758667 1.198667std 0.828066 0.433594 1.764420 0.763161min 4.300000 2.000000 1.000000 0.100000
25% 5.100000 2.800000 1.600000 0.300000
50% 5.800000 3.000000 4.350000 1.300000
75% 6.400000 3.300000 5.100000 1.800000max 7.900000 4.400000 6.900000 2.500000
3.4 类别分布
我们现在看⼀看属于每个类别下的⾏的数量,可以将其看作⼀个绝对计数。
classIris-setosa 50Iris-versicolor 50Iris-virginica 50
4.数据可视化
我们现在对数据已经有了⼀个基本的了解,现在需要⽤⼀些可视化形式再扩展⼀下对数据的认识。
主要是看两种可视化图:
单变量图形,从⽽更好的理解每个属性。
多变量图形,从⽽更好的理解各个属性之间的关系。
4.1 单变量图形
我们先以⼀些单变量图形开始,也就是每个单独变量的图形。
考虑到输⼊变量都是数字,我们可以为每个输⼊变量创建箱线图。
box and whisker plots
dataset.plot(kind=‘box’, subplots=True, layout=(2,2), sharex=False, sharey=False)
plt.show()
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论