参考的文章:
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)
线性回归要求数据集必须是线性相关的,也是最基础的算法。比如要预测股票价格,就有点说不通了。算法的验证是一个比较复杂的过程,例子里就只做了一次。正常情况应该使用“十折验证法”。方法就是将数据分成十份,每次用一份当验证集合,其他九份当训练集合,最后看综合表现结果。
顺便再提两个名词,回归和过拟合。
回归的意思是将参数代入目标函数,并获得结果,也就是通常讲的预测。
过拟合的意思是训练之后的模型只对于训练数据有较好的表现,对于测试的数据表现不佳。
相关推荐
在这个“线性回归Python demo”中,我们将深入探讨如何使用Python实现线性回归算法,并通过实际代码示例来理解其工作原理。 首先,我们需要导入必要的库。Python提供了许多用于数据处理和机器学习的库,如NumPy用于...
使用神经网络框架tensorflow实现的线性回归demo,里面附有完整的代码,可直接运行,有详细注释
一个线性回归模型
### Python 实现简单线性回归算法的实例分析 #### 知识点概述 本文通过一个具体的实例来介绍如何使用Python实现简单线性回归算法。线性回归是一种统计学中的预测模型,它假设自变量和因变量之间存在线性关系。在...
在这个场景中,我们将关注如何使用Python的statsmodels、pandas和numpy库来实现OLS(普通最小二乘法)多元线性回归,这与统计软件如SPSS提供的功能相似。此外,我们还将探讨如何将分析结果导出为Excel格式,以便于...
下面是一个使用 `sklearn` 的简单线性回归例子: ```python from sklearn.model_selection import train_test_split from sklearn.linear_model import LinearRegression from sklearn.metrics import mean_squared...
在给定的资料中,“Python实现一元线性回归Jupyter Notebook源代码和数据.zip”提供了一个在Jupyter Notebook环境下使用Python编程语言实现一元线性回归的实例。Jupyter Notebook是一个交互式的笔记本,结合了代码、...
在这个例子中,我们将探讨如何使用Python编程语言实现线性回归。Python因其强大的数据处理能力和丰富的科学计算库,如NumPy、Pandas和Scikit-Learn,而成为数据科学和机器学习的首选语言。 线性回归假设输入特征与...
在这个案例中,我们使用Python的机器学习库scikit-learn(sklearn)来实现线性回归模型,以预测波士顿地区的房价。 首先,我们需要导入必要的库,包括`load_boston`来获取波士顿房价数据集,`train_test_split`来...
在这个例子中,`绘制.py` 文件可能包含了以上代码,用于展示如何用Python绘制线性回归方程。通过这个过程,我们可以可视化数据点与拟合的线性回归线,帮助我们理解模型的预测能力和数据的分布情况。 此外,还可以...
这个例子展示了如何结合传统的机器学习算法(如线性回归)与现代深度学习库(如TensorFlow)以提高预测能力。在实际应用中,我们还需要考虑特征工程、超参数调优以及模型复杂度的平衡等更多细节,以优化模型的性能。
在这个特定的例子中,我们关注的是如何利用一元线性回归模型预测房价。这个模型可能基于房屋的单一特征,如面积、地理位置等。 在Python编程环境中,我们可以使用强大的机器学习库scikit-learn(简称sklearn)来...
在这个案例中,我们将关注女性身高与体重的关系,通过Python编程实现简单线性回归和多项式回归模型。以下是详细的知识点解析: 1. **简单线性回归**: 简单线性回归是回归分析的一种基本形式,它建立了一个线性...
用python进行线性回归分析非常方便,有现成的库可以使用比如:numpy.linalog.lstsq例子、scipy.stats.linregress例子、pandas.ols例子等。 不过本文使用sklearn库的linear_model.LinearRegression,支持任意维度,...
python+octave实现代码+实验参数,很基础的一个例子,传上感觉只对小小白有用python+octave实现代码+实验参数,很基础的一个例子,传上感觉只对小小白有用python+octave实现代码+实验参数,很基础的一个例子,传上...
这个实例涉及了如何使用Python编程语言,特别是Python 3.7版本中的库来实现线性回归模型。 首先,线性回归的基本思想是通过找到最佳拟合直线(或超平面)来建立输入特征(自变量)与输出目标(因变量)之间的关系。...
文件名"手撕线性回归预测数字"暗示了这个例子可能涉及预测数字序列,这可能是一个简单的回归问题,例如预测房价、股票价格等。在实践中,我们首先需要准备数据集,包括输入特征和对应的输出值。然后,我们会分为训练...
线性回归是解决连续变量预测问题的常用方法,分为一元和多元线性回归。 1. **一元线性回归**:只有一个自变量和一个因变量的简单线性关系,例如预测房价。 2. **多元线性回归**:包含多个自变量和一个因变量的线性...
为了更好地理解线性回归的应用,我们可以考虑一个实际的例子——预测匹萨的价格。通过收集不同直径匹萨的价格数据,我们可以建立一个线性回归模型,根据直径预测匹萨的价格。首先,我们需要将数据可视化,如绘制散点...