mirror of
https://github.com/apachecn/ailearning.git
synced 2026-11-02 13:34:11 +08:00
Merge branch 'master' into master
This commit is contained in:
21
docs/10.k-means聚类.md
Normal file
21
docs/10.k-means聚类.md
Normal file
@@ -0,0 +1,21 @@
|
||||
|
||||
# 10) k-means聚类
|
||||
* 聚类介绍
|
||||
* 聚类是一种无监督的学习,它将相似的对象归到一个簇中。
|
||||
* 聚类分析试图将相似对象归入同一簇,将不相似对象归到不同簇。相似这一概念取决于所选择的相似度计算方法。
|
||||
* K-均值聚类算法
|
||||
* 优点 : 容易实现
|
||||
* 缺点 : 可能收敛到局部最小值,在大规模数据集上收敛较慢。
|
||||
* 使用数据类型 : 数值型数据。
|
||||
* K-均值算法工作流程
|
||||
* 首先,随机确定 k 个初始点作为质心。
|
||||
* 然后,将数据集中的每个点分配到一个簇中。(为每个点找到距其最近的质心,并将其分配给该质心所对应的簇)
|
||||
* 最后,每个簇的质心更新为该簇所有点的平均值。
|
||||
* K-均值算法伪代码如下
|
||||
* 创建 k 个点作为起始质心(通常是随机选择)
|
||||
* 当任意一个点的簇分配结果发生改变时
|
||||
* 对数据集中的每个数据点
|
||||
* 对每个质心
|
||||
* 计算质心与数据点之间的距离
|
||||
* 将数据点分配到距其最近的簇
|
||||
* 对每一个簇,计算簇中所有点的均值并将均值作为质心
|
||||
50
docs/4.朴素贝叶斯.md
Normal file
50
docs/4.朴素贝叶斯.md
Normal 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
25
docs/6.支持向量机.md
Normal file
@@ -0,0 +1,25 @@
|
||||
|
||||
# 6) 支持向量机
|
||||
|
||||
* 基本概念
|
||||
|
||||
* 假设有两组数据,我们可以用一条线将这两个数据集分隔开,这条直线称为分隔超平面
|
||||
(当维数很高时称为分隔超平面)。
|
||||
* 我们希望找到离分隔超平面最近的点,确保它们离分隔面的距离尽可能远。
|
||||
* 支持向量就是离分隔超平面最近的那些点。
|
||||
|
||||
* 支持向量机特点
|
||||
|
||||
* 优点:泛化错误率低,计算开销不大,结果易解释。
|
||||
* 缺点:对参数调节和核函数的选择敏感,原始分类器不加修改仅适用于处理二类问题。
|
||||
* 适用数据类型:数值型和标称型数据。
|
||||
|
||||
* SVM应用的一般流程
|
||||
1. 准备收集数据:可以使用任何方法。
|
||||
2. 准备数据:需要数值型数据。
|
||||
3. 分析数据:有助于可视化分隔超平面。
|
||||
4. 训练算法:SVM的大部分时间都花在训练上,该过程主要实现两个参数的调优。
|
||||
5. 测试算法:测试分类结果是否达到预期的目的。
|
||||
6. 使用算法:几乎所有分类问题都可以使用SVM,值得一提的是,SVM本身是一个二类分类器,
|
||||
对多类问题应用SVM需要对代码做一些修改。
|
||||
|
||||
18
docs/8.预测数值型数据:回归.md
Normal file
18
docs/8.预测数值型数据:回归.md
Normal file
@@ -0,0 +1,18 @@
|
||||
|
||||
# 8)预测数值型数据:回归
|
||||
|
||||
* 线性回归的特点
|
||||
* 优点:结果易于理解,计算上不复杂。
|
||||
* 缺点:对非线性的数据拟合不好。
|
||||
* 适用数据范围:数值型和标称型数据。
|
||||
* 工作原理
|
||||
* 回归的目的是预测数值型的目标值。最直接的办法是以及输入写出一个目标值的计算公式。
|
||||
* 回归的一般流程
|
||||
* 收集数据:任何方法
|
||||
* 准备数据:回归需要数值型数据,标称型数据将被转成二值型数据。
|
||||
* 分析数据:绘出数据的可视二维图将有助于对数据做出理解和分析,在采用缩减法求得新回归系数之后,可以将新拟合线绘在图上作为对比。
|
||||
* 训练算法:找到回归系数。
|
||||
* 测试数据:使用R的平方或者预测值和数据的拟合度,来分析模型的效果。
|
||||
* 使用算法:使用回归,可以在给定输入的时候预测出一个数值,这是对分类方法的提升,因为这样可以预测连续型数据而不仅仅是离散的类别标签。
|
||||
* 总结
|
||||
* 求回归系数的过程就是回归。
|
||||
Reference in New Issue
Block a user