线性回归:最小平方回归
线性回归指的是用训练集数据创建线性模型的过程。最简单的形式则是基于下面这个用参数a和c刻画的直线方程。在计算参数a和c的时候,以最小化残差平方和为前提。
y = a*x + c
上述表达式中,x为训练集,y为目标值。c为模型所对应的直线的结局。如果是要用scikit-learn库的线性回归预测模型,必须导入linear_model模块,然后用LinearRegression( )构造函数创建预测模型,我们这里将其命名为linreg。
我们通过一个例子来练练手,数据集就是用前面介绍的Diabetes。首先,把包含442为病人的数据集分为训练集(前422位病人的数据)和测试集(剩余20位病人的数据)。
在预测模型上调用fit( )函数,使用训练集做训练。然后,当我们训练完模型之后,调用预测模型的coef_属性,就可以得到每种(共10种)生理数据的回归系数b。
在预测模型linreg上调用predict( )函数,传入测试集作为参数,将得到一列可以拿来与实际目标值相比较的预测目标值。
这样,我们就可以看出我们使用线性模型预测出来的结果与我们的真实值的差距了;方差是评价预测结果好坏的一个不错的指标。方差越接近于1,证明预测的结果越准确。
我们可以从方差的值看出,我们的预测结果虽然不是特别好,但也还是不错的。
现在,我们就可以使用线性回归的方法分析单个生理因素和目标值之间的关系,比如我们可以从年龄开始看起。
图中蓝色的直线表示病人的年龄和病情进展之间的相关性。
Diabetes数据集实际上有10个生理因素。为了对训练集有个全面的认识,我们可以对每个生理特征进行回归分析,建立10个模型,并将结果做成10幅图表。
上面我们看到的10幅线性回归图表,分别表示一个生理因素跟糖尿病病情进展之间的相关性。
支持向量机(SVM)
支持向量机(Support Vector Machines,SVM)指的是一系列机器学习方法,最初是在20世纪90年代初期由美国电话电报公司(AT&T)的Vapnik和同事一起开发的。这类方法的基础其实是支持向量算法,该算法是对广义肖像算法的扩展,广义肖像算法(Generalized Portrait)是1963年Vapink在苏联开发的。
简单来说,SVM分类器是二元或者判别模型,对两类数据进行区分,它最基础的任务是判断新观测数据属于两个类别中的哪一个。在学习阶段,这类分类器把训练数据映射到叫做决策空间的多维空间,创建叫做决策边界的分离面,把决策空间分为两个区域。在最简单的线性可分的情况下,决策边界可以用平面(3D)或者直线(2D)来表示。在更复杂的情况中,分里面为曲面,这样的形状无疑更加复杂。
SVM算法既可以用于回归问题,比如SVR(支持向量回归);也可以用于分类,比如SVC(支持向量分类)。
领取专属 10元无门槛券
私享最新 技术干货