每天唠叨多了,终于应该老老实实写读书笔记了.作为机器学习概念入门的书籍我觉得挺合适的.入门书籍关键是要讲清楚, 每个概念的由来,具体要解决什么问题,优缺点.知其所以然.
数据的准备
- 变量的确定: 变量也叫 属性 , 特征 或 维度
二值变量
分类变量
整型变量
连续变量
变量选择: 变量选择是一个试错的过程,,需要根据反馈结果不断更换变量
特征工程: 本质是对变量的处理, 得到更普遍性的维度
重新编码: 两个不同变量有明显的从属关系
降维 : 合并多个变量
- 数据修复
- 近似
- 计算
- 移除
为模型选择合适的算法 (书的重点)
- 无监督学习:
任务目标:指出数据中隐藏的模式.之所以称之为无监 督学习算法,是因为我们不知道要找的模式是什么,而是要依靠算法从 数据集中发现模式.
K均值聚类
主成分分析(PCA)
关联规则
社会网络分析
- 监督学习:
任务目标:使用数据中的模式做预测.之所以称之为监督学习算 法,是因为它们的预测都基于已有的模式.
回归分析(Regression Analysis)
K最近邻(KNN)
支持向量机(SVM)
决策树
随机森林(random decision forests)
神经网络
- 强化学习:
无监督学习模型和监督学习模型在部署之后便无法更改. 强化学习不同于此.
强化学习模型自身可以通过反馈结果不断改进.
- A/Btest
调整算法参数,优化模型
参数调优:
从结果来看,参数调节会产生三种结果
过拟合: 实践中我们更多遇到的. 对已有数据拟合度最高,但可能使未知数据的预测准确度下降
理想拟合: 在数据趋势和细微变化中取得平衡
欠拟合 : 忽视数据中的基本模式,导致没有正确表现出数据的趋势
实践中我们经常会遇到过拟合的问题( 想想为什么 ).解决方式之一就是引入 惩罚参数.
根据准确度评价模型
- 使用指标
常用的指标有:
1.1 准确率
到底管不管用,最简单的一个指标就是: 你到底成功预测的占比有多少
1.2 混淆矩阵
type-1 error 和 type-2 error
关心两种错误记忆方式
type-1 error: 本来是对的,被弄成错的
type-2 error: 本来是错的,预计成对的 .例如男生怀孕了
1.3 均方根误差
用来衡量预测值和实际值之间的误差
因为每个误差都取了平方,所以大误差就被放大 了.这使得均方根误差对异常值极其敏感,对这些值的惩罚力度也更大.
算法
无监督学习
K均值聚类
一句话描述: 个体最可能属于哪个类别
应用举例: 把顾客或产品分入不同的群组,其中 k 表示群组个数.
在定义群组时,必须回答两个问题
- 有多少个群组? (群组数量k 必须事先指定)
K 的确定常用陡坡图.
- 每个群组中有谁? ( 认为每个数据点都是平等,不会有类似嵌套的关系 )
优点: 简单朴素
局限性
每个数据点只能属于一个群组.
群组被假定是正圆形的: 假设群组的实际形状是椭圆形, 那么在应用 k 均值聚类方法之后, 位于椭圆两端的数据点可能会 被划入邻近的群组
群组被假定是离散的. k 均值聚类既不允许群组重叠,也不允许 它们相互嵌套
主成分分析
一句话介绍: 个体最明显的特征是什么
主成分分析是一种降维技巧, 它使得我们可以使用较少的变量来描述数据,这些变量即为主成分.
局限性:
- 散度最大化: 这是主成分分析的前提. (即对数据点最分散的维度是最有用的)
- 正交成分: 主成分分析算法总是生成正交主成分, 即成分之间 存在正交关系. 然而, 这个假设可能不正确, 因为信息维度之 间可能不存在正交关系.
- 解释成分: 主成分分析算法面临的一个重大难题是, 必须对其 产生的成分进行解释. 但有时, 可能很难解释变量按某种方式 进行组合的原因.
关联规则
一句话介绍: 个体之间关系是怎么样的?
应用举例: 啤酒与纸尿片
识别关联规则的常用指标有 3个
支持度: 指某个项集出现的频率占总交易数的比例
置信度: 在X项出现的前提下, XY两项同时出现的占比: P(XY)/P(X). 缺点是,置信度会错估某个关联规则的重要性
提升度: 在X项,Y项独立出现的前提下,XY两项同时出现的占比: P(XY)/ {P(X) *P(Y)}
评估关联规则实际是商品之间的组合, 这是指数增长.可以减少组合个数的方法有
- 先验规则: 如果某个项集出现得不频繁,那么包含它的 任何更大的项集必定也出现得不频繁.
局限性:
计算成本大:尽管利用先验原则可以减少候选项集的个数,但是当 库存量很大或者支持度阈值很低时,候选项集仍然会很多.一个解决办 法是,使用高级数据结构对候选项集进行更高效的分类,从而减少比较 的次数.
假关联: 当元素的数量很大时,偶尔会出现假关联.为了确保所发 现的关联规则具有普遍性,应该对它们进行验证
社会网络分析
一句话介绍: 当关系变得复杂,就需要分析一张关系网
应用举例: 六度分隔理论
- Louvain方法
Louvain 方法 用来在网络中找出群组,它会尝试使用不同的聚类配 置来做如下两件事:
把同一个群组中各个节点间的边数和强度最大化;
把属于不同群组的节点间的边数和强度最小化
- PageRank 算法
根据链接的数量,强度以及来源对网络中的节点 进行排序. 这个算法有助于找出网络中占主导地位的节点, 但 对链接数不太多的新节点并不友好
监督学习
回归分析
通过带权重的组合变量能够得到更准确的预测结果.有两个问题需要解决:
- 如何得到最优权重组合?
- 梯度下降法
似于一步步走到山底下,梯度下降法先初步猜测合适的权重组合,再通过迭代逼近更准确的精度
- 随机梯度下降法
一次梯度下降法 得到的结果有可能是极值,而不是最优值.
- 如何解释它们?
- 适合场景
预测变量之间的关系不强
无异常值
趋势可以用直线表示 ( 也就是不适合趋势是曲线的)
K最近邻
一句话介绍: 物以类聚
特点:
k 最近邻算法根据周围数据点的类型对某个数据点进行分类.
k 表示用作参考的数据点的个数,可以使用交叉验证法来确定.
当预测变量数目不多,并且类别大小差别不大时,k 最近邻算法才能产生非常好的效果.不准确的分类可能会被标记为潜在异常
局限性:
选择临近的k值 影响预测的准确度
支持向量机
一句话介绍: 世界不是非黑即白,可能还有灰色地带
局限性:
不适合小数据集: 样本量少意味着用来对分界线进行准确定位的数据也少
不适合多组数据: 支持向量机每次只能对两组进行分类.解决方法之一是 多类支持向量机
要是数据存在大量重叠: 当两组的数据点存在大量重叠时,靠近边界的数据点可能更容易发生分类错误
决策树 和 随机森林
决策树通过询问一系列二元选择题来做预测.
随机森林: 群体的智慧
通过随机组合变量来构建多棵决策树,然 后把这些决策树聚集起来,形成随机森林. 每个随机的决策树都有自己的问题,但因为最优答案只有一个, 通过组合具有不同优缺点的模型,往往能强化正确的预测结果
特点:
- 自助聚集法
通过随机化的方式,使随机生成的决策树之间的关联度最小
- 集成方法
相比于子模型, 集成模型的预测准确度更高 (本例遵循少数服从多数的原则). 这是因为准确的预测模型会彼此强 化,错误的则会彼此抵消.
关键是: * 子模型避免犯同样的错误 *
神经网络
这里我觉得有点奇怪, 概念上是分为: 输入层,隐藏层,输出层,损失层. 但我们的神经并不是层次的,我们对世界的认知并不是层次递进的,更像一个 Maze. (来自西部世界的概念).
A/Btest 和 多臂老虎机
A/B 测试: 探索新的可能性,还是应该利用已有的一切?一种策略是先探索可用选项,然后把所有剩余资源分配给表现最佳的选项.
epsilon 递减策略: 给表现最佳的选项逐渐分配更多的资源.
虽然 epsilon 递减策略在大多数情况下能够提供比 A/B 测试更高 的回报,但是确定资源分配的最佳更新速度并非易事.
总结
知道了概念, 看代码至少让你有一个方向.我接下来会去看推到过程么? 当然不会,先作为一个实用主义者去踩坑.
随机森林体现的集体智慧, A/Btest 的策略选择游戏.这两个感觉可以单独成篇.