程序员Python语言与信息数据获取和机器学习机器学习与数据挖掘

线性回归预测房价

2017-05-27  本文已影响0人  DayDayUpppppp

线性回归模型应该是机器学习里面一个基本的模型,线性模型(linear model)试图学得一个属性的线性组合函数来进行预测。

假设输入的数据是:


image.png

那么,根据这个输入的数据,得到一个训练模型。然后预测一下一个700平方英尺的房子,价格是多少?

原理性的东西,我是参考周志华的《机器学习》关于线性回归的介绍和复习了一下最小二乘法思想。

实验的部分,使用python来实现的。

实现
  1. 需要的python库
import matplotlib.pyplot as plt 
import numpy as np 
import pandas as pd 
from sklearn import datasets,linear_model

2.训练集

x_parameter=[[150],[200],[250],[300],[350],[400],[600]]
y_parameter=[6450,7450,8450,9450,11450,15450,18450]

3.训练模型

def linear_model_main(x_parameter,y_parameter,predict_value):
    regr=linear_model.LinearRegression()
    regr.fit(x_parameter,y_parameter)
    predict_outcome=regr.predict(predict_value)

    predictions={}
    predictions['intercept']=regr.intercept_
    predictions['coefficient'] = regr.coef_
    predictions['predicted_value'] = predict_outcome
    return predictions

4.调用

predict_squre=700
result=linear_model_main(x_parameter,y_parameter,predict_squre)

5.画图显示一下

def show_linear_line(X_parameters,Y_parameters):
    # Create linear regression object
    regr = linear_model.LinearRegression()
    regr.fit(X_parameters, Y_parameters)
    plt.scatter(X_parameters,Y_parameters,color='blue')
    plt.plot(X_parameters,regr.predict(X_parameters),color='red',linewidth=4)
    plt.xticks(())
    plt.yticks(())
    plt.show()

2017-05-27 17-00-52屏幕截图.png

源代码:
https://github.com/zhaozhengcoder/Machine-Learning/blob/master/linear%20model.py

PS:
这里调用了sklearn 的库,使用了linear_model.LinearRegression()函数,直接拟合了数据。但是,这个函数内部是怎么做的?是如何做到了?
就设计到了如何求解代价函数的最小值,最小二乘法,梯度下降等知识。
以后补充这个推理过程。

上一篇下一篇

猜你喜欢

热点阅读