机器学习 历史 1. Python R 第一代工具 单机 2. Mahaout MR 第二代工具 分布式 3. Spark MLlib 第三代工具 分布式 迭代 4. H2O 5. Flink 体现 - 计算:云计算 - 推理:专家系统 - 灵敏:事件驱动 - 知识:数据仓库 - 检索:搜索引擎 - 智慧:机器学习 用途 - 分类 - 预测 - 聚类 - 推荐 算法 有监督学习 分类 逻辑回归 支持多分类 线性不可分割情况 方案:映射至高纬 流程 svm支持向量机 只支持二分类 线性回归Liner Regression 一元线性回归 多元线性回归 预测 贝叶斯分类算法 朴素贝叶斯 拉普拉斯估计 拉普拉斯估计本质上是给频率表中的每个计数加上一个较小的数,这样就保证了 每一类中每个特征发生概率非零 文本向量化 用途 垃圾邮件分类 只能做二分类 推荐 关联规则 支持度 置信度 apriori原则 无监督 学习 聚类 给事物打标签 kmeans聚类算法 无监督 给事物打标签 刚开始选的点会影响到聚类结果 距离测度 - 欧氏距离测度(EuclideanDistanceMeasure) - 平方欧氏距离测度(SquaredEuclideanDistanceMeasure) - 曼哈顿距离测度(ManhattanDistanceMeasure - 余弦距离测度(CosineDistanceMeasure) - 谷本距离测度(TanimotoDistanceMeasure) 同时表现夹角和距离的距离测度 - 加权距离测度(WeightedDistanceMeasure 聚类数 肘部法 算法流程 1. 适当选择c个类的初始中心 2. 在第K次迭代中,对任意一个样本,求其到c各中心的距离,将该样本归到 距离最短的中心所在的类 3. 利用均值等方法更新该类的中心值 4. 对于多有的c个聚类中心,如果利用2,3的迭代法更新后,值保持不变,则 迭代结束,否则继续迭代 算法缺陷 - 聚类中心的个数K 需要事先给定,但在实际中这个 K 值的选定是非常 难以估计的,很多时候,事先并不知道给定的数据集应该分成多少个 类别才最合适 - Kmeans需要人为地确定初始聚类中心,不同的初始聚类中心可能导致 完全不同的聚类结果。(可以使用Kmeans++算法来解决) Kmeans++算法 工具 梯度下降法 SGD随机梯度下降 误差函数/损失函数 存在最小值 只能做二分类 L-BFGS拟牛顿法 L-BFGS为SGD的优化方法,它的训练速度比SGD快 还可能做多分类 鲁棒性调优 正则化 L1正则化 适合降低维度 惩罚系数 一般都不能大于1 有的趋近于1,有的趋近于0,稀疏编码 L2正则化 也称为岭回归,有很强的概率意义 整体值变小 整体的W同时变小,岭回归 数值优化 归一化 最大值最小值法 - 缺点 - 抗干扰能力弱 - 受离群值得影响比较大 - 间容易没有数据 方差归一化 - 优点 - 抗干扰能力强,和所有数据都有关, 求标准差需要所有值的介入,重要有离群值的话,会被抑 制下来 会使得各个W基本数量级一致 缺点 - 最终未必会落到0到1之间 - 同增同减问题 均值归一化 每个数量减去平均值 做机器学习的大公司 - 百度 - 谷歌 AlphaGo - 脸书 开发步骤 1. 收集数据 2. 准备输入数据 3. 分析输入数据 4. 训练算法 5. 测试算法 6. 使用算法 术语 标签 标签是我们要预测的事物,即简单线性回归中的 y 变量。标签可以是小麦未来的价格、图片中显示的动物品种、音频剪辑的含义或任何事物 特征 特征是输入变量,即简单线性回归中的 x 变量。简单的机器学习项目可能会使用单个特征,而比较复杂的机器学习项目可能会使用数百万个特征,按如下方式指定 样本 样本是指数据的特定实例:x 有标签样本 有标签样本同时包含特征和标签 无标签样本 无标签样本包含特征,但不包含标签 模型 模型定义了特征与标签之间的关系 训练 创建或学习模型 推断 将训练后的模型应用于无标签样本 回归 回归模型可预测连续值 分类模型 分类模型可预测离散值