Merge branch 'master' into master

This commit is contained in:
ApacheCN
2017-03-09 15:07:08 +08:00
committed by GitHub
8 changed files with 424 additions and 2 deletions

21
docs/10.k-means聚类.md Normal file
View File

@@ -0,0 +1,21 @@
# 10) k-means聚类
* 聚类介绍
* 聚类是一种无监督的学习,它将相似的对象归到一个簇中。
* 聚类分析试图将相似对象归入同一簇,将不相似对象归到不同簇。相似这一概念取决于所选择的相似度计算方法。
* K-均值聚类算法
* 优点 : 容易实现
* 缺点 : 可能收敛到局部最小值,在大规模数据集上收敛较慢。
* 使用数据类型 : 数值型数据。
* K-均值算法工作流程
* 首先,随机确定 k 个初始点作为质心。
* 然后,将数据集中的每个点分配到一个簇中。(为每个点找到距其最近的质心,并将其分配给该质心所对应的簇)
* 最后,每个簇的质心更新为该簇所有点的平均值。
* K-均值算法伪代码如下
* 创建 k 个点作为起始质心(通常是随机选择)
* 当任意一个点的簇分配结果发生改变时
* 对数据集中的每个数据点
* 对每个质心
* 计算质心与数据点之间的距离
* 将数据点分配到距其最近的簇
* 对每一个簇,计算簇中所有点的均值并将均值作为质心

50
docs/4.朴素贝叶斯.md Normal file
View File

@@ -0,0 +1,50 @@
# 4) 朴素贝叶斯
* 假设: 特征之间强(朴素)独立
* 概率模型
* P(C|F1F2...Fn) = P(F1F2...Fn|C)P(C) / P(F1F2...Fn)
* 由于对于所有类别,P(F1F2...Fn)都是相同的,比较P(C|F1F2...Fn)只用比较P(F1F2...Fn|C)P(C)就好了
* 朴素贝叶斯的特点
* 优点:在数据较少的情况下仍然有效,可以处理多类别问题
* 缺点:对于输入数据的准备方式较为敏感
* 适用数据类型:标称型数据
* 朴素贝叶斯的一般过程
* 收集数据:可以使用任何方法
* 准备数据:需要数值型或者布尔型数据
* 分析数据:有大量特征时,绘制特征作用不大,此时使用直方图效果更好。
* 训练算法:计算不同的独立特征的条件概率
* 测试算法:计算错误率
* 使用算法:文本分类等
* 优化
* 为了避免一个概率为0导致P(F1|C)*P(F2|C)....P(Fn|C)整个为0,所以优化为将所有词的出现数都初始化为1,并将分母初始化为2.
* 由于大部分因子比较小,乘积之后得到的数不易比较,程序误差较大。所以取对数后可将乘法转化为加法:P(F1|C)*P(F2|C)....P(Fn|C)P(C) -> log(P(F1|C))+log(P(F2|C))+....+log(P(Fn|C))+log(P(C))
* 总结
* 这一块代码比较乱,最好先把公式理一理再看
* 可以参考一下[阮一峰的博客](http://www.ruanyifeng.com/blog/2013/12/naive_bayes_classifier.html)

25
docs/6.支持向量机.md Normal file
View File

@@ -0,0 +1,25 @@
# 6) 支持向量机
* 基本概念
* 假设有两组数据,我们可以用一条线将这两个数据集分隔开,这条直线称为分隔超平面
(当维数很高时称为分隔超平面)。
* 我们希望找到离分隔超平面最近的点,确保它们离分隔面的距离尽可能远。
* 支持向量就是离分隔超平面最近的那些点。
* 支持向量机特点
* 优点:泛化错误率低,计算开销不大,结果易解释。
* 缺点:对参数调节和核函数的选择敏感,原始分类器不加修改仅适用于处理二类问题。
* 适用数据类型:数值型和标称型数据。
* SVM应用的一般流程
1. 准备收集数据:可以使用任何方法。
2. 准备数据:需要数值型数据。
3. 分析数据:有助于可视化分隔超平面。
4. 训练算法:SVM的大部分时间都花在训练上,该过程主要实现两个参数的调优。
5. 测试算法:测试分类结果是否达到预期的目的。
6. 使用算法:几乎所有分类问题都可以使用SVM,值得一提的是,SVM本身是一个二类分类器,
对多类问题应用SVM需要对代码做一些修改。

View File

@@ -0,0 +1,18 @@
# 8)预测数值型数据:回归
* 线性回归的特点
* 优点:结果易于理解,计算上不复杂。
* 缺点:对非线性的数据拟合不好。
* 适用数据范围:数值型和标称型数据。
* 工作原理
* 回归的目的是预测数值型的目标值。最直接的办法是以及输入写出一个目标值的计算公式。
* 回归的一般流程
* 收集数据:任何方法
* 准备数据:回归需要数值型数据,标称型数据将被转成二值型数据。
* 分析数据:绘出数据的可视二维图将有助于对数据做出理解和分析,在采用缩减法求得新回归系数之后,可以将新拟合线绘在图上作为对比。
* 训练算法:找到回归系数。
* 测试数据:使用R的平方或者预测值和数据的拟合度,来分析模型的效果。
* 使用算法:使用回归,可以在给定输入的时候预测出一个数值,这是对分类方法的提升,因为这样可以预测连续型数据而不仅仅是离散的类别标签。
* 总结
* 求回归系数的过程就是回归。