Machine Learning Basic
概念
机器学习包括以下三个要素,也是一个学习器必须具备的
算法:
- 线性方法:$f(x,\theta)=w^Tx+b$,比如SVM
- 非线性方法:$f(x,\theta)=w^T\phi(x)+b$,比如神经网络
学习准则:一般我们选择最小化期望风险
$$
\mathcal R(f)=\mathbb E_{(x,y)\sim p(x,y)}[\mathcal L(f(x),y)]
$$优化方法:比如梯度下降
对于一个好的学习器,其泛化能力比较好,意味着模型能适应不仅仅是训练样本更能很好的适用于新样本;
一般抽样出来的独立同分布的训练样本越多越有可能学习出一个泛化能力强的模型;
基本流程
数据采集
所有的机器学习算法都是数据贪婪的,任何一个算法都可以通过增加数据来达到更好的结果,因此第一步数据采集也是最基础、最重要的一步。
采集方式:爬虫,公开数据集,数据库;
数据预处理
即便数据都在手上,但是因为人为、软件、业务导致的异常数据还是比较多的,比如性别数据的缺失、年龄数据的异常,异常数据对模型是有影响的,因此通常需要进行预处理 。
预处理问题类型:缺失处理,异常处理(绝对异常,统计异常,上下文异常)
特征工程
特征工程指的是把原始数据转变为模型的训练数据的过程,它的目的就是获取更好的训练数据特征,使得机器学习模型逼近上限。一般来讲,特征工程包含特征选择、特征提取和特征构建。
特征选择:剔除不相关或者冗余的特征,减少有效特征的个数,减少模型训练的时间,提高模型的精确度。
特征自身的取值分布:主要通过方差过滤法,比如性别特征,1000个数据,999个是男的,1个是女的,这种特征由于自身过于偏斜,因此是无法对结果起到足够的帮助。
特征与目标的相关性:可以通过皮尔逊系数、信息熵增益等来判断,思路是如果一个特征与目标的变化是高度一致的,那么它对于预测目标就是具有很大指导意义的。
特征构建:指的是从原始数据中人工的构建新的特征。需要人工的创建它们。这需要花大量的时间去研究真实的数据样本,思考问题的潜在形式和数据结构,同时能够更好地应用到预测模型中。
特征组合:例如组合日期、时间两个特征,构建是否为上班时间(工作日的工作时间为1,其他为0)特征,特征组合的目的通常是为了获得更具有表达力、信息量的新特征。
特征拆分:将业务上复杂的特征拆分开,比如将登陆特征,拆分为多个维度的登陆次数统计特征,拆分为多个的好处一个是从多个维度表达信息,另一个多个特征可以进行更多的组合。
模型的构建与调优
将原始数据映射到特征空间之后,得到比较合理的输入。下一步就是构建合适的预测模型在数据上训练得到对应输入的输出。
模型选择的一般方法:
首先我们要对处理好的数据进行分析,判断训练数据有没有类标,若是有类标则应该考虑监督学习的模型,否则可以划分为非监督学习问题。其次分析问题的类型是属于分类问题还是回归问题,当我们确定好问题的类型之后再去选择具体的模型。在模型的实际选择时,通常会考虑尝试不同的模型对数据进行训练,然后比较输出的结果,选择最佳的那个。此外还可以尝试多模型融合,来提高效果。选好模型后是调优问题,可以采用交差验证,观察损失曲线,测试结果曲线等分析原因,调节参数:优化器、学习率、batchsize等。
模型的评价
模型选择是在某个模型类中选择最好的模型,而模型评价对这个最好的模型进行评价。模型评价阶段不做参数调整而是客观地评价模型的预测能力。