#-*- coding:utf-8 _*_
__author_= 'Alex'
import pandasas pd
from ioimport StringIO
from sklearnimport linear_model
import matplotlib.pyplotas 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'].reshape(-1,1),df['price'])
#不难得出训练后的直线的斜率、截距
a,b=regr.coef_,regr.intercept_
print(a)
print(b)
#给出待预测面积
area=238.5
#方式一:根据直线方程计算面积
print(a*area+b)
#方式二:根据predict方法预测的价格
print(regr.predict(area))
###以上为算法的核心部分###
#下面就顺水推舟画个图看下现象
#真实的点
plt.scatter(df['square_feet'],df['price'],color='blue')
#画出拟合的直线
plt.plot(df['square_feet'],regr.predict(df['square_feet'].reshape(-1,1)),color='red')
plt.show()
以上代码,都是在pycharm上面运行可用,参考https://blog.csdn.net/u011089523/article/details/61616053
网友评论