一、机器学习通识
机器学习,就是用模型来学习数据的规律。
大多数机器学习任务都是三步走:实例化➡️训练➡️预测。
机器学习任务按照最后一步预测,可以分为三种:
1. 分类:输出概率分布
2. 回归
3. 生成:本质上也是分类,生成的是对下一个字的分类,在字典中,每个字都是一个类别。
如果按照数据标签的完整与否来划分,则可以分为以下三类:
1. 结构化的数据(全都有标签):用于监督学习,包括分类、回归;
2. 半结构化的数据(部分有标签)
3. 无标签的数据:用于无监督学习,包括聚类、降维、生成模型、主题模型、文本编码。
对算法而言,数据分为序列数据和静态数据,其中序列数据就包括文本、时间序列和音频视频。
在深度学习中,无论什么数据,都要转化为张量来计算。
监督学习/无监督学习:
监督学习本质上就是在做函数逼近F(x),通过内部外部参数的学习,找到和数据最贴合的函数。
这里的内参和外参是什么?
内参是模型通过训练数据自动学习得到的,而非像外参那样直接由用户指定。
模型 = 外部参数实例化 + 训练数据调整内部参数 + 算法
在实践中,我们把内部分数称为参数,外部参数称为超参数
经典机器学习可以理解为显式的函数,也就是能用数学公式表达的算法,而深度学习则可以理解为函数的隐式表达,过于复杂,写不出来。
而无监督学习不想监督学习那样有标签,所以这样自由的数据所找到的规律就没有明确的评判标准。
无监督学习主要有以下这些:
1. 聚类:给数据划分类别
常见模型:kmeans,DBSCAN,谱聚类
常见问题:数字可以聚类,那文本是否可以?大部分时候需要吧文本转化为数字,编码成数字后就可以衡量其距离,这样就可以按照距离来完成聚类了。
2. 降维:PCA主成分分析,SVD奇异值分解
3. 主题模型:LDA
4. 文本编码:单词向量化,文档向量化
二、经典机器学习的流程
首先要认识自己面对的是一个什么问题,是分类还是回归,还是生成,对于分类问题中最基础的二分类问题,我们需要分清楚标签和特征,接着判断标签是否均衡,如果不均衡则可以采用过采样SMOTE来处理。
其次是进行数据预处理,数据预处理也就是数据清洗,需要对异常值进行处理,对于连续特征,画出箱线图来判断异常值,对于离散特征,则需要画出直方图来判断,筛选出来以后,直接删除,然后和缺失值一起采用众数填补。另外如果是分类变量,则需要进行独热编码,连续特征需要进行归一化标准化。
接着就是特征工程了,在这一步,我们可以借助热力图判断,把最重要的特征构造交互项。
最后是模型选取,这里我们可以进行单模型调参和多模型优化。