机器学习概述
参考资料
B站视频:机器学习入门到精通!...
FAQ
学习机器学习之前需要掌握的学科
- 线性代数:机器学习中涉及很多矩阵的计算。
什么是机器学习?
传统的程序: 输入(数据) + 代码 = 输出(结果)
我们运行代码,然后输入数据,程序会帮我们计算出结果。
机器学习程序: 输入(数据) + 输出(结果) 训练出 代码
通过数据训练出能预测结果的程序,就是机器学习。
机器学习训练出来的程序主要解决什么问题?
根据需要预测的结果是离散型的还是连续型的,分为两大类问题:
分类
对离散型变量进行预测。比如:
- 识别动物是猪牛鸡鸭中的哪种;
- 识别颜色;
- 鉴别女生是否漂亮;
回归
对连续型变量进行预测。比如:
- 房价走势;股票走势;
- 一年内气温变化;
不同类型的问题需要建立不同的机器学习模型来研究。
机器学习与深度学习的区别?
我们可以通过两者的研究流程,看看两者的区别
步骤 | 机器学习 | 深度学习 |
---|---|---|
1 | 数据集准备 | 数据集准备 |
2 | 探索性地对数据进行分析(EDA) | |
3 | 数据预处理 | 数据预处理 |
4 | 数据分割(训练集 & 测试集) | 数据分割(训练集 & 测试集) |
5 | 建立机器学习模型 | 定义神经网络模型 |
6 | 模型参数调优 | 模型参数调优 |
7 | 提取特征 | |
8 | 机器学习任务(回归or分类) | 训练网络 |
9 | 模型性能评估 |
实际上,深度学习属于一种特殊的机器学习流程。
由上可见,深度学习省略了提取特征(特征工程)的步骤;同时,建模过程也缩短了,用神经网络代替了之前百花齐放的机器学习算法。
什么是特征?
见“数据集准备”
有哪些机器模型?机器模型如何总结出“规律”?
见“建立机器学习模型”
什么是回归?什么是分类?
见“机器学习任务”
什么是有监督算法?什么是无监督算法?
一些概念
回归:
分类:
特征:
形容样本有多少个需要取样的“属性”;
比如某个银行判断可以借多少钱给某个人,可能需要获得这个人(样本)的“年薪”、“年龄”这两个特征(属性),去进行判断。
拟合:
过拟合:
偏置项:
误差项:
真实值与预测值之间存在的差异。一般用
表示。
损失函数:
当我们计算出了一个数学模型后,我们便可以用模型计算出一系列的预测值;
每一个预测值与真实值肯定有误差(); 损失函数就是将所有误差作为入参,统计出该数学模型整体误差值(或叫精确度)的工具。
如果发现这个“整体误差值”太大,我们便需要对数学模型进行调参; 然后重新通过损失函数计算“整体误差值”,直到其到达我们能接受的范围。
模型的鲁棒性:
可以理解为“健壮性”,形容当输入的数据错误时,系统能否正常运行。
独立同分布:
用来形容两个随机变量(假设为X1和X2)服从同一分布(同分布),且X1的取值不会影响到X2的取值(独立);
对于多次重复实验,像抛硬币,就可以认为第一次抛硬币的结果(X1)和第二次抛硬币的结果(X2)是独立同分布的。
高斯分布:
似然函数:
偏导:
梯度下降:
什么是机器学习
就是一个程序,用户将大量的历史数据提供给它,程序会根据既定的算法,从数据中总结出规律;
最后训练出来的程序便可以根据当前的输入数据、按照自己总结的规律来预测结果。
在机器学习的概念中,“大量的历史数据”即指数据训练集
“既定的算法”指机器模型
“规律”则一般用数学的函数表示
“输入数据”指数据验证集
上面的概念现在只需要知道有这么回事,后面会慢慢解释。
机器学习研究的基本流程
数据集准备 -> 数据探索性分析(EDA)-> 数据预处理 -> 数据分割 ->建立机器学习模型 ->模型参数调优 -> 提取特征 ->机器学习任务-> 模型性能评估
我们引入以下场景,通过一个实际的例子去了解机器学习的全过程:
银行需要预测“不同的人会过来银行借多少钱”。
他们认为借钱的额度只与收入有关(实际上,可能还涉及其他因素,这里为方便只考虑收入)。
于是他们统计出了以下表格:
表格1
客户 | 收入 | 借了多少钱 |
---|---|---|
A | 3000 | 20000 |
B | 4000 | 25000 |
C | 6000 | 30000 |
D | 10000 | 40000 |
E | 2000 | 70000 |
数据集准备
上面的表格1就是一个数据训练集,用来输入给我们的机器模型,让它能够从数据中“学习”,并总结出“规律”。
训练集分为两个部分:因子和标签。
因子:我们认为的与结果有关的变量(在示例中即指用户的收入)
标签:我们需要预测的结果(在示例中即指用户会借多少钱)
数据探索性分析(EDA)
略
数据预处理
略
数据分割
略
建立机器学习模型
略
模型参数调优
略
机器模型
常见的机器学习模型:
逻辑回归(Logistic Regression)
决策树(Decision Tree)
随机森林(Random Forest):是由多个决策树构成的集成模型
支持向量机(Support Vector Machine,SVM)
神经网络(Neural Network)
卷积神经网络(Convolutional Neural Network,CNN):一种特殊的神经网络
循环神经网络(Recurrent Neural Network,RNN)
生成对抗网络(Generative Adversarial Network,GAN):由两个神经网络组成,分别为生成器和判别器,通过对抗训练的方式来生成新的数据