sklearn 多元非线性回归,sklearn的线性回归

  sklearn 多元非线性回归,sklearn的线性回归

  作者Kaushik Choudhury编译VK来源

  大约13年前,David Cournapeau的Scikit learn作为谷歌代码之夏项目的一部分启动。随着时间的推移,Scikit learn已经成为Python中最著名的机器学习库之一。提供了几种分类、回归和聚类算法,但在我看来,它的主要优势是与Numpy、Pandas和Scipy无缝集成。

  本文利用excel比较Scikit-learn多元线性回归的预测精度。Scikit-learn提供了许多参数,称为估计器超级参数,用于改进模型训练和提高预测精度。

  在excel中,很少可以调整回归算法。为了公平比较,sklearn回归模型使用默认参数进行训练。

  目的比较excel和Scikit learn对线性回归的预测准确性。并简要介绍了excel中线性回归的过程。

  样本文件使用100,000个降水、最低温度、最高温度和风速数据集进行比较。工作人员连续8年每天进行几次测量,得到了这些数据。

  用降水量,最低温度,最高温度来预测风速。所以风速是因变量,其他数据是自变量。

  首先,利用excel建立风速的线性回归模型并进行预测。然后用Scikit learn做同样的练习,最后对比预测结果。

  若要在excel中执行线性回归,请打开示例数据文件,然后单击excel功能区上的“数据”选项卡。在数据选项卡上,选择数据分析选项。

  提示:如果你看不到“数据分析”选项,点击文件选项插件。选择分析工具箱并单击“Go”按钮,如下所示。

  单击“数据分析”选项打开一个弹出窗口,其中显示了excel中可用的各种分析工具。选择回归回归,然后单击确定。

  将显示另一个弹出窗口。在“输入范围”字段中输入风速(因变量)的Excel单元格参考值。“输入范围”提供降水量、最低温度、最高温度等自变量的单位参考。

  示例中的第一行数据包含变量名,因此必须选中“标签”复选框。

  指定数据并单击“确定”后,excel将创建一个线性回归模型。可以看作是Scikit learn的训练(fit函数)。

  Excel执行计算并以良好的格式显示信息。在我们的示例中,excel可以拟合R侧为0.953的线性回归模型。考虑到训练数据集中的100,000条记录,excel在不到7秒的时间内执行了线性回归。除其他统计信息外,还显示不同参数的截距和系数。

  根据excel的线性回归输出,可以组合以下数学关系:

  风速=2.438(降水量*0.026)最低温度*0.393)最高温度*0.395)

  我们用这个公式来预测测试数据集的风速。测试中的数据是excel在培训中不使用的数据。

  例如,对于第一个测试数据集,风速=2.438(0.51 * 0.026)17.78 * 0.393)25.56 * 0.395)=19.55。

  此外,还计算了预测的残差,并绘制了图表以了解其趋势。大多数情况下,风速的预测值低于实际值,所以风速越快,预测误差越大。

  使用Scikit learn学习线性回归。

  第1步-导入包进行分析。因为自变量的值分布在不同的取值范围内,不是标准的正态分布,所以需要StandardScaler来实现自变量的标准化。

  froms klearn . preprocessingimportstandardscalerfromskneel . linear _ modeimportlinearregressionfromskneel . metricimportimporttororttsteanation tmat plot lib .Pyplotasplt将excel文件中的训练数据和测试数据http://www.Sina.com/-Read到PandasDataframe中,分别作为训练数据和测试数据。

  training _ data=PD . read _ excel(" weather . xlsx ",sheet _ name=" sheet 1)" " test _ data=PD . read _ excel)

  第2步-以下代码将除“风速”之外的所有列中的数据声明为参数

  ,只有“风速”被用作训练和测试数据的因变量。请注意,我们不是使用“SourceData_test_dependent”进行线性回归,而是将预测值与其进行比较。

  source data _ train _ independent=Training _ data . drop([ wind speed ],Axis=1) # Delete风速变量source data _ train _ dependent=Training _ data[ wind speed ]。copy () #训练数据集只有自变量sourcedata _ test _ independent=test _ data . drop([ windspeed ],axis=1)sourcedata _ test _ independent=test _ data[ windspeed ]。copy()第4步——由于自变量的取值范围完全不同,我们需要将其调整为在下面的代码中,自变量被缩放并分别保存到X-train和X_test中。在y_train中,保存相关的训练变量时不进行缩放。

  sc _ X=standard scaler()x _ train=sc _ X . fit _ transform(sourcedata _ train _ independent . values)#缩放参数y _ train=sourcedata _ train _ dependent #因变量不需要缩放X _ test=sc _ X . transform(sourcedata _ test _ independent)y _ test=sourcedata _ test _ dependent第5步-现在我们将分别输入自变量和因变量数据,即X _ train和y _ train,来训练线性回归模型。出于本文开头提到的原因,我们将使用默认参数来执行模型拟合。

  reg的训练数据的线性回归得分=线性回归()。fit (x _ train,y _ train) print(训练数据上的线性回归得分为,round (reg。score (x _ train,y _ train),2))与我们用excel观察到的结果一致。

  第6步-最后我们会根据测试集预测风速。

  Predict=reg.predict(X_test)从预测风速值和残差散点图可以看出,Sklean的预测值更接近实际值。

  平行比较Sklearn和Excel的残差可以看出,随着风速的增大,模型与实际值的偏差比较大,但Sklearn优于Excel。

  另一方面,excel确实预测了类似于sklearn的风速值范围。如果近似线性回归模型对您的业务案例足够好,那么excel是快速预测的好选择。

  Excel可以在与sklearn相同的精度水平上执行线性回归预测。Sklearn通过微调参数可以大大提高线性回归预测的精度,更适合处理复杂模型。Excel是一个非常好的选择,可以进行快速和近似的预测,精确度可以接受。

  原文链接:3359 towards data science . com/linear-regression-in-python-sk learn-vs-excel-6790187 DC 9 ca

  欢迎来到艾博客站

  Sklearn机器学习中文官方文档:http://sklearn123.com/

  欢迎来到http://docs.panchuang.net/潘闯博客资源采集站

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: