1 冒泡排序
- 按照一定得顺序执行某一些操作, 最终实现某些功能
- 演绎法
function bubbleSort(arr) { var len = arr.length; for (var i = 0; i < len; i++) { for (var j = 0; j < len - 1 - i; j++) { if (arr[j] > arr[j+1]) { // 相邻元素两两对比 var temp = arr[j+1]; // 元素交换 arr[j+1] = arr[j]; arr[j] = temp; } } } return arr; }
2 机器学习
- 归纳法
- 步骤
- 处理数据, 生成数据集
- 使用学习型算法, 从数据集中学习规律, 这个规律就是模型
3 什么是机器学习
两类
- 监督学习
- 无监督学习
监督式机器学习的定义如下
- 机器学习系统通过学习如何组合输入信息来对从未见过的数据做出有用的预测
标签
标签是我们要预测的事物, 即简单线性回归中的 y
变量. 标签可以是小麦未来的价格, 图片中显示的动物品种, 音频剪辑的含义或任何事物
特征
特征是输入变量, 即简单线性回归中的 x
变量. 简单的机器学习项目可能会使用单个特征, 而比较复杂的机器学习项目可能会使用数百万个特征, 按如下方式指定:
x1,x2,...xN
样本
样本是指数据的特定实例: x
- 有标签样本
- 无标签样本
有标签样本同时包含特征和标签
labeled examples: {features, label}: (x, y)
我们使用有标签样本来训练模型
- 表就是数据集
- 列是特征
- 标签就是要预测的结果
- 每一行数据叫做样本
住房平均年龄 | 房间数 | 卧室数 | 房屋价格 |
15 | 5612 | 1283 | 66900 |
19 | 7650 | 1901 | 80100 |
17 | 720 | 174 | 85700 |
14 | 1501 | 337 | 73400 |
20 | 1454 | 326 | 65500 |
无标签样本包含特征, 但不包含标签
unlabeled examples: {features, ?}: (x, ?)
我们要预测无标签样本的标签
住房平均年龄 | 房间 | 卧室数 |
42 | 1686 | 361 |
34 | 1226 | 180 |
33 | 1077 | 271 |
模型
模型定义了特征与标签之间的关系. 例如, 垃圾邮件检测模型可能会将某些特征与标签 “垃圾邮件” 紧密联系起来.
- 训练是指创建或学习模型. 也就是说, 向模型展示有标签样本, 让模型逐渐学习特征与标签之间的关系
- 预测是指将训练后的模型应用于无标签样本
回归与分类
回归模型可预测连续值. 例如, 回归模型做出的预测可回答如下问题
- 加利福尼亚州一栋房产的价值是多少?
- 用户点击此广告的概率是多少?
分类模型可预测离散值. 例如, 分类模型做出的预测可回答如下问题
- 某个指定电子邮件是垃圾邮件还是非垃圾邮件?
- 这是一张狗, 猫还是仓鼠图片?
个人理解
- 机器学习非常难, 因为机器学习是一个学术学科, 不是一个工程学科
- 机器学习难以入门
- 机器学习掌握比较深的人并不是搞开发的
- 不应该把精力放在对算法和理论的研究上, 因为一般的功能和任务, 现在的算法都能很好的完成, 掌握常见算法的使用方式即可
- 更重要的是, 了解数据如何处理, 如何进行特征工程