fisher线性判别算法python_Python机器学习算法实践(2)——线性回归

05cd0ba9bbd89d196957655e59b24bf6.png

线性模型

线性回归,又叫最小二乘法(ordinary least squares,OLS),它是一种经典的线性方法,很常用也很强大。

该模型有个公式,对于回归问题来说,是这样子的:

3c5c991d17d59c9ba06a3b08e660c852.png

y-hat(y上面有个帽子形状)就是指预测的结果。其中w为系数,b为截距,类似于我们学过的线性方程。x从1到n表示有n个特征,对于每一个x,都有对应的w作为它的权重。

线性回归的目的,就是找到这样的w和b,使预测的结果y-hat与真实的结果y之间的均方误差最小。假设我们有m个样本数据,那么可以表示为

97361849c6c05eed2e818514c88e4662.png

我们的目的就是使上式的值最小。

实战

这次我们使用波士顿数据集来让你体会最小二乘法。

首先,加载该数据集

from sklearn.datasets import load_boston

接着,加载我们的线性回归模型

from sklearn.linear_model import LinearRegression

然后,把数据集分成训练集和测试集

boston = load_boston()

from sklearn.model_selection import train_test_split

X_train,X_test,y_train,y_test = train_test_split(boston.data,boston.target)

把训练集的数据“喂”给我们的线性模型

LR = LinearRegression()

LR.fit(X_train,y_train)

好,训练完成,我们可以查看权重系数w和截距b。

权重w保存在coef_属性中(注意下划线不要漏掉)。

LR.coef_

array([-1.18925565e-01, 5.39588740e-02, -1.45929546e-03, 3.14573829e+00,

-1.69581780e+01, 3.69869054e+00, -4.82293735e-03, -1.46033047e+00,

2.85704971e-01, -1.06439695e-02, -9.03668706e-01, 8.38554688e-03,

-4.84033054e-01])

截距b保存在intercept_属性中(同样注意下划线)

LR.intercept_

35.485902475407016

最后,我们来分别看下模型在训练集中和测试集中的精度。

LR.score(X_train,y_train)

0.7244238928965149

可以看出,模型在训练集中的精度约为72.4%。

LR.score(X_test,y_test)

0.7770130001164529

而模型在测试集中的精度为77.7%左右。

模型优点

线性回归的优点就是应用广泛,解释性强,模型也不复杂,面对小型数据集精度也很高。

模型缺点

与此同时,由于模型不用调节什么参数,使得它更难被“控制”,很容易发生过拟合,尤其是面对有大量特征的数据集时。

那有没有什么方法能控制模型的复杂度呢?下一篇我们就要介绍两种防止过拟合的方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值