通俗易懂的机器学习——交叉验证、KNN、贝叶斯分类、决策树基础知识补弱

1,056 阅读3分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

1.交叉验证

交叉验证:测试模型泛化能力 解释:得到的拟合程度->模型的真实水平->分类能力 变换各种方式测试模型->泛化能力

交叉验证的种类:

简单的训练集和测试集切分标准K折分层K折留一法交叉验证随机排列交叉验证
实现方式直接划分将数据分成n段,训练K次,每次训练取一段作为测试测试数据,n-1段作为训练数据将数据分成K段,训练K次,每次训练取一段作为测试测试数据,K-1段作为训练数据测试集只有一个样本,其余作为训练集,对所有样本进行训练随机划分多次
效果测试集覆盖范围较少(一般为20%),这种情况有漏洞测试样本全覆盖,但仍然受到取样的影响每折里不同类别的分布与整体分布一样,充分训练,充分测试,受取样的影响较小减少取样带来的偏差,模型的边界会尽可能平滑,样本数过多训练和测试的时间会很大增大了取样的随机性,减少了取样带来的偏差

2.贝叶斯实现垃圾邮件分类

流程: (1)算概率表(条件概率):正常邮件中每个词出现的概率P(词|正)和垃圾邮件中每个词出现的概率P(词|垃)。 (2)贝叶斯推导:将一封新邮件拆分为词的集合

=P(词的集合)P(词的集合)=P()P(词的集合)P(词的集合(正或垃))=P()P(词的集合)P(词的集合)+P(词的集合)=P()P(词的集合垃)P()P(词的集合)+P()P(词的集合)=P()P(1)P(2)P(n)P()P(1)P(2)P(n)+P()P(1)P(2)P(n)\\ = \frac {P(垃 \cdot 词的集合)}{P(词的集合)} \\ = \frac {P(垃) \cdot P(词的集合|垃)}{P(词的集合 \cdot (正或垃))} \\ = \frac {P(垃) \cdot P(词的集合|垃)}{P(词的集合 \cdot 正)+P(词的集合 \cdot 垃)} \\ = \frac {P(垃) \cdot P(词的集合|垃)}{P(正)P(词的集合|正)+P(垃)P(词的集合|垃)} \\ = \frac{P(垃) \cdot P(词_1|垃) \cdot P(词_2|垃) \cdot \cdot \cdot P(词_n|垃)}{P(垃) \cdot P(词_1|垃) \cdot P(词_2|垃) \cdot \cdot \cdot P(词_n|垃) + P(正) \cdot P(词_1|正) \cdot P(词_2|正) \cdot \cdot \cdot P(词_n|正)}

3.sklearn中贝叶斯分类器使用场景

GaussianNBMultinomialNBBernoulliNB
满足条件满足高斯分布满足多项式分布满足二项分布
对比样本特征的分布大部分是连续值样本特征的大部分是多元离散值样本特征是二元离散值或者很稀疏的多元离散值

4.KNN、贝叶斯、决策树三种分类算法的异同

KNN贝叶斯决策树
操作和每个样本点比较计算概率根据基尼系数或信息熵建立决策树树
拟合程度可调(K值)易欠拟合易过拟合
超参数K,P无参数剪枝参数
优点训练快(实际上根本不用训练)不过拟合(结果由概率决定)预测快(预测时相当于if-else)
缺点预测慢(要比较所有的数据)易欠拟合易过拟合

5.使用鸢尾花花瓣长和花瓣宽实现决策树的训练过程

1)选特征:计算每一个特征(花瓣长和花瓣宽)对应的信息熵或基尼系数

(1)选取一个特征,进行等分或样本点进行分割

(2)针对每个分割点计算基尼系数

(3)选取最小的基尼系数和分割点作为这个特征的分支条件,分割点决定结点的分隔值,重复迭代

2)截止条件:限定树的深度