• 如果觉得本站不错,可以收藏本站
  • 本站关注Google Analytics、Adobe Analytics和广告技术
  • Google Analytics和Google Tag Manager视频课程第三版http://edu.ichdata.com

Python中做线性回归分析

Python与算法 黄业忠 4年前 (2016-09-23) 6477次浏览 已收录 0个评论 扫描二维码

建模的流程大三步:数据清理处理,模型选择,检验,下面以线性回归为例:
1、导入数据:

import matplotlib.pyplot as plt
import numpy as np
from sklearn import datasets,linear_model


diabetes=datasets.load_diabetes()  #加载数据
diabetes_X=diabetes.data[:,np.newaxis,2]  #嵌套列表转化成列表

通常在这一步需要看数据的类型,分布,对极值,缺失值做处理。
2、生成训练集和测试集:

diabetes_X_train=diabetes_X[:-20] 	#剔除后面20个作为训练集
diabetes_X_test=diabetes_X[-20:]	#剔除前面20个作为测试集合
diabetes_y_train=diabetes.target[:-20]
diabetes_y_test=diabetes.target[-20:]

3、建模与拟合

regr=linear_model.LinearRegression()	#创建线性回归对象
regr.fit(diabetes_X_train,diabetes_y_train) #将训练集放进去拟合

4、模型检验:Python的很多检验都都需要自己计算

print("Coefficients:\n",regr.coef_) 	#输出系数
print("Residual sum of sqares:%.2f"
	%np.mean((regr.predict(diabetes_X_test)-diabetes_y_test)**2))		#输出残差平方和
print("Variance score:%.2f" %regr.score(diabetes_X_test,diabetes_y_test)) #R^2

实际结果:

Python中做线性回归分析

6、做拟合图:

plt.scatter(diabetes_X_test,diabetes_y_test,color='black')		#测试集散点图
plt.plot(diabetes_X_test,regr.predict(diabetes_X_test),color='blue',linewidth=3)	#拟合方程
plt.title("The Linear Model")

plt.show()

图:
Python中做线性回归分析
总体上来说,Python做数据建模对统计原理的要求会更高些,因为在做检验的时候需要你计算出来的,不像R直接出来,只是需要解读判断。

源码:

import matplotlib.pyplot as plt
import numpy as np
from sklearn import datasets,linear_model


diabetes=datasets.load_diabetes()  #加载数据
diabetes_X=diabetes.data[:,np.newaxis,2]  #嵌套列表转化成列表
diabetes_X_train=diabetes_X[:-20] 	#剔除后面20个作为训练集
diabetes_X_test=diabetes_X[-20:]	#剔除前面20个作为测试集合
diabetes_y_train=diabetes.target[:-20]
diabetes_y_test=diabetes.target[-20:]
regr=linear_model.LinearRegression()	#创建线性回归对象
regr.fit(diabetes_X_train,diabetes_y_train) #将训练集放进去拟合


print("Coefficients:\n",regr.coef_) 	#输出系数
print("Residual sum of sqares:%.2f"
	%np.mean((regr.predict(diabetes_X_test)-diabetes_y_test)**2))		#输出残差平方和
print("Variance score:%.2f" %regr.score(diabetes_X_test,diabetes_y_test)) #R^2


plt.scatter(diabetes_X_test,diabetes_y_test,color='black')		#测试集散点图
plt.plot(diabetes_X_test,regr.predict(diabetes_X_test),color='blue',linewidth=3)	#拟合方程
plt.title("The Linear Model")

plt.show()

GA小站, 版权所有丨如未注明 , 均为原创

转载请注明标题:Python中做线性回归分析
链接:https://www.ichdata.com/use-python-to-do-linear-regression-analysis.html

喜欢 (2)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址