`

线性回归的python例子

 
阅读更多

参考的文章:

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 demo”中,我们将深入探讨如何使用Python实现线性回归算法,并通过实际代码示例来理解其工作原理。 首先,我们需要导入必要的库。Python提供了许多用于数据处理和机器学习的库,如NumPy用于...

    线性回归tensorflow例子,完整python代码

    使用神经网络框架tensorflow实现的线性回归demo,里面附有完整的代码,可直接运行,有详细注释

    一个线性回归的例子

    一个线性回归模型

    Python实现的简单线性回归算法实例分析

    ### Python 实现简单线性回归算法的实例分析 #### 知识点概述 本文通过一个具体的实例来介绍如何使用Python实现简单线性回归算法。线性回归是一种统计学中的预测模型,它假设自变量和因变量之间存在线性关系。在...

    Python实现OLS多元线性回归,类似SPSS一样的分析统计结果,并可以导出excel格式的统计结果

    在这个场景中,我们将关注如何使用Python的statsmodels、pandas和numpy库来实现OLS(普通最小二乘法)多元线性回归,这与统计软件如SPSS提供的功能相似。此外,我们还将探讨如何将分析结果导出为Excel格式,以便于...

    python线性回归实用教程带注释.rar

    下面是一个使用 `sklearn` 的简单线性回归例子: ```python from sklearn.model_selection import train_test_split from sklearn.linear_model import LinearRegression from sklearn.metrics import mean_squared...

    机器学习中线性回归的例子,python代码编写.rar

    在这个例子中,我们将探讨如何使用Python编程语言实现线性回归。Python因其强大的数据处理能力和丰富的科学计算库,如NumPy、Pandas和Scikit-Learn,而成为数据科学和机器学习的首选语言。 线性回归假设输入特征与...

    sklearn+python:线性回归案例

    在这个案例中,我们使用Python的机器学习库scikit-learn(sklearn)来实现线性回归模型,以预测波士顿地区的房价。 首先,我们需要导入必要的库,包括`load_boston`来获取波士顿房价数据集,`train_test_split`来...

    Python 实现一元线性回归 Jupyter Notebook 源代码和数据.zip

    在给定的资料中,“Python实现一元线性回归Jupyter Notebook源代码和数据.zip”提供了一个在Jupyter Notebook环境下使用Python编程语言实现一元线性回归的实例。Jupyter Notebook是一个交互式的笔记本,结合了代码、...

    python线性回归方程绘制

    在这个例子中,`绘制.py` 文件可能包含了以上代码,用于展示如何用Python绘制线性回归方程。通过这个过程,我们可以可视化数据点与拟合的线性回归线,帮助我们理解模型的预测能力和数据的分布情况。 此外,还可以...

    python多元线性回归预测数据

    这个例子展示了如何结合传统的机器学习算法(如线性回归)与现代深度学习库(如TensorFlow)以提高预测能力。在实际应用中,我们还需要考虑特征工程、超参数调优以及模型复杂度的平衡等更多细节,以优化模型的性能。

    python编程线性回归代码示例

    用python进行线性回归分析非常方便,有现成的库可以使用比如:numpy.linalog.lstsq例子、scipy.stats.linregress例子、pandas.ols例子等。 不过本文使用sklearn库的linear_model.LinearRegression,支持任意维度,...

    数据分析实战 - 线性回归-女性身高与体重数据分析

    在这个案例中,我们将关注女性身高与体重的关系,通过Python编程实现简单线性回归和多项式回归模型。以下是详细的知识点解析: 1. **简单线性回归**: 简单线性回归是回归分析的一种基本形式,它建立了一个线性...

    线性回归问题 python+octave实现代码

    python+octave实现代码+实验参数,很基础的一个例子,传上感觉只对小小白有用python+octave实现代码+实验参数,很基础的一个例子,传上感觉只对小小白有用python+octave实现代码+实验参数,很基础的一个例子,传上...

    一个简单的机器学习的线性回归实例

    这个实例涉及了如何使用Python编程语言,特别是Python 3.7版本中的库来实现线性回归模型。 首先,线性回归的基本思想是通过找到最佳拟合直线(或超平面)来建立输入特征(自变量)与输出目标(因变量)之间的关系。...

    机器学习——线性回归demo

    文件名"手撕线性回归预测数字"暗示了这个例子可能涉及预测数字序列,这可能是一个简单的回归问题,例如预测房价、股票价格等。在实践中,我们首先需要准备数据集,包括输入特征和对应的输出值。然后,我们会分为训练...

    python关于决策树、高斯朴素贝叶斯、向量机、线性回归模型、非线性回归模型相关知识点及应用

    线性回归是解决连续变量预测问题的常用方法,分为一元和多元线性回归。 1. **一元线性回归**:只有一个自变量和一个因变量的简单线性关系,例如预测房价。 2. **多元线性回归**:包含多个自变量和一个因变量的线性...

    python3机器学习sklearn之线性回归

    为了更好地理解线性回归的应用,我们可以考虑一个实际的例子——预测匹萨的价格。通过收集不同直径匹萨的价格数据,我们可以建立一个线性回归模型,根据直径预测匹萨的价格。首先,我们需要将数据可视化,如绘制散点...

    实验一_线性回归1

    线性回归是一种广泛应用的统计建模方法,...通过完成这些Python函数,你将深入理解线性回归的工作原理,并能应用到实际问题中。在实际应用中,还可以考虑其他优化方法、正则化以及模型评估指标,以提升模型的预测性能。

Global site tag (gtag.js) - Google Analytics