学习框架 |
第三章 分类算法
3.1 sklearn转换器与预估器
- 转换器是特征工程的父类
- 实例化 (实例化的是一个转换器类transformer)
- 调用fit_transform() (对于文档建立分类词频矩阵, 不能同时使用)
- 标准化 : ((x - mean) / std)
- fit_transform()
- fit() : 计算每一列的平均值 , 标准差
- transform() : (x - mean) / std进行最终的转换
- 预估器 (sklearn机器学习算法的实现)
- 估计器工作流程 (estimator)
- 实例化一个estimator预估器类
- estimator.fit(x_train, y_train) 计算 , 进行训练 , 调用完毕 , 模型生成
- 模型评估
- 直接比对真实值和预测值
y_predict = estimator.predict(x_test)
y_test == y_predict - 计算准确率
accuracy = estimator.score(x_test, y_test)
- 估计器工作流程 (estimator)
3.2 K-近邻算法
- KNN算法的核心思想 : 根据你的"邻居"推断出你的类别
- 定义 : 如果一个样本在特征空间中的k个最相似 (特征空间最邻近) 的样本中绝大多数属于一个类别 , 则该样本属于这个类别
- 距离公式 :
曼哈顿距离 : 绝对值距离
明科夫斯基距离 : 前两者是它的特殊情况 - k值取得过大 , 易受到样本不均衡的影响
k值取得过小 , 易受到异常值的影响 - API
- 流程
- 获取数据
- 数据集划分
- 特征工程 - 标准化
- KNN预估器流程
- 模型评估
- 优缺点 :
- 优点 : 简单 , 易于理解
- 缺点 : 必须制定k值 , k值选择不当 , 分类精度则不能保证 ; 懒惰算法 , 对测试样本分类时的计算量大 , 内存开销大
- 使用场景 : 小数据场景 , 几千 ~ 几万样本 , 具体场景具体业务区测试
3.3 模型选择与调优
-
什么是交叉验证 (cross validation)
-
超参数搜索 - 网格搜索 (Grid Search)
-
API
-
FaceBook案例
- 案例描述
- 参数设置 - 根据用户的位置 , 准确性与时间戳预测用户正在查看的业务
- 案例描述
-
流程分析
- 获取数据
- 数据处理
- 目的 : 筛选出
特征值 x
与目标值 y
a. 缩小数据范围 2 < x < 2.5 , 1.0 < y < 1.5
b. time属性 --> 有意义的时间 , 具体到年月日时分秒
c. 过滤签到次数少的地点 - 数据集划分
- 目的 : 筛选出
- 特征工程 : 标准化
- KNN算法预估流程
- 模型选择与调优
- 模型评估
3.4 朴素贝叶斯算法
- 什么是朴素贝叶斯算法
- 通过朴素贝叶斯算法得出的分类结果,取概率大的作为最终的结果
- 通过朴素贝叶斯算法得出的分类结果,取概率大的作为最终的结果
- 概率基础
- 联合概率、条件概率与相互独立
- 联合概率、条件概率与相互独立概念
- 联合概率、条件概率与相互独立概念
- 贝叶斯公式
- 朴素:假设特征与特征之间相互独立
- 贝叶斯公式如下:
- 应用场景:文本分类、单词作为特征
- 拉普拉斯平滑系数
目的:防止计算出的分类概率为 0
Ni:该 F1 词在 C类别所有文档中出现的次数
N:所属类别 C 下的文档所有词出现的次数和
- API
- 案例 :20类新闻分类
- 获取数据
- 划分数据集
- 特征工程
- 文本特征抽取
- 朴素贝叶斯预估器流程
- 模型评估
- 朴素贝叶斯算法总结
- 优点:
朴素贝叶斯模型发源于古典数学理论,有稳定的分类效率,对缺失数据不太敏感,算法也比较简单,常用于文本分类,分类准确度高,速度快 - 缺点:
由于使用了样本属性独立性的假设,所以如果特征属性有关联时其效果不好
- 优点:
- 总结
条件概率、联合概率计算方式与特征独立的关系贝叶斯公式的计算
3.5 决策树
- 认识决策树
- 最早的决策树是利用程序设计中 if-else 分支结构分割数据的一种分类学习方法
- 如何高效进行决策 - 特征的先后顺序
- 决策树分类原理详解
- 信息论基础:
信息 : 香农 - 消除随机不定性的东西 - 信息衡量 - 信息量 - 信息熵(单位为比特)
公式的详细解释
- 信息增益:特征 X 的信息熵不确定性减少的程度使得类 Y 信息熵减少的程度
- 举例:
以年龄特征来计算信息增益:
分别计算年龄、工作、房子、贷款情况,最后得出g(D,A1) = 0.313,g(D,A2) = 0.324,g(D,A3) = 0.420,g(D,A4) = 0.363,所以我们将 A3 作为划分的第一个特征。 - 决策树划分依据之一 - 信息增益
- 信息论基础:
- 决策树 API
- 案例:泰坦尼克号乘客生存预测
流程分析
特征值 目标值- 获取数据
- 数据处理
缺失值处理
特征值 - 字典类型 - 准备好特征值、目标值
- 划分数据集
- 特征工程:字典特征工程
- 决策树预估器流程
- 模型评估
- 决策树可视化
保存树的结构到dot 文件
- 决策树总结
优点:简单的理解和解释,树可视化
缺点:决策树学习者可以创建不能很好推广数据的过于复杂的树,这被称为过拟合
改进:减枝 cart 算法;随机森林
应用场合:企业重要决策,由于分析能力很好,在决策过程应用较多,可以选择特征
3.6 集成学习方法之随机森林
- 什么是集成学习方法
通过建立几个模型组合来解决单一预测问题,它的工作原理是生成多个分类器/模型,各自独立的学习和做出预测,这些预测最后结合成组合预测,因此优于任何一个单分类做出的预测 - 什么是随机森林
是一个包含多个决策树的分类器,并且其输出的类别是由个别树输出的类别的众数而定 - 随机森林原理过程
两个随机- 训练集随机 - N 个样本中随机有放回的抽取 N 个样本
bootstrap-随机有放回抽样 - 特征随机 - M 个特征中抽取 m 个特征
M >> m:降维
- 训练集随机 - N 个样本中随机有放回的抽取 N 个样本
- API
- 随机森林预测案例
随机森林对泰坦尼克号乘客生存进行预测 - 总结
具有极好的准确率
能够有效的运行在大数据集上,处理具有高维特征的数据输入样本,而且不需要降维
能够评估各个特征在分类问题上的重要性