人工智能、机器学习、深度学习的关系
;
机器学习与传统编程的区别
机器学习能完全没有显式编程好的任务,而传统编程则完成不了;
机器学习的应用场景
1)计算广告
互联网广告的商业模式:CPM:按展现付费;CPC:按点击付费;CTR:点击率预估;CPA:按转化付费,转化率预估;CPS:按销售分成;
2)推荐系统
;
;
3)金融科技
;
其它:智能投顾,股票预测,量化交易;
4)语音识别
5)聊天机器人
6)体感游戏
7)自然语言处理
机器翻译、信息提取、信息检索、自动问答、文本分类、垃圾邮件过滤
8)无人驾驶
9)其它:如机器人,医疗,AlphoGo;
学习任务划分
1)监督学习(例如分类和回归,监督学习是指训练的数据中包含了要预测的列)
机器学习任务中,若我们欲预测的是离散值,此类学习任务称为分类;若欲预测的是连续值,此类学习任务称为回归;
2)无监督学习(例如聚类)
聚类是将训练集分成若干组,每组称为一个簇; 这些自动形成的簇可能应一些潜在的概念划分(该划分事先是未知的);这样的学习过程有助于我们了解数据内在的规律,能为更深入地分析数据建立基础;
监督学习、非监督学习、增强学习
机器学习任务示例
归纳偏好
机器学习处理的数据中,往往是:条件A* && 条件B1 && 条件C1 = TRUE,条件A1 && 条件B* && 条件C1 = FALSE,对于新的样本A1 && B1 && C1,如果学习算法没有偏好,则该学习算法对于此种新样本,产生不了确定结果,且如果学习算法采取随机判断,则会对于该同一结果的多次测试会产生TRUE和FALSE两种不确定的结果;
因此,任何一个有效的机器学习算法必有其归纳偏好,否则它将无法产生确定的学习结果;
归纳偏好选择的原则之一------奥卡姆剃刀
若有多个假设与观察一致,则选最简的那个;
;
如上图,平滑曲线的方程相对要简单得多,因此会选平滑的算法;(该方法在实际问题中不一定是最好的,且很多问题无法直观的判断出哪个更简单)
NFL定理的简单推导及理解
假设样本空间为χ,假设空间为H,χ和H均为离散的;令代表算法
基于训练数据X产生假设h的概率,f为目标函数;
在训练集之外的所有样本上的误差为:
;
其中,训练数据X ∈ 样本空间χ ∈ 假设空间H,表示样本空间中除训练数据X之外的所有空间,
表示算法
经训练数据集X训练后有可能产生的所有函数的集合,P(x)表示在样本空间
取到某一个具体的离散值x的概率,
表示指示函数(逻辑运算函数),即训练产生函数h在具体数值x上产生的预测值h(x)与目标函数的标准值f(x)不相等时,该函数等于1,否则等于0;
;
其中表示从 经算法
训练出来的所有函数集合h中,将h中存在的每个具体值h(x)都取一遍的概率,为必然事件,其概率恒为1;另外χ->{0,1}所有函数的集合同一于{0,1}的幂集;
NFL定理的意义:某一具体算法 L1 只能对于某一特定业务场景产生较好的效果,当该算法面对所有可能存在的业务场景时,该算法 L1 产生效果和一个随机取个结果的算法 L2 产生的效果是一样的;
过拟合和欠拟合
过拟合是指学习器将训练样本学得太好(比如训练分类时,将样本分类的分类精度训练成100%,即零错误率),以至于将训练样本自身的一些特点当作了所有潜在样本都会具有的一般性质,这样会导致泛化性能下降;欠拟合则相反,是指对训练样本的一般性质尚未学好;
;
模型评估的困局
学习器模型的目标是选择泛化误差最小的模型,但实际情况中,无法直接得到所有潜在的数据,以至于没法直接获得泛化误差,如果选择训练误差最小的模型时,又会存在过拟合的问题;
一般的解决方法:使用测试集来对新样本进行评估,将测试误差作为泛化误差的近似;需注意测试集应该尽可能与训练集应该尽可能互斥,即测试样本尽量不在训练集中出现;
机器学习的组成部分
;
损失函数-回归
;
L1损失和L2损失的优劣:L1损失对噪声不敏感,随着残差的增长,损失也比L2小很多,但L1在最低点不连续,计算上不好计算;L2损失处处连续,计算上比L1好,但随着残差的增长,损失比L1大;Huber损失最是结合了L1和L2的优点;
损失函数-分类
;
正则项
;
常用正则函数
;
注:L2正则中下标2表示L2范数,L1正则能带来稀疏性,即某些x对应的系数w等于0,L2正则数学性质好(求导好求),因此一般算法基本都支持,但L1则不是一般算法都支持;
常见线性模型的损失和正则项组合
;
非线性模型
模型选择与模型评估
岭回归
;
岭回归的参数调优
;
注:找到最优参数alpha后,可以在已找到的alpha附近再选取一些点以得到更好的参数;
Lasso回归
;
;
RidgeCV回归
;
数据标准化
在很多模型中,各特征取值区间均不相同,因此样本数据在训练模型前需要将数据进行标准化,以使各特征的取值范围均相同;
数据标准化的三种方法:
1)Min-max 标准化
min-max标准化方法是对原始数据进行线性变换。设minA和maxA分别为属性A的最小值和最大值,将A的一个原始值x通过min-max标准化映射成在区间[0,1]中的值x',其公式为:新数据=(原数据-最小值)/(最大值-最小值);
2)z-score 标准化
这种方法基于原始数据的均值(mean)和标准差(standard deviation)进行数据的标准化。将A的原始值x使用z-score标准化到x'。
z-score标准化方法适用于属性A的最大值和最小值未知的情况,或有超出取值范围的离群数据的情况。其公式为:新数据=(原数据-均值)/标准差,即,其中
;
注:z转换是一种线性转换,转换后所得分数的分布与原分布相同;
3)Decimal scaling小数定标标准化
这种方法通过移动数据的小数点位置来进行标准化。小数点移动多少位取决于属性A的取值中的最大绝对值。将属性A的原始值x使用decimal scaling标准化到x'的计算方法是:x'=x/(10^j),其中,j是满足条件的最小整数。例如 假定A的值由-986到917,A的最大绝对值为986,为使用小数定标标准化,我们用每个值除以1000(即,j=3),这样,-986被规范化为-0.986。
z-score标准化示例:原数据为(122那列为序号列,与数据本身无关):
;
标准化之后的数据为:
[-0.40547237, -0.48907502, 2.13072538, -0.27435163, 0.23049481,-0.46257167, 0.86765257, -0.81417935, -0.86592161, -1.31182673, 0.40449263, 0.23295334, 0.74942863],
[ 2.50257199, -0.48907502, 1.02619805, -0.27435163, 1.19813997, -0.42572263, 1.11988954, -1.05094825, 1.67343795, 1.54085272, 0.84225522, 0.44123766, 1.99006509],
[ 0.40534901, -0.48907502, 1.02619805, -0.27435163, 0.51560454, -0.26131922, 0.59054716, -0.84512425, 1.67343795, 1.54085272, 0.84225522, -3.92575707, 1.50166974],
[ 0.74033611, -0.48907502, 1.02619805, -0.27435163, 1.60420535, -0.05156315, 0.99910001, -0.76136862, 1.67343795, 1.54085272, 0.84225522, 0.34844539, 0.54031683],
[-0.40201112, -0.48907502, -0.61084311, -0.27435163, -0.91858382, -0.30950642, -1.01169054, 0.9132211 , -0.75049617, -1.04326904, -0.47103254, 0.35807895, -0.42664983],
[-0.40596883, 0.40854562, -0.79663778, -0.27435163, -0.99634102, -0.45973713, -0.80919043, 1.43315247, -0.63507074, -0.98358955, -0.90879513, 0.42639975, 0.12068979];
线性回归备注
设有某组数据线性回归的线性参数为:[ 0.04976114 -0.02651865 0.05036545 0.27639436 -0.02728181 0.5668401 -0.11139682 -0.06988548 0.12846955 0.11465726 -0.14256779 0.17332823 -0.19823001]
1)因第六列的值最大,且远比第二大值大,因此可看出该列所代表的项对结果的影响是最大的;
2)第二列的值远小于平均值,因此可能通过假设检验的方法,去掉对结果影响极其小的列,看下新结果是否会拟合得更好;
模型评价
;
注:均方误差和平均绝对误差都是越小表示拟合得越好,R2-score则是越大表示拟合得越好(scikit-learn中默认的模型评价方法为R2-score);