[python]机器学习实战

本文为《机器学习实战》的学习笔记,记录了作者使用Python 3.6版本进行编程实践的过程,包括KNN、决策树、朴素贝叶斯等算法的实现及遇到的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   相关博客和代码很多很多,本文主要记录 学习过程中遇到的问题 + 可供参考的链接 和 博客地址。

1. 书上用的python 2.7,我用的python 3.6,导致代码不可照搬。

作为一个python小白,只能去搜寻众网友的3.6版本代码啦。

2. source code for book 

下载地址 https://github.com/EddieXin/machinelearninginaction

(这个链接是最好的,免费 + 网速快,我也fork了一下)

3. lesson 2: KNN

1) 参考 修行的猫_zq 的csdn blog,python 3.6+超级详细的注释

http://blog.youkuaiyun.com/sinat_17196995/article/details/55052174

2)记录:1.还要写def file2matrix(filename)函数啊,R中read.txt()直接搞定

2.>>>reload(kNN) 错误,pthon3.X 前一句要加上 >>>from importlib import reload

参考:https://stackoverflow.com/questions/10142764/nameerror-name-reload-is-not-defined

3. Page22的datingTestSet.txt这个文件,根据网上的源代码,应该选择datingTestSet2.txt这个文件。主要的区别是最后的标签

参考:http://blog.youkuaiyun.com/chchlh/article/details/41596797

4. lesson 3: decision tree

1)3.1节,3.3节,3.4节  构造决策树 +分类

参考: 笨鸟多学的blog,详细注释

 https://www.cnblogs.com/zy230530/p/6813250.html

创建的树,用字典类型存储,

字典简介:https://www.cnblogs.com/linjiqin/p/3608541.html

2)3.2节  绘制决策树

程序3-6【重要】,递归+字典

程序3-5,3-7绘图,【不重要】

参考 修行的猫_zq 的csdn blog,python 3.6+超级详细的注释

http://blog.youkuaiyun.com/sinat_17196995/article/details/55670932

5. lesson 4: naive Bayes

1)继续参考 修行的猫_zq 的csdn blog,注释详细

http://blog.youkuaiyun.com/sinat_17196995/article/details/57412474

2)chapter 4.7,python解析RSS(feedparser) 

https://www.cnblogs.com/MrLJC/p/3731213.html

6. lesson 5: Logistic Regression

1继续参考 修行的猫_zq 的csdn blog,注释详细

http://blog.youkuaiyun.com/sinat_17196995/article/details/57418519

2) 问题:程序清单5-1,用sigmoid函数的值与1/2的关系实现分类,为何是梯度上升?怎么推导的。

答:参考 西瓜书,chapter 3.3对数几率回归,公式(3.30)给出了梯度的公式,

      自己推导一遍,得到梯度下降的公式。与程序5-1更新weights一致,只不过程序5-1称之为梯度上升。

7. lesson6: SVM

1)SVM推导过程:涉及原问题和对偶问题、拉格朗日对偶性、KKT条件等,详见 李航书 SVM章节+附录C

2)SMO算法(程序6-2)

书中代码解释:  http://blog.youkuaiyun.com/puqutogether/article/details/44565093

smo算法: 李航书 chapter 7.4,自己推导一遍就明白啦

8. lesson8: regression

1))涉及 标准线性回归,局部加权线性回归,岭回归,Lasso(其优化参考本人博文--Lasso回归的优化)

所有优化过程均自己推导一遍,尤其是Lasso--有多种优化方法。

2)乐高玩具数据获取部分,程序8-5

1是从网站抽取数据,如程序8-5所示。python3.X不支持urllib2(安装失败),需要安装urllib3;再import urllib.request,并把pg那行改为urllib2.request.urlopen。程序的解释参考链接 https://www.cnblogs.com/zy230530/p/6942458.html 。失败,我猜是url链接无效吧,以后再来深究

2是直接爬取html,参考链接http://blog.youkuaiyun.com/u011629133/article/details/52296892。安装Beautifulsoup4,pip install Beautifulsoup4,然后from bs4 import BeautifulSoup检测是否安装成功。将读取文件的那行代码改为fr = open(inFile, mode='r', encoding='UTF-8')。

9. lesson7: AdaBoost + ROC曲线

1)AdaBoost

理论方面:(1)自己的博文 提升树boosting;(2)李航书chapter8,主要是算法8.1

2)非均衡分类问题

chapter7.7总结了多种非均衡分类问题的指标,主要关注ROC曲线(程序7-5)

10. lesson9: regression Tree

1)python3部分代码不同于python2,继续参考 修行的猫_zq 的csdn blog

http://blog.youkuaiyun.com/sinat_17196995/article/details/69621687

2)理论方面:参考自己的博文 决策树

书中创建的是CART树,包括 回归树(叶节点是常数),模型树(叶节点是分段回归方程)

剪枝(包括预、后)

3)GUI,以后再学

11.lesson10: k-Means

1)对聚类进行后处理以提高聚类性能:

1是合并最近的质心;2是利用SSE,合并2个使得SSE增幅最小的质心(10.2节)

2)从一个大的簇开始划分,直到达到指定簇数为止:(10.3节,程序10-3)

1是二分k-Means算法,选择能够最大程度【降低SSE的值】的簇进行划分;2是选择SSE最大的簇进行划分

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值