用于突击一下机器学习的一些东西,第二志愿被改到机器学习部门了,感觉其实挺凉的估计,毕竟这玩意没碰到过,也就两三天时间,随便看一下吧。
我也不知道这里面具体都有什么分类,就看到哪里抄到哪里吧
机器学习
机器学习分为有监督学习和无监督学习。
- 有监督学习:有训练样本和每个样本对应的标签值,有输入有输出,针对性训练。(所有分类和回归都是有监督)
- 无监督学习:只有训练样本,但是没有标签纸,然后自动根据样本的相似特征进行归类
聚类
聚类是一种无监督学习。
聚类则是试图将数据集的样本划分为若干个互不相交的类簇,从而每个簇对应一个潜在的类别。
K-means聚类
首先随机指定类中心,根据样本与类中心的远近划分类簇,接着重新计算类中心,迭代直至收敛。
有监督学习
K-means近邻
如果一个样本在特征空间中的k个最相似的样本大多都属于一个类别,那么这个样本就属于这个类别。
k通常不大于20。
比如下面这个图,如果k为3,则绿色需要判断距离最近的三个点,红色占据三分之二,所以认为绿色是红色;如果k为5,则判断最近的五个点,蓝色占五分之三,则此时绿色是蓝色。
算法步骤(测试数据就是带待预测的):
- 分别计算测试数据和训练数据的距离
- 按照距离递增排序
- 选取距离最小的k个点
- 统计这k个点中的训练数据的每一类频率
- 选取频率最高的一个作为测试数据的分类
青少年市场细分
一个K-means的小实验
步骤:
- 先读取数据,然后统计男女的个数
- 由于统计青少年,需要除去13-20岁以外的人,标记为NaH。其实这里对这些空置设置第三个类别unknown,标记这是缺失数据
- 先对数据进行编码处理,使用独热编码。也就是一个特征占用一位,即这里需要三位,分别表示M、F、unknown。(独热编码解决的分类器不好处理数据特征的问题、也扩充了特征)
- 对数据进行标准化处理
- 调用sklearn的Kmeans类进行分析,设置k为5
- 可以查看聚类效果
决策树
思想和人的思考过程类似吧。
比如我是否拥有房产,这是一个节点,两个子节点有和没有;如果有,能否结婚,这又是一个节点,子节点是能和不能;选择能,然后是月收入是否大于4k,这也是一个节点,子节点为是或者否,以此类推。
决策树是一个二叉树,非叶子节点存放数据的一些特征属性,每一个分支则表示这个属性的一个输出,叶子节点存放判别的决策结果。从根节点出发,根据数据特征以此选择合适的分支,最终的叶子节点存放的类别作为决策结果。
为了解决噪声和离群点带来的过拟合,可以进行剪枝操作。
- 在构造的时候,根据某些条件进行判断如果不符合就不创建这个分支
- 构造完成以后,通过某些规则遍历然后剪枝
特点:
- 每个非叶节点表示一个特征属性测试。
- 每个分支代表这个特征属性在某个值域上的输出。
- 每个叶子节点存放一个类别。
- 每个节点包含的样本集合通过属性测试被划分到子节点中,根节点包含样本全集。
ID3、C4.5、CART
ID3
ID3算法使用信息增益为准则来选择划分属性,“信息熵”(information entropy)是度量样本结合纯度的常用指标
C4.5
ID3算法存在一个问题,就是偏向于取值数目较多的属性,例如:如果存在一个唯一标识,这样样本集D将会被划分为|D|个分支,每个分支只有一个样本,这样划分后的信息熵为零,十分纯净,但是对分类毫无用处。因此C4.5算法使用了“增益率”(gain ratio)来选择划分属性,来避免这个问题带来的困扰。首先使用ID3算法计算出信息增益高于平均水平的候选属性,接着C4.5计算这些候选属性的增益率
CART
CART决策树使用“基尼指数”(Gini index)来选择划分属性,基尼指数反映的是从样本集D中随机抽取两个样本,其类别标记不一致的概率,因此Gini(D)越小越好
LR
Logistic回归算法,名字虽带有回归,但其实