参考的文章:
http://blog.csdn.net/lulei1217/article/details/49385531
http://blog.csdn.net/LULEI1217/article/details/49386295
我将该作者上面两篇文章中的代码修改后,变成下面的样子。数据集在附件中。
#coding:utf-8 import matplotlib.pyplot as plt import numpy as np import pandas as pd from sklearn import datasets, linear_model ''' Created on 2016年12月9日 多维向量的线性回归 href:http://blog.csdn.net/LULEI1217/article/details/49386295 ''' def get_data(file_name,feature_cols): #负责读取 csv文件.文件的第一行是列名。本例中的数据集在附件中 data = pd.read_csv(file_name) X_parameter = data[feature_cols] Y_parameter = data['Sales'] return X_parameter,Y_parameter #输入参数为X轴的数据集,Y轴的数据集,假设的X的值 #输出是X的预测Y def linear_model_main(X_parameters,Y_parameters,predict_value): #调用api进行线性回归 regr = linear_model.LinearRegression() regr.fit(X_parameters, Y_parameters) #获得预测输出 predict_outcome = regr.predict(predict_value) predictions = {} predictions['intercept'] = regr.intercept_ predictions['coefficient'] = regr.coef_ predictions['predicted_value'] = predict_outcome return predictions #绘制效果比较图 def show_comparison(Y_parameters,Y_pred): plt.figure() plt.plot(range(len(Y_pred)),Y_pred,'b',label="predict") plt.plot(range(len(Y_pred)),Y_parameters,'r',label="reality") plt.legend(loc="upper right") #显示图中的标签 plt.xlabel("the sequence number of sales") plt.ylabel('value of sales') plt.show() #评价算法效果的指标RMSE(Root Mean Squared Error 均方根误差) def get_rmse(Y_parameters,Y_pred): sum_mean=0 for i in range(len(Y_pred)): sum_mean+=(Y_pred[i]-Y_parameters.values[i])**2 sum_error=np.sqrt(sum_mean/len(Y_pred)) return sum_error if __name__ == '__main__': print "Job Begins" file_name="./Advertising.csv" # 可以按照需要使用需要的列,增删列名即可 feature_cols = ['TV', 'Radio', 'Newspaper'] X,Y = get_data(file_name,feature_cols) regr = linear_model.LinearRegression() #数据的前195条用于训练,最后5条用于测试 model = regr.fit(X.head(195), Y.head(195)) #自己创造数据集的话,用下面的形式 # X_test = pd.DataFrame({'TV':[1],'Radio':[1],'Newspaper':[1]}) X_test = X.tail(5) Y_real = Y.tail(5) Y_pred = regr.predict(X_test) # show_comparison(Y_real,Y_pred) #通过改变features后的均方差大小,可以发现只使用TV和Radio这两个feature效果最好 print get_rmse(Y_real, Y_pred)
线性回归要求数据集必须是线性相关的,也是最基础的算法。比如要预测股票价格,就有点说不通了。算法的验证是一个比较复杂的过程,例子里就只做了一次。正常情况应该使用“十折验证法”。方法就是将数据分成十份,每次用一份当验证集合,其他九份当训练集合,最后看综合表现结果。
顺便再提两个名词,回归和过拟合。
回归的意思是将参数代入目标函数,并获得结果,也就是通常讲的预测。
过拟合的意思是训练之后的模型只对于训练数据有较好的表现,对于测试的数据表现不佳。
相关推荐
使用神经网络框架tensorflow实现的线性回归demo,里面附有完整的代码,可直接运行,有详细注释
一个线性回归模型
机器学习中线性回归的例子,python代码编写.rar
主要介绍了Python实现的简单线性回归算法,结合实例形式分析了线性回归算法相关原理、功能、用法与操作注意事项,需要的朋友可以参考下
今天小编就为大家分享一篇sklearn+python:线性回归案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
用python进行线性回归分析非常方便,有现成的库可以使用比如:numpy.linalog.lstsq例子、scipy.stats.linregress例子、pandas.ols例子等。 不过本文使用sklearn库的linear_model.LinearRegression,支持任意维度,...
python+octave实现代码+实验参数,很基础的一个例子,传上感觉只对小小白有用python+octave实现代码+实验参数,很基础的一个例子,传上感觉只对小小白有用python+octave实现代码+实验参数,很基础的一个例子,传上...
机器学习中逻辑回归的例子,python代码编写,可以帮助很好的理解线性回归,程序运行无错误。
文件为房价预测例子的一元线性回归模型代码及数据,由sklearn库实现,将数据文件与程序文件放在同一目录下运行即可。 博客地址:https://me.csdn.net/albert201605
因为整个项目包中包括一个python3.7的lib库,文件太大,所以需要自己将linear.py和放到PyCharm项目中,有问题可以问我
附件是一个简单的数学建模例子,使用Python语言来解决一个基本的线性回归问题。 线性回归是一种统计学方法,用于分析两个变量之间的线性关系。这里我们用Python的scikit-learn库来实现一个简单的线性回归模型。 ...
主要介绍了Python编程实现使用线性回归预测数据,具有一定借鉴价值,需要的朋友可以了解下。
机器学习中线性回归的例子,python代码编写,可以帮助很好的理解线性回归,程序运行无错误。
Python数据分析可视化预测项目例子实例源码代码实战案例带数据集
对于想深入了解线性回归的童鞋,这里给出一个完整的例子,详细学完这个例子,对用scikit-learn来运行线性回归,评估模型不会有什么问题了。 1. 获取数据,定义问题 没有数据,当然没法研究机器学习啦。:) 这里我们用...
使用python实现线性回归算法,该算法可以用来进行数据的预测,通过具体例子来熟练掌握
79套Python数据分析可视化预测项目例子实例源码代码实战案例带数据集,包含(简略): 案例-50个Pyecharts可视化例子 电商-超市销售数据分析与报表-约200行(数据运视分析) 电商-广告投放效果分析-约250行(KMeans聚类...
线性回归可以用以下式子进行描述: 线性回归即连续值的预测问题,即根据给定的x以及模型参数θ的计算下,使得该方程的相应能够无限逼近真实值y。 下面来举一个连续值预测的简单例子: y = w * x + b 当知道两组参数...