Sklearn——用Sklearn实现线性回归(LinearRegression)

1.前言

Sklearn 中的datasets,很多而且有用,可以用来学习算法模型。

比如: boston 房价, 糖尿病, 数字, Iris 花。

也可以生成虚拟的数据,例如用来训练线性回归模型的数据,可以用函数来生成。
在这里插入图片描述
例如,点击进入 boston 房价的数据,可以看到 sample 的总数,属性,以及 label 等信息。
在这里插入图片描述
如果是自己生成数据,按照函数的形式,输入 sample,feature,target 的个数等等。

sklearn.datasets.make_regression(n_samples=100, n_features=100, n_informative=10, n_targets=1, bias=0.0, effective_rank=None, tail_strength=0.5, noise=0.0, shuffle=True, coef=False, random_state=None)[source]

2.Sklearn实战线性回归

2.1.导入必要模块

from sklearn import datasets    #导入数据模块
from sklearn.model_selection import train_test_split   #导入切分训练集、测试集模块
from sklearn.linear_model import LinearRegression

2.2.加载数据

加载 boston房价 的数据,把属性存在 X,类别标签存在 y:

boston_data = datasets.load_boston()     #加载数据
data_x = boston_data.data    #数据
data_y = boston_data.target  #标签

观察一下数据集

print(data_x)
print(data_y)

把数据集分为训练集和测试集,其中 test_size=0.3,即测试集占总数据的 30%:

x_train, x_test, y_train, y_test = train_test_split(data_x, data_y,test_size = 0.3)
print(y_train)
print(y_test)

可以看到分开后的数据集,顺序也被打乱,这样更有利于学习模型:

2.3.训练+预测

定义模块方式 LinearRegression(), 用 fit 来训练 training data,这一步就完成了训练的所有步骤, 后面的 model 就已经是训练好的模型,可以直接用来 predict 测试集的数据, 对比用模型预测的值与真实的值,可以看到大概模拟出了数据,但是有误差,是不会完完全全预测正确的。

model = LinearRegression()   #实例化模型
model.fit(x_train, y_train)  #用训练数据训练
print(model.predict(x_test))  #预测
print(y_test)     #实际

为了提高准确度,可以通过尝试不同的 model,不同的参数,不同的预处理等方法,入门的话可以直接用默认值。

发布了182 篇原创文章 · 获赞 535 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_37763870/article/details/105161775