Python入门机器学习
如何通过Python入门机器学习
我们都知道机器学习是一门综合性极强的研究课题,对数学知识要求很高。因此,对于非学术研究专业的程序员,如果希望能入门机器学习,最好的方向还是从实践触发。
我了解到Python的生态对入门机器学习很有帮助。因此希望以此作为突破口入门机器学习。
我将会记录一个系列的学习与实践记录。记录内容主要参考Youtube中sentdex发布的视频,有兴趣的读者可以自己FQ到油管看一下。
下面介绍一下我将如何通过Python入门机器学习。
学习Python基本语法
首先我在Python官网找到入门教程,快速过了一遍Python的基本语法。相信对于稍微有点编程基础的人来说这都不是事儿。
作为实践,接着我用Python实现了一个基于命令行翻译脚本。到此Python算入门了。
这里啰嗦一下Mac下的Python环境的搭建过程。我在这篇文章中介绍如何处理系统自带和自己安装的Python版本。
Python机器学习相关库
Python有好多涉及机器学习的库,如Theano、TensorFlow、PyTorch、scikit-learn等。考虑到scikit-learn(以后将简写为sklearn)对机器学习进行了高度封装与抽象,能够让初学者跳出数学的梦魇进行机器学习实践,我选择它作为入门的跳板。
除此之外还需要学习下面几个Python库,用于数据处理或者科学计算等。
numpy:提供强大的N维数组及相关操作的库,参考NumPy快速入门笔记。
pandas:提供类似关系型或标签型数据结构的库,参考Pandas快速入门笔记。
scipy:集成众多数学运算函数的库,请自行参考官方文档。
matplotlib:把数据绘制成图像的工具,可以参考Matplotlib快速入门笔记。
出发机器学习冒险旅程
sklearn提供了很多机器学习的算法实现,在学习过程中我很难做到一个不漏地全面学习与覆盖。经过多番查找,我在Youtube上找到sentdex发布的视频“Machine Learning with Python”。至此,我也将跟随sentdex的脚步一步步进行学习。
后续的文章主要也是参考视频,并结合自己的理解进行必要的扩展。
初次看sklearn可以读一下官网的Tutorials文档。
其中“An introduction to machine learning with scikit-learn”章节可以让你初步了解sklearn这个库能做什么、机器学习基本概念、sklearn环境搭建、基础功能等。
而“A tutorial on statistical-learning for scientific data processing”章节能让你了解有关监督学习和非监督学习的基本概念。
深入原理
sklearn能够以黑盒方式提供机器学习算法的实现,这对初学者是有利的。但是如果仅仅停留在这里显然是不够的,如果不掌握一定的基础知识与原理,我们无法对显示问题进行建模与选型。所以在学习了sklearn的算法后,一定要查阅相关文档,了解算法背后的知识与原理。
这个过程应该是最艰难的,希望我们都不停留在这一步。
管理Mac的Python环境
问题描述
我的Mac自带了版本为2.7.10的Python却没有用于管理依赖的pip工具。而我在使用刚开始学习Python时,从其官网下载了安装脚本安装了3.6版本的Python。脚本自动配置了环境变量,导致pip引用了3.6版本的pip3,我找遍了整个硬盘都无法找到版本2.7对应的pip。
尴尬的是,目前有一份用Python2写的代码放在我面前,而我却因为无法安装依赖而无法执行它。我觉得这样的开发环境有问题,得找个方法解决它。
调研
在网上翻了一轮,看见了部分网友警告不要自己给系统自带的Python添加pip工具,原因是有可能导致系统异常。至于有何种异常我不想深究,我关注的是他们推荐使用HomeBrew管理自己的Python版本,保持系统的完整性。
解决步骤
- 删除通过Python官网脚本安装的python3.6
由于我自己安装过Python,所以需要执行这一步。对于没有安装过的读者可以跳过这一步。
我参考了Python官房文档对脚本安装的描述。请查看这里。文档介绍了脚本会对系统做哪些改动,对应地我们把这些改动恢复即可。详细操作如下:
删除/Library/Frameworks/Python.Frameworks
删除/Application/Python 3.6
删除.bash_profile文件中导出的有关Python3.6的路径和环境变量,然后使用source ./bash_profile命令让改动生效。
使用HomewBrew安装Python2和Python3
安装方法网上有很多介绍,我是参考了“MAC OSX 正確地同時安裝 PYTHON 2.7 和 PYTHON3”这篇文章。
不过我没有执行这篇文中介绍的修改环境变量顺序的步骤。我觉得这一步多余了。
经过这个步骤,HomeBrew为我管理了两个版本的Python,分别是2.7.14和3.6.4,在/usr/local/bin/目录下有相关命令。同时系统还有一个自带2.7.10版本的,放在/usr/bin目录中。
使用方法与优劣分析
以后开发过程中使用Python2的时候应该使用命令python2而不是使用python。因为,我的环境中命令python是MacOS自带的2.7.10版本。而命令python2则调用HomeBrew管理的python2.7.14,它在/usr/local/bin/目录中,是一个软链接,链接到/usr/local/Cellar/python/2.7.14_2/bin/python2中。命令python3同理。因此开发时需要区分这三者,这看起来有点别扭。
但我认为使用python2和python3显式指定版本没什么坏处,多一个字符而已。
我们有必要保持系统自带的Python环境的完整性。一方面,不在这样做可能导致你使用的第三方Python库对系统的产生影响。例如:你自己安装pip工具可能出现它依赖的其他库你没有完整提供。另一方面,系统自带的Python主要是服务于那些为Mac量身定做的软件,如果你私自改动可能会导致将来你的安装的软件运行出现异常。
这种方案在对Python代码进行打包发布时也有好处。如果你是开发Python应用软件的人,你可以显式指定版本进行开发工作,只要在打包或者发布的时候为用户的环境设身处地的进行配置即可。生成的包还可以在Mac原生的Python环境下进行alpha测试,因为这个环境跟目标用户的环境应该是一致的。
Python入门机器学习的更多相关文章
- 机器学习00:如何通过Python入门机器学习
我们都知道机器学习是一门综合性极强的研究课题,对数学知识要求很高.因此,对于非学术研究专业的程序员,如果希望能入门机器学习,最好的方向还是从实践触发. 我了解到Python的生态对入门机器学习很有帮助 ...
- 机器学习:如何通过Python入门机器学习
我们都知道机器学习是一门综合性极强的研究课题,对数学知识要求很高.因此,对于非学术研究专业的程序员,如果希望能入门机器学习,最好的方向还是从实践触发. 我了解到Python的生态对入门机器学习很有帮助 ...
- python入门机器学习,3行代码搞定线性回归
本文着重是重新梳理一下线性回归的概念,至于几行代码实现,那个不重要,概念明确了,代码自然水到渠成. “机器学习”对于普通大众来说可能会比较陌生,但是“人工智能”这个词简直是太火了,即便是风云变化的股市 ...
- Python入门、练手、视频资源汇总,拿走别客气!
摘要:为方便朋友,重新整理汇总,内容包括长期必备.入门教程.练手项目.学习视频. 一.长期必备. 1. StackOverflow,是疑难解答.bug排除必备网站,任何编程问题请第一时间到此网站查找. ...
- 第21月第6天 zhihu如何用3个月零基础入门机器学习
1. 我们应该记住,既成的事实一定有它的道理,如果我们不能理解它,恐怕得从自身找原因.如果你交易股票,请记住,如果预测和市场不一致,错的是预测,而不是市场 https://www.cnblogs.co ...
- Python开源机器学习框架:Scikit-learn六大功能,安装和运行Scikit-learn
Python开源机器学习框架:Scikit-learn入门指南. Scikit-learn的六大功能 Scikit-learn的基本功能主要被分为六大部分:分类,回归,聚类,数据降维,模型选择和数据预 ...
- 利用python 掌握机器学习的过程
转载:http://python.jobbole.com/84326/ 偶然看到的这篇文章,觉得对我挺有引导作用的.特此跟大家分享一下. 为了理解和应用机器学习技术,你需要学习 Python 或者 R ...
- python入门经典_好资源送不停
Python入门经典(2K超清_送书) https://study.163.com/course/courseMain.htm?courseId=1006183019&share=2& ...
- 【视频】谷歌大佬30分钟让你入门机器学习(2019谷歌I/O资源分享)
如果你是个谷粉,就一定会知道: 谷歌向来都很大胆.当所有的科技公司都在讲产品.讲利润的时候,2019年的谷歌开发者大会的主题却是:人文关怀.要知道,这是政府操心的事,而不是一家公司的任务. 谷歌敢这样 ...
随机推荐
- IOC与DI区别
(1)IOC:控制反转,把对象创建交给spring进行配置. (2)DI:依赖注入,向类里面的属性中设置值. (3)关系:依赖注入不能单独存在,需要在IOC的基础之上完成操作.
- chrome设置书签默认显示
实用的设置! 这样已设置,就可以方便的查看一些常用的书签了!
- 英语发音规则---S字母
英语发音规则---S字母 一.总结 一句话总结: 1.S 在音节开头或清辅音前 /s/? sit /sɪt/ vt.& vi.坐 seat /si:t/ n.席位 sell /sel/ vt. ...
- 使用dbms_metadata.get_ddl遇到ORA-31603
建了一个外部表,想看看这个表的信息,一查就报错了: SQL> select dbms_metadata.get_ddl('TABLE','ext_case1') from dual; ERROR ...
- 【BZOJ 2152】 聪聪可可
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=2152 [算法] 点分治 [代码] #include<bits/stdc++.h ...
- C# 遍历文件夹及子目录下所有图片.
要求:取指定目录下面的所有图片,以表格的型式展示并显示该图片的相对路径. 服务端代码: public partial class ViewIcon : System.Web.UI.Page { JAr ...
- k8s 架构浅析
文章目录 目录 Kubernetes 的电梯间演讲 Kubernetes 的核心层级对象 Kubernetes 的组件架构 Kubernetes 的组件通信协议/接口 Kubernetes 的分层架构 ...
- 清北集训Day1T3 LYK loves jumping(期望DP)
题目描述 LYK在玩一个魔法游戏,叫做跳跃魔法. 有n个点,每个点有两个属性hi和ti,表示初始高度,和下降高度.也就是说,它初始时高度为hi,一旦LYK踩在这个点上,由于重力的影响,这个点的高度会下 ...
- 编码介绍(ANSI、GBK、GB2312、UTF-8、GB18030和 UNICODE)
转载:http://blog.jobbole.com/30526/(前面内容)和http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf ...
- 关于app夜间模式那点事
大半年没写过代码了 一直在忙一些其他的事情 这几天想起来看了一点 心惊肉跳的 发现好陌生 所以打算今后慢慢的拾起来 往深度和广度去发展 发现好久之前写的一个微博项目 有一个夜间模式的功能没有 ...