sklearn 线性回归简单应用

样本准备

import numpy as np
import matplotlib.pyplot as plt

# 样本准备
train_X = np.linspace(-1, 1, 100)
train_Y = 2 * train_X + np.random.randn(*train_X.shape) * 0.3  # y=2x,但是加入了噪声
# 显示模拟数据点
plt.plot(train_X, train_Y, 'ro', label='Original data')
plt.legend()
plt.show()

在这里插入图片描述

模型训练及可视化

from sklearn.linear_model import LinearRegression

model = LinearRegression()
model.fit(train_X.reshape(100, 1), train_Y.reshape(100, 1))
print("输入6,的模型预测结果:", model.predict(6))
print("线性模型的斜率与截距:", model.coef_, model.intercept_)
# y = kx+b
print("使用斜率与截距的计算结果:", model.coef_ * 6 + model.intercept_)

plt.plot(train_X, train_Y, 'ro', label='Original data')
plt.plot(train_X, model.predict(train_X.reshape(100, 1)), label='Fitted line')
plt.legend()
plt.show()

在这里插入图片描述

模型评估

X_test = np.linspace(11, 20, 20)
Y_test = 2 * X_test + np.random.randn(*X_test.shape) * 0.3
print("模型评估的分值:", model.score(X_test.reshape(20, 1), Y_test.reshape(20, 1)))

模型保存,及应用

from sklearn.externals import joblib

joblib.dump(model, "train_model.m")
model = joblib.load("train_model.m")
print("导入模型,并输入6得到的预测结果:", model.predict(6))

猜你喜欢

转载自blog.csdn.net/lw_power/article/details/83006276