thinkphp网站模板,百度官方平台,网站商城建设基本流程,产品宣传方案http://python.jobbole.com/81215/本文参考了博乐在线的这篇文章#xff0c;在其基础上加了一些自己的理解。其原文是一篇英文的博客#xff0c;讲的十分通俗易懂。本文通过一个简单的例子#xff1a;预测房价#xff0c;来探讨怎么用python做一元线性回归分析。1. 预测一下…http://python.jobbole.com/81215/本文参考了博乐在线的这篇文章在其基础上加了一些自己的理解。其原文是一篇英文的博客讲的十分通俗易懂。本文通过一个简单的例子预测房价来探讨怎么用python做一元线性回归分析。1. 预测一下房价房价是一个很火的话题现在我们拿到一组数据是房子的大小(平方英尺)和房价(美元)之间的对应关系见下表(csv数据文件)从中可以大致看出房价和房子大小之间是有相关关系的且可以大致看出来是线性相关关系。为了简单起见这里理想化地假设房价只和房子大小有关那我们在这组数据的基础上怎样预测任意大小的房子的房价呢答案是用一元回归分析。2. 一元回归分析是啥讲到一元回归分析很多人应该不陌生在初中还是高中的数学课程中肯定有学过即对于一组自变量x和对应的一组因变量y的值x和y呈线性相关关系现在让你求出这个线性关系的直线方程就是这样一个问题。记得当时用的方法叫最小二乘法这里不再细讲最小二乘法的详细内容其主要思想就是找到这样一条直线使得所有已知点到这条直线的距离的和最短那么这样一条直线理论上就应该是和实际数据拟合度最高的直线了。下面我们将开篇提出的问题中的房价和房子的大小之间的关系用一个线性方程来表示表示大小为x(单位平方英尺)的房子的价格为其中θ0是直线的截距θ1为回归系数即直线的斜率。我们要计算的东西其实就是θ0、θ1这两个系数因为只要这两个系数确定了那直线的方程也就确定了然后就可以把要预测的x值代入方程来求3. 上代码注用到的3个库都可以用pip命令进行安装。#!/usr/bin/python# coding:utf-8# python一元回归分析实例预测房子价格import matplotlib.pyplot as pltimport pandas as pdfrom sklearn.linear_model import LinearRegression# 从csv文件中读取数据分别为X列表和对应的Y列表def get_data(file_name):# 1. 用pandas读取csvdata pd.read_csv(file_name)# 2. 构造X列表和Y列表X_parameter []Y_parameter []for single_square_feet,single_price_value in zip(data[square_feet],data[price]):X_parameter.append([float(single_square_feet)])Y_parameter.append(float(single_price_value))return X_parameter,Y_parameter# 线性回归分析其中predict_square_feet为要预测的平方英尺数函数返回对应的房价def linear_model_main(X_parameter,Y_parameter,predict_square_feet):# 1. 构造回归对象regr LinearRegression()regr.fit(X_parameter,Y_parameter)# 2. 获取预测值predict_outcome regr.predict(predict_square_feet)# 3. 构造返回字典predictions {}# 3.1 截距值predictions[intercept] regr.intercept_# 3.2 回归系数(斜率值)predictions[coefficient] regr.coef_# 3.3 预测值predictions[predict_value] predict_outcomereturn predictions# 绘出图像def show_linear_line(X_parameter,Y_parameter):# 1. 构造回归对象regr LinearRegression()regr.fit(X_parameter,Y_parameter)# 2. 绘出已知数据散点图plt.scatter(X_parameter,Y_parameter,color blue)# 3. 绘出预测直线plt.plot(X_parameter,regr.predict(X_parameter),color red,linewidth 4)plt.title(Predict the house price)plt.xlabel(square feet)plt.ylabel(price)plt.show()def main():# 1. 读取数据X,Y get_data(./price_info.csv)# 2. 获取预测值在这里我们预测700平方英尺大小的房子的房价predict_square_feet 700result linear_model_main(X,Y,predict_square_feet)for key,value in result.items():print {0}:{1}.format(key,value)# 3. 绘图show_linear_line(X,Y)if __name__ __main__:main()【输出结果】coefficient:[ 28.77659574]predict_value:[ 21915.42553191]intercept:1771.80851064image4. 总结与不足上述分析过程有两点不足数据量太少预测的误差可能较大影响房价不止房子大小这一个因素肯定还有很多其他因素这里没有把其他因素考虑进去导致预测的结果也是不准确的。既然有一元回归分析那肯定也有多元回归分析留到以后再讲。但是我们也看到可以用python的一些科学计算和数据分析的库自动的帮我们完成以前需要繁琐计算的过程更加灵活高效特别是面对上万上百万规模的数据的时候。