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

本文已参与「新人创作礼」活动

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中贝叶斯分类器使用场景

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

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

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

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

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

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

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

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

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

猜你喜欢

转载自juejin.im/post/7077712840638857252