【Python机器学习】线性模型——线性回归

本文介绍了线性回归的基本概念,包括其在寻找参数以最小化均方误差的应用。通过在一维和多维数据集(如波士顿房价数据集)上的实例,展示了模型在训练集和测试集上的性能差异,揭示了欠拟合和过拟合的问题。
摘要由CSDN通过智能技术生成

线性回归,又叫普通最小二乘法,是回归问题最简单也是最经典的线性方法。线性回归寻找参数w和b,使得对训练集的预测值与真实的回归目标值y之间的均方误差最小。

均方误差是预测值与真实值之差的平方和除以样本差。线性回归没有参数,是一个优点,但是也因此无法控制模型的复杂度。

一维数据集:
import mglearn.datasets
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression

X,y=mglearn.datasets.make_wave(n_samples=60)
X_train,X_test,y_train,y_test=train_test_split(
    X,y,random_state=42
)
lr=LinearRegression().fit(X_train,y_train)

print('斜率:{}'.format(lr.coef_))
print('截距:{}'.format(lr.intercept_))
print('训练集score:{:.2f}'.format(lr.score(X_train,y_train)))
print('测试集score:{:.2f}'.format(lr.score(X_test,y_test)))

 score约为0.66,结果不是很好,但训练集和测试集的分数非常相近,说明模型存在欠拟合,而不是过拟合

多维数据集:

mglearn包有个现成数据集,为波士顿房价数据集,有506个样本和105个导出特征。

import mglearn.datasets
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.neighbors import KNeighborsRegressor
import matplotlib.pyplot as plt
import numpy as np

X,y=mglearn.datasets.load_extended_boston()
X_train,X_test,y_train,y_test=train_test_split(
    X,y,random_state=0
)
lr=LinearRegression().fit(X_train,y_train)

print('训练集score:{:.2f}'.format(lr.score(X_train,y_train)))
print('测试集score:{:.2f}'.format(lr.score(X_test,y_test)))

比较训练集饿测试集的分数,可以发现在训练集上的预测非常准确,但测试集上就要低很多,说明存在过拟合。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值