
ML
qdbszsj
游荡ing
我的邮箱:qdbszsj@163.com
展开
-
西瓜书 习题6.2 用线性核、高斯核训练SVM
SVM手动实现底层代码有些麻烦,这里借助sklearn实现了一下,数据以及代码地址:https://github.com/qdbszsj/SVMimport pandas as pdimport numpy as npdataset = pd.read_csv('/home/parker/watermelonData/watermelon3_0a.csv', delimiter=",原创 2018-01-22 00:10:40 · 7660 阅读 · 0 评论 -
西瓜书 习题4.3 编程实现信息熵决策树、绘制决策树、解决matplotlib中文乱码问题
就照着西瓜书P74的伪代码,把这段代码翻译成python就好了,这里决策树的实现没有参考其他人的代码,是我纯原创的。项目github地址:https://github.com/qdbszsj/Decision-Tree-based-on-information-entropy这里要先说一下我的数据结构,D是一个list,里面是数据集的行索引,一共17个数据,那么D里的list元素取值范围就是从0到原创 2018-01-17 10:38:34 · 5831 阅读 · 1 评论 -
西瓜书 习题4.4 编程实现基尼指数决策树
数据及代码地址:https://github.com/qdbszsj/decisionTreeGini这里的代码在信息熵决策树的基础上稍加修改就可以,之前是根据熵增的最大值来确定用哪个属性划分,现在是根据基尼指数(表现数据集D的纯度)的最小值来建树。这里网上的很多人说建出来的树长得和书上的不一样!一样TM就怪了,书上P81页的树那是根据entropy建的,我们建出来的树是根据Gini index的原创 2018-01-18 15:51:13 · 4480 阅读 · 2 评论 -
西瓜书 习题11.1 编程实现Relief算法 特征选择、正则化总结
Relief算法的数据以及代码:https://github.com/qdbszsj/Relief西瓜书第十一章,主要讲了一下特征选择的方法,通常来说,有很多冗余特征,如果能把这些特征从我们的数据集中筛选出去,那么可以极大地提高我们的程序运行效率,当然有的时候我们还需要人为保留或者创造一些冗余特征,当且仅当这些冗余特征恰好对应了完成任务所需要的“中间概念”。比如要求一个立方体的体积时,输入数据原创 2018-01-25 14:34:57 · 1841 阅读 · 0 评论 -
西瓜书 习题3.3 编程实现对数几率回归,梯度下降法
最近入坑上道了,跟着周志华老师的《机器学习》,先搞个课后题练练手。我电脑是Win10的,硬件配置不输Mac Pro,但是之前跑Kaggle上的泰坦尼克,装python的各种package装的我心累,于是这次我直接用VMware开了个Ubuntu在电脑里,给分配了4G的内存,平时就用Ubuntu了,通常遇到什么包没装上,用terminal就可以搞定了。然后我在Ubuntu里装了个pycharm,原创 2018-01-08 14:57:28 · 4303 阅读 · 1 评论 -
西瓜书 习题10.1 KNN
代码和数据:https://github.com/qdbszsj/KNN这里编程实现了一下KNN,K-Nearest Neighbor。KNN的好处是可以“懒惰学习”,只要存好数据,来一个测一个,调整一下K就好,或者是把每个维度的权值调整一下,意思就是在距离上做点文章。然后这一章里的PCA(principal component analysis),主成分分析,是一种降维方法,说白了就原创 2018-01-24 20:57:57 · 1674 阅读 · 4 评论 -
西瓜书 习题9.4 K-means
第九章讲了很多聚类方法,以及聚类的好坏的度量方式,Kmeans比较容易实现,比较常用的一种方法。通常来讲,我们希望聚类的结果,类内相似度高,类间差异度大。数据以及代码: https://github.com/qdbszsj/Kmeansimport numpy as npimport pandas as pdimport matplotlib.pyplot as plt原创 2018-01-24 16:52:16 · 2098 阅读 · 0 评论 -
西瓜书 习题3.5 编程实现LDA
参照西瓜书的课后习题3.5的要求,参考了一些资料,简单地实现了一下LDA。数据还是西瓜数据3.0a代码和数据,都挂在了我的git上:https://github.com/qdbszsj/LDA首先第一部分还是画一个散点图,这个跟上一个习题是一样的,此处不详细表述了。然后是先用sklearn偷懒实现一下LDA,这里要注意下模型参数的选择,对于小数据一般选择lsqr,这里给出了官方的r原创 2018-01-15 23:49:33 · 4108 阅读 · 1 评论 -
西瓜书 第八章习题 集成学习总结(Adaboost、GradientBoost、Bagging、RandomForest)
数据及代码在git上:https://github.com/qdbszsj/Ensemble-learning这里用sklearn实现的代码,4种常用的集成学习的方法,手写有点麻烦,这里重点不是代码,是学习总结。集成学习(ensemble-learning)通过将多个学习器进行结合,常常可以获得比单一学习器更显著的泛化性能,我们的目标是基于一个大数据集产生若干“好而不同”的学习器,然后用这原创 2018-01-23 15:02:02 · 2154 阅读 · 0 评论 -
西瓜书 习题7.3 朴素贝叶斯分类器+拉普拉斯修正
Naive Bayes Classifier with Laplacian correction数据和代码在我的git上,原创代码:https://github.com/qdbszsj/NBC朴素贝叶斯分类器,用的贝叶斯定理(这不是废话),举个例子,说白了就是:绿瓜是好瓜的概率=所有好瓜里的绿瓜个数/所有绿瓜个数。假如一个瓜是绿的,还很清脆,那么这个瓜是好瓜的概率就是P(绿瓜是原创 2018-01-22 16:44:05 · 4047 阅读 · 0 评论 -
西瓜书5.5 编程实现BP神经网络——标准BP算法、累积BP算法
这里照着书上的公式,实现了一下标准BP算法,和累积BP算法,BP是error Back Propagation的意思,误差逆传播。BP网络通常是指用BP算法训练的多层前馈神经网络。代码是照着书本公式自己写的,没有参考网上的其他版本。数据和代码地址:https://github.com/qdbszsj/BP具体的理论证明和公式推导,见西瓜书P101-104。这里重点说一下我的数据处理和一些代原创 2018-01-19 22:09:29 · 16924 阅读 · 7 评论