10分钟入门Pandas
原文地址,是官网的《10 Minutes to pandas》翻译,代码中添加了个人的一些注释。
通常来说,我们像下面这样来引入包:
In [1]: import pandas as pd
In [2]: import numpy as np
In [3]: import matplotlib.pyplot as plt
原文地址,是官网的《10 Minutes to pandas》翻译,代码中添加了个人的一些注释。
通常来说,我们像下面这样来引入包:
In [1]: import pandas as pd
In [2]: import numpy as np
In [3]: import matplotlib.pyplot as plt
决策树是机器学习中一种简单明了的分类算法,用程序语言描述就是if...elif...else...
,关键问题则是如何选择合适的特征对数据集进行切割,常见算法有: ID3、C4.5、CART等。
今天主要记录一下ID3这个算法,想使用这个算法首先要了解信息增益,想了解信息增益则要先明白什么是"熵”。熵描述了一个系统的混乱复杂程度,有一个理论叫做"熵增加”,含义就是一个没有外力干涉的系统混乱程度总是增加的,比如一个房间如果没人打扫的话只会越来越混乱,而不会自己变得整洁。
什么是kNN?kNN(k-Nearest Neighbors)是机器学习中处理分类问题的一种简单明了的算法。核心精髓就是老祖宗几百年前留下的言语"物以类聚,人以群居”。忘记从哪里看到的一个说法:“你身边最好的6个朋友的平均薪资,就是你的薪资水平。“这就是kNN算法的一个应用了吧,另外我觉得之前几篇给验证码降噪用的连通域算法,分割用的滴水算法,都有kNN的味道在里面。
之前一直有个疑惑,为什么要使用numpy?更本质的说,为什么要使用矩阵?矩阵是什么?意味着什么?关于关于矩阵的问题,这里推荐一个系列视频,讲的非常非常好。至于为什么用numpy,从程序的角度来讲,我认为最大的好处就是减少代码量以及提高效率(恩,写此文的时候觉得这是一句废话,但确实困扰了我一阵……)
比如,在学习KNN算法时需要计算欧式距离,公式如下:
$$d=\sqrt{ {({A_0}-{B_0})^2}+{({A_1}-{B_1})^2}+{({A_2}-{B_2})^2}+{({A_3}-{B_3})^2}+… }$$
这里用2维为例,公式变成:
$$d=\sqrt{ {({A_0}-{B_0})^2}+{({A_1}-{B_1})^2} }$$
这货貌似是已知直角三角形直角边求斜边长啊?