简单线性回归
# -*- coding=utf8 -*-
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
from matplotlib.font_manager import _rebuild
_rebuild()
# mpl.rcParams['font.family'] = 'SimHei'
# 披萨直径
X = np.array([[6], [8], [10], [14], [18]]).reshape(-1, 1) # shape: (5, 1)
y = [7, 9, 13, 17.5, 18]
plt.figure()
plt.title('披萨价格与直径对比')
plt.xlabel('直径(英寸)')
plt.ylabel('价格(美元)')
plt.plot(X, y, 'k.')
plt.axis([0, 25, 0, 25])
plt.grid(True)
plt.show()
上面代码画出图形如下:
使用线性回归进行训练,并预测12寸披萨价格:
from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(X, y)
test_pizza = np.array([[12]])
predicted_price = model.predict(test_pizza)[0]
# print('12寸披萨预测价格:$%.2f' % predicted_price)
print(f'12寸披萨预测价格:${predicted_price:.2f}')
输出:
12寸披萨预测价格:$13.68
求解残差平方和:
print(f'残差平方和:{np.mean((model.predict(X)-y) ** 2):.2f}')
输出:
残差平方和:1.75