机器学习:拟合

机器学习,拟合。代码样例:

import numpy as np
from sklearn.linear_model import LinearRegression
import matplotlib.pyplot as plt
from sklearn.metrics import mean_squared_error

# 1、创建特征x,目标值y
# np.random.seed(22)定义随机数种子
# 生成100个-3到3的随机数列表
# reshape(-1,1),将列表重置1列100行的二维列表(100,1)
# hstack将重置后的特征x,再加多一列,这时最终的特征变成了2列
# y是目标值,也有100个
np.random.seed(22)
x = np.random.uniform(-3,3,size=100)
y = 0.5 * x ** 2 + x + 2 + np.random.normal(0,1,size=100)

X = x.reshape(-1,1)
X2 = np.hstack([X,X ** 2])


# 2、创建模型,正规方程。
model = LinearRegression()

# 3、训练模型
model.fit(X2,y)

# 4、模型预测
y_predict = model.predict(X2)

# 5、模型评估
print(mean_squared_error(y_true=y,y_pred=y_predict))

# 6、输出拟合图
plt.scatter(x,y)
plt.plot(np.sort(x),y_predict[np.argsort(x)])
plt.show()

拟合效果: