一、机器学习中的一些概念
1.1 监督学习(Supervised learing)
一句话回答:通过已有的一部分输入数据与输出数据之间的对应关系,生成一个函数,将输入映射到合适的输出。
常用的监督学习模型:K-近邻算法(k-Nearest Neighbors,KNN)、线性回归、线性逻辑回归、SVM、决策树、朴素贝叶斯
如何解决一个给定的监督式学习问题,考虑以下步骤:
1)决定训练资料的范例的形态。在做其它事前,工程师应决定要使用哪种资料为范例。譬如,可能是一个手写字符,或一整个手写的词汇,或一行手写文字。
2)搜集训练资料。这资料须要具有真实世界的特征。所以,可以由人类专家或(机器或传感器的)测量中得到输入物件和其相对应输出。
3)决定学习函数的输入特征的表示法。学习函数的准确度与输入的物件如何表示是有很大的关联度。传统上,输入的物件会被转成一个特征向量,包含了许多关于描述物件的特征。因为维数灾难的关系,特征的个数不宜太多,但也要足够大,才能准确的预测输出。
4)决定要学习的函数和其对应的学习算法所使用的数据结构。譬如,工程师可能选择人工神经网络和决策树。
5)完成设计。工程师接着在搜集到的资料上跑学习算法。可以借由将资料跑在资料的子集(称为验证集)或交叉验证(cross-validation)上来调整学习算法的参数。参数调整后,算法可以运行在不同于训练集的测试集上
1.2 无监督学习(Unsupervised learning)
一句话回答:直接对输入数据集进行建模,例如聚类。
无监督学习:目的是对原始资料进行分类,以便了解资料内部结构。有别于监督式学习网络,无监督学习网络在学习时并不知道其分类结果是否正确,就是说不知道哪种学习是正确的(没有受到监督式增强)。其特点时候仅对此种网络提供输入样例,它会自动从这些样例中找出潜在的类别规则。当学习完毕并经测试后,也可以将之应用到新的样例上。
无监督学习模型:聚类。
1.3泛化能力
是指一个机器学习算法对于没有见过的样本的识别能力。我们也叫做举一反三的能力,或者叫做学以致用的能力。例如,在回归问题,预测房价,我们通过训练的样本学习得到了一个模型。该模型对于新来的样本,进行房价预测,如果预测出的房价与实际房价相差很小,那么也可以说这个模型的泛化能力好。
1.4过拟合
过拟合是指机器在给出的训练集中,表现地非常完美,能够很准确地预测出训练集中给出的每个样本相对应的结果,然后通过训练集训练出模型后,放到测试集中,却表现的很差,过拟合也可以说是高方差。例如,在房价预测中,训练出来的模型,对于训练集,都能准确给出正确的房价。然而在测试集,结果却相差很大,预测准确度超低。
产生过拟合的原因:特征太多;训练集太少;分支分太多(决策树)。
避免过拟合的方法: 特征提取;特征选择;正则化L1、L2;增加数据集的数量;适当的stopping criterion ;剪枝(决策树)。
1.5欠拟合
是和过拟合相对的现象,可以说是模型的复杂度较低,没法很好的学习到数据背后的规律。就好像开普勒在总结天体运行规律之前,他的老师第谷记录了很多的运行数据,但是都没法用数据去解释天体运行的规律并预测,这就是在天体运行数据上,人们一直处于欠拟合的状态,只知道记录过的过去是这样运行的,但是不知道道理是什么。欠拟合也叫高偏差。
避免欠拟合的方法: 添加其他特征项;添加多项式特征;减少正则化参数。
1.6交叉验证
交叉验证是除了将样本分成训练集和测试集外,还要将训练集分成训练集和验证集。交叉验证需要多次划分训练集和验证集,得出不同的互补子集,设置不同参数训练出模型,然后在验证集下,比较出表现好的模型,再将表现好的模型用测试集进行测试。
常用的交叉验证方法:
留出法(Hold-Out Method):将原始数据随机分为两组,一组做为训练集,一组做为验证集,利用训练集训练分类器,然后利用验证集验证模型,记录最后的分类准确率为此Hold-OutMethod下分类器的性能指标。此种方法的好处的处理简单,只需随机把原始数据分为两组即可,其实严格意义来说Hold-Out Method并不能算是CV,因为这种方法没有达到交叉的思想,由于是随机的将原始数据分组,所以最后验证集分类准确率的高低与原始数据的分组有很大的关系,所以这种方法得到的结果其实并不具有说服性!
k折法 (K-fold Cross Validation):将每个子集数据分别做一次验证集,其余的K-1组子集数据作为训练集,这样会得到K个模型,用这K个模型最终的验证集的分类准确率的平均数作为此K-CV下分类器的性能指标.K一般大于等于2,实际操作时一般从3开始取,只有在原始数据集合数据量小的时候才会尝试取2.K-CV可以有效的避免过学习以及欠学习状态的发生,最后得到的结果也比较具有说服性。
留一法(Leave-One-Out Cross Validation:每次只将一份样本作为验证集,其他样本作为训练集,有多少样本就重复多少次来训练模型。优点:最接近原始样本的分布,这样评估所得的结果比较可靠。缺点:计算量太大,样本有多少,就要生成多少个模型。
二、线性回归的原理
给定由d个属性描述的示例 x \pmb x xxx = ( x 1 x_{1} x1; x 2 x_{2} x2; x 3 x_{3} x3;…; x d x_{d} xd),其中 x 1 x_{1} x1是 x \pmb x xxx在第i个属性上的取值,线性模型试图学得一个通过属性的线性组合来进行预测的函数,即
f ( x ) = w 1 x 1 + w 2 x 2 + . . . + w d x d + b , f(x) = w_{1}x_{1}+w_{2}x_{2}+...+w_{d}x_{d}+b, f(x)=w1x1+w2x2+...+wdxd+b,
一般用向量形式写成
f ( x ) = w T x + b f(\pmb x) = \pmb w^{T}\pmb x+b f(xxx)=wwwTxxx+b
其中 w \pmb w www=( w 1 ; w_{1}; w1; w 2 ; w_{2}; w2; w 3 ; w_{3}; w3;… w d w_{d} wd). w \pmb w www和 b b b学得之后。模型就得以确定。
线性模型形式简单、易于建模,但却蕴含着机器学习中一些重要的基本思想,许多功能更为强大的非线性模型可在线性模型的基础上通过引入层级结果或高维映射而得。此外,由于 w \pmb w www直观表达了个属性在预测中的重要性,因此线性模型有很好的可解释性。
三、线性回归的目标函数、损失函数(代价函数)
线性回归试图学得 f ( x i ) f(x_{i}) f(xi)= w w w∗ x i x_{i} xi+ b b b(目标函数)使得 f ( x i ) f(x_{i}) f(xi)≃ y i y_{i} yi ,如何确定 w w w_ {w} ww和 b b b呢?关键在于如何衡量 f (