【机器学习】python实现线性回归 sklearn库

0. python调库实现一元/多元线性回归

  • 1.线性回归
    • 1.1 数据集
    • 1.2 代码
    • 1.3 结果展示
  • 2.多元线性回归
    • 2.1数据集
    • 2.2 代码实现
    • 2.3 结果展示

1.线性回归

1.1 数据集

0.1 对一元线性回归,我们用房子面积(square_feet)预测房子价格(price);

square_feet price
150 6450
200 7450
250 8450
250 8450
300 9450
350 11450
400 15450
600
18450

1.2 代码

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn import linear_model
from pylab import *
mpl.rcParams['font.sans-serif'] = ['SimHei']

X = np.array([[150, 200, 250, 300, 350, 400, 600]]).reshape(7, 1)
Y = np.array([[6450, 7450, 8450, 9450, 11450, 15450, 18450]]).reshape(7, 1)
# 建立线性回归模型
regr = linear_model.LinearRegression()
# 拟合
regr.fit(X, Y)
# 不难得到直线的斜率、截距
a, b = regr.coef_, regr.intercept_
# 给出预测面积,预测房子价格price
area = np.array([[238.5]]).reshape(-1, 1)

# 作图
# 1.真实数据的点
plt.scatter(X, Y, color='blue', label='原始数据点')
# 2.拟合的直线
plt.plot(X, regr.predict(X), color='red', linewidth=4, label='拟合线')
plt.xlabel("square_feet")
plt.ylabel("price")
plt.grid()
plt.legend()
plt.show()

1.3 结果展示

【机器学习】python实现线性回归 sklearn库_第1张图片

2.多元线性回归

2.1数据集

此处采用波士顿房价数据集(可直接调用),训练特征为13个,输出标签为MEDV。
数据截图如下,
【机器学习】python实现线性回归 sklearn库_第2张图片

2.2 代码实现

import matplotlib.pyplot as plt
import numpy as np
from sklearn import linear_model
plt.rcParams['font.sans-serif']=['SimHei'] #显示中文标签
plt.rcParams['axes.unicode_minus']=False

# 导入波士顿房价数据集
from sklearn.datasets import load_boston
X, y = load_boston(return_X_y=True)

# 建立线性回归模型
regr = linear_model.LinearRegression()
# 用前450条数据作为训练集
regr.fit(X[0:450, :], y[0:450]) 
a, b = regr.coef_, regr.intercept_ 
# 后56条数据作为
test = X[450:506, :]
# 绘图
x = np.arange(56)
plt.scatter(x, y[450:], s=10, label="实际数据点",)
plt.plot(x, regr.predict(test), c='r', label="拟合数据")
plt.xlabel("样本")
plt.ylabel("MEDV")
plt.grid()
plt.legend()
plt.show()

2.3 结果展示

【机器学习】python实现线性回归 sklearn库_第3张图片

你可能感兴趣的:(机器学习,python,机器学习,sklearn,线性回归)