机器学习-线性回归(Linear Regression)案例

2019/09/11 15:47
阅读数 181


微信公众号:yale记
关注可了解更多的教程问题或建议,请公众号留言。

背景介绍

线性回归用于根据连续变量估算实际值(房屋成本,看涨期权,总销售额等)。在这里,我们通过拟合最佳线来建立独立变量和因变量之间的关系。该最佳拟合线称为回归线,并由线性方程Y = a * X + b表示。

理解线性回归的最佳方法是重温这种童年经历。你问一个五年级的孩子,通过增加体重的顺序来安排他们班上的人,而不是问他们的体重!你觉得孩子会怎么做?他/她可能会在人的身高和体型上进行(视觉分析),并使用这些可见参数的组合进行排列。这是现实生活中的线性回归!孩子实际上已经发现高度和构建将通过关系与权重相关联,这看起来像上面的等式。


在这个等式中:


Y  - 因变量

a  - 坡度

X  - 自变量

b  - 拦截

这些系数a和b是基于最小化数据点和回归线之间的距离的平方差的总和而导出的。

请看下面的例子。在这里,我们确定了具有线性方程y = 0.2811x + 13.9的最佳拟合线。现在使用这个等式,我们可以找到重量,知道一个人的身高。



线性回归主要有两种类型:简单线性回归和多元线性回归。简单线性回归的特征在于一个独立变量。并且,多元线性回归(顾名思义)的特征是多个(超过1个)自变量。在找到最佳拟合线时,您可以拟合多项式或曲线回归。这些被称为多项式或曲线回归。

来看使用python的scikit-learn完成的线性回归案例:

上文代码块

代码内容:

# importing required librariesimport pandas as pdfrom sklearn.linear_model import LinearRegressionfrom sklearn.metrics import mean_squared_error
# read the train and test datasettrain_data = pd.read_csv('train.csv')test_data = pd.read_csv('test.csv')
print(train_data.head())
# shape of the datasetprint('\nShape of training data :',train_data.shape)print('\nShape of testing data :',test_data.shape)
# Now, we need to predict the missing target variable in the test data# target variable - Item_Outlet_Sales
# seperate the independent and target variable on training datatrain_x = train_data.drop(columns=['Item_Outlet_Sales'],axis=1)train_y = train_data['Item_Outlet_Sales']
# seperate the independent and target variable on training datatest_x = test_data.drop(columns=['Item_Outlet_Sales'],axis=1)test_y = test_data['Item_Outlet_Sales']
'''Create the object of the Linear Regression modelYou can also add other parameters and test your code hereSome parameters are : fit_intercept and normalizeDocumentation of sklearn LinearRegression:
https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LinearRegression.html
'''model = LinearRegression()
# fit the model with the training datamodel.fit(train_x,train_y)
# coefficeints of the trained modelprint('\nCoefficient of model :', model.coef_)
# intercept of the modelprint('\nIntercept of model',model.intercept_)
# predict the target on the test datasetpredict_train = model.predict(train_x)print('\nItem_Outlet_Sales on training data',predict_train)
# Root Mean Squared Error on training datasetrmse_train = mean_squared_error(train_y,predict_train)**(0.5)print('\nRMSE on train dataset : ', rmse_train)
# predict the target on the testing datasetpredict_test = model.predict(test_x)print('\nItem_Outlet_Sales on test data',predict_test)
# Root Mean Squared Error on testing datasetrmse_test = mean_squared_error(test_y,predict_test)**(0.5)print('\nRMSE on test dataset : ', rmse_test)




关注公号

面的是我的公众号二维码,欢迎关注:




本文分享自微信公众号 - yale记(python_yale_learning)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部