回归是一种有监督的学习方式,需要根据历史数据对未知数据做出预测。
在此,以房屋面积预测房屋价格为例:
首先,读入数据/加载数据:
代码如下:
import pandas as pd
import numpy as np
from io import StringIO
from sklearn import linear_model
import matplotlib.pyplot as plt
# 房屋面积与价格历史数据(csv文件)
csv_data = 'square_feet,price\n150,6450\n200,7450\n250,8450\n300,9450\n350,11450\n400,15450\n600,18450\n'
# 读入dataframe
df=pd.read_csv(StringIO(csv_data))
# print(df)
其次,建立线性回归模型,并对数据进行拟合,代码如下:
# 建立线性回归模型
regr=linear_model.LinearRegression()
# 拟合
regr.fit(df['square_feet'].values.reshape(-1, 1), df['price'])
# 用values方法将Series对象转化成numpy的ndarray,再用ndarray的reshape方法。
# 注意此处.reshape(-1, 1),因为X是一维的!
得到模型的截距和斜率:
# 直线的回归系数,截距
a,b=regr.coef_,regr.intercept_
<