2018-04-08

#-*- 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()


2018-04-08_第1张图片

以上代码,都是在pycharm上面运行可用,参考https://blog.csdn.net/u011089523/article/details/61616053

你可能感兴趣的:(2018-04-08)