机器学习算法一般步骤
各位工程师累了吗? 推荐一篇可以让你技术能力达到出神入化的网站["宅男门诊"](https://zhainanmenzhen.com/)
1、使用机器学习来解决问题,我们用数学语言来描述它,然后建立一个模型,例如回归模型或者分类模型等来描述这个问题;
2、通过最小化误差、最大似然、最大后验概率等等建立模型的代价函数,转化为最优化问题。找到最优化问题的解,也就是能拟合我们的数据的最好的模型参数;
3、求解这个代价函数,找到最优解。
求最优解方法:
1、如果优化函数存在解析解。例如我们求最值一般是对优化函数求导,找到导数为0的点。如果代价函数能简单求导,并且求导后为0的式子存在解析解,那么我们就可以直接得到最优的参数。
2、如果式子很难求导,例如函数里面存在隐含的变量或者变量相互间存在耦合,互相依赖的情况。或者求导后式子得不到解释解,或者未知参数的个数大于方程组的个数等。这时候使用迭代算法来一步一步找到最优解。
特别的若优化函数是凸函数,那么就存在全局最优解,如果函数是非凸的,那么就会有很多局部最优的解,因此凸优化重要性不言而喻。人们总希望在万千事物中找到最优的那个他。
1.什么是机器学习
计算机自动从数据中发现规律,并应用于解决新问题
给定数据(X1,Y1), (X2,Y2), … ,(Xn,Yn),机器自动学习X和Y之间的关系,从而对新的Xi,能够预测Yi。如由身高预测性别,身高预测体重。
机器学习是一门人工智能的科学,该领域的主要研究对象是人工智能,特别是如何在经验学习中改善具体算法的性能。
2.基于规则
3.基于模型- 机器学习
4.实例-房价预测
5.基本概念
我们先明确机器学习中一些概念和常用的符号:
房屋销售记录表 训练集(training set)或者训练数据(training data), 一般称为x
房屋销售价钱 输出数据,一般称为y
拟合的函数 (模型、假设),一般写做 y = h(x)
训练数据的条数(training set) 一条训练数据是由一对输入和输出数据组成的
输入数据的维度(特征的个数features) 房屋的售价,数据表中的列
6.机器学习过程
基本概念:
7.机器学习主要问题
分类:LR,SVM,NB,KNN,决策树
LR(logistic regression),SVM(),NB(naive bayes ),KNN(k-nearest neighbor),决策树
聚类:k均值(k-means),层次,GMM(高斯混合模型)
回归:线性回归,逻辑回归
关联规则:Apriori,FPgrowth
8.监督与非监督学习
监督学习:
给定数据(X1,Y1),(X2,Y2),…,(Xn,Yn)
对新的Xi,预测其Yi
分类,回归
非监督学习:
给定数据X1,X2,…,Xn
求Yi=f(Xi),P(Xi,Yi)
聚类,降维
9.机器学习三要素
模型---规律
策略---模型好不好
10.经验风险
11.结构风险
12.算法
13.正则化
正则化(regularization)在线性代数理论中,不适定问题通常是由一组线性代数方程定义的,而且这组方程组通常来源于有着很大的条件数的不适定反问题
14.交叉验证
1. 简单交叉验证
简单交叉验证的方法是这样的,随机从最初的样本中选择部分,形成验证数据,而剩下的当作训练数据。一般来说,少于三分之一的数据被选作验证数据。
2. K折交叉验证
10折交叉验证是把样本数据分成10份,轮流将其中9份做训练数据,将剩下的1份当测试数据,10次结果的均值作为对算法精度的估计,通常情况下为了提高精度,还需要做多次10折交叉验证。
更进一步,还有K折交叉验证,10折交叉验证是它的特殊情况。K折交叉验证就是把样本分为K份,其中K-1份用来做训练建立模型,留剩下的一份来验证,交叉验证重复K次,每个子样本验证一次。
3. 留一验证
留一验证只使用样本数据中的一项当作验证数据,而剩下的全作为训练数据,一直重复,直到所有的样本都作验证数据一次。可以看出留一验证实际上就是K折交叉验证,只不过这里的K有点特殊,K为样本数据个数。
15.泛化能力(预测能力)
泛化能力指由学习方法得到的模型对未知数据的预测能力。
概括地说,所谓泛化能力(generalization ability)是指机器学习算法对新鲜样本的适应能力。学习的目的是学到隐含在数据对背后的规律,对具有同一规律的学习集以外的数据,经过训练的算法也能给出合适的输出,该能力称为泛化能力。
16.模型评估与模型选择
当损失函数给定时,基于损失函数的模型的训练误差和模型的测试误差就自然成为学习方法评估的标准。
通常,测试误差越小的方法具有更好的预测能力,泛化能力强。
17.过拟合与模型选择
18.总结