机器学习笔记(1)-入门
作者:郭小林 2017-03-26
目录大纲
引子
环境搭建
helloworld
书籍
网络资料
引子
昨天在家里看《今日头条》的时候,意外的收到一条推送视频《Google机器学习入门 第一讲Hello World》,就点进去看了看,发现原来还是可以入门的。 关于机器学习,有四件事,我感觉冥冥之中让我带到机器学习的大门之中。
一是其实很早前就听说过机器学习,公司的策划胡子很早前就开始研究机器学习了,不过据说机器学习里面大量的公式,然后我就一直没敢看。虽然大学时候学过高数、线代和概率论,但是都十几年过去了,一直在现实生活中很少使用,所以就基本已经全部还给老师了。
第二个就是最近和一个10年在北京完美的清华毕业的一个硕士同事聊天,发现他现在也在搞DeepLearning相关的东西,而且据他说,他们公司的应届生都可以开到年薪60w了,我那个羡慕呀...
不过他现在每天的朋友圈都是在看各种paper,各种traing data...
第三件事就是各种新闻都在说各大学都在开设机器学习相关的课程,包括我的母校; 同时还有搜了下互联网的一些高级职位,基本都是跟机器学习有点关系。
第四件事就是上周和师兄吃饭交流的时候,得知他们现在在做教育App, 里面也是各种机器学习和DeepLearning的牛人。
这一切都让我觉得如果现在还不学习,那我就要跟社会脱节了。正在时候,就收到了今日头条的推送,而且看了google的helloworld视频让我觉得,虽然机器学习是个很复杂的学科,但是起码还是可以利用做点简单的事情的。那些遗忘在角落的数学公式我也可以慢慢的捡起来的。
环境搭建
http://scikit-learn.org/stable/install.html 这个是scikit-learn的官网,可以照着上面的来装。
当然最简单的是下载anaconda, 它会管理和安装机器学习相关的所有东西,包括python和numpy,scipy这些库。
当然还需要安装 pip, 有些库是需要借助pip来安装的 , 比如
wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py
pip install pydot
pip install pydotplus (较新的python版本需要这个库,比如3.6, 用来生成pdf决策树,后面的demo会使用)
这些都安装好了后,重新打开终端,运行以下命令
$ which python
/Users/XXX/anaconda/bin/python
$ python
Python 3.6.0 |Anaconda custom (x86_64)| (default, Dec 23 2016, 13:19:00)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
这里的python是anaconda自己安装的单独的版本,和系统路径的python路径不同,
系统的python是 /usr/bin/python, 实际链接的是
$ ls -l /usr/bin/python2.7
lrwxr-xr-x 1 root wheel 75B 9 24 2016 /usr/bin/python2.7 ->
/System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7
强烈建议不要修改这些soft link,如果需要使用特定的自己安装的版本,那么可以在 ~/.bashrc中做一个别名 python , 比如
vim ~/.bashrc
alias python="/usr/local/bin/python3.6"
source ~/.bashrc
除了这些,还需要一个graphviz的程序,这个可以通过port或者homebrew来安装,
sudo port install graphviz
这个同时还会安装和更新很多依赖软件
这些都搞定了之后 就可以开始我们的第一个程序HelloWorld了
HelloWorld
Google Machine Learning -- HelloWorld视频
$ cat hello.py
from sklearn import tree
# features = [[140, "smooth"], [130, "smooth"], [150, "bumpy"], [170, "bumpy"]]
features = [[140, 1], [130, 1], [150, 0], [170, 0]]
# labels = ["apple", "apple", "orange", "orange"]
labels = [0, 0, 1, 1]
clf = tree.DecisionTreeClassifier()
clf = clf.fit(features, labels)
print( clf.predict([[150, 0]]) )
将上面的代码保存在 hello.py文件中,然后运行,
即可得到结果
$ python hello.py
[1]
target中 0, 1分别代表的是apple和orange,说明了我们的代码是ok的
然后剩下的就可以继续跟着视频学了
或者直接在sk-learn的官网上根据入门教程一步一步的学习一些demo
http://scikit-learn.org/stable/tutorial/index.html
书籍
机器学习实战 我是在kindle上买的这本的电子版的
另外的网上推荐的
机器学习书单
下面是deep learning的
网络资料
github
Machine Learning、Deep Learning、PostgreSQL、Distributed System、Node.Js、Golang
https://github.com/bighunter513/machine-learning-python