使用pandas加载数据
python库模块的引入
1、机器学习之线性回归
2、线性回归
3、线性回归实战准备
把多个图画在一个图里面
数据从一维转化成二维的
print(type(x),x.shape)
转为二维的:
import numpy as np
x = np.array(x)
print(type(x),x.shape)
x = x.reshape(-1, 1)
从1维转变为2维:10行1列
# 实验中模型预测a=2,b=5,和数据在excel表格中展示的完美一致。
数据在excel表格中展示的公式:
代码展示部分
import pandas as pd
from matplotlib import pyplot as plt
from sklearn.linear_model import LinearRegression
import numpy as np
from sklearn.metrics import mean_squared_error, r2_score
# 第一步骤:导入数据集
data = pd.read_csv('data/generated_data.csv')
data.head()
# 查看data的类型type(data)和data的维度data.shape
print(type(data), data.shape)
# data赋值
x = data.loc[:, 'x']
y = data.loc[:, 'y']
print(x, y)
# Name: y, dtype: int64
# <class 'pandas.core.series.Series'> (10,) 意思是10行,维度是一维的
# 展示我们的模型,设置图的大小figsize=(20,20)
# plt.figure(figsize=(20,20))
plt.figure()
plt.scatter(x,y)
plt.show()
# 第二步骤:建立模
# 建立一个linear regression模型
lr_model = LinearRegression()
x = np.array(x)
x = x.reshape(-1, 1)
y = np.array(y)
y = y.reshape(-1,1)
print(type(x), x.shape, type(y), y.shape)
# 第三步骤:训练模型
# 训练模型
lr_model.fit(x,y)
# 第四步骤:预测模型
y_predict = lr_model.predict(x)
print(y_predict)
print("------------")
print(y)
# y和y_predict的结果值是一样的,所以是对的
y_3 = lr_model.predict([[3.5]])
print(y_3)
# 第五步骤:
# 查看a,b系数
a = lr_model.coef_
b = lr_model.intercept_
print("a=",a,"b=",b)
# 第六步骤:评估模型的好与坏
# 看我们的MSE,MSE越小越好,R2分数越接近1越好,y' vs y集中度越高越好(越接近直线分布)
MSE = mean_squared_error(y, y_predict)
R2 = r2_score(y, y_predict)
print(MSE, R2)
# 第七步骤:可视化预测的Y和实际结果的Y
plt.figure()
plt.scatter(y, y_predict)
plt.show()
结果图