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 结果展示

在这里插入图片描述

2.多元线性回归

2.1数据集

此处采用波士顿房价数据集(可直接调用),训练特征为13个,输出标签为MEDV。
数据截图如下,
在这里插入图片描述

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 结果展示

在这里插入图片描述

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐