微信公众号:yale记关注可了解更多的教程问题或建议,请公众号留言。
背景介绍
线性回归用于根据连续变量估算实际值(房屋成本,看涨期权,总销售额等)。在这里,我们通过拟合最佳线来建立独立变量和因变量之间的关系。该最佳拟合线称为回归线,并由线性方程Y = a * X + b表示。
理解线性回归的最佳方法是重温这种童年经历。你问一个五年级的孩子,通过增加体重的顺序来安排他们班上的人,而不是问他们的体重!你觉得孩子会怎么做?他/她可能会在人的身高和体型上进行(视觉分析),并使用这些可见参数的组合进行排列。这是现实生活中的线性回归!孩子实际上已经发现高度和构建将通过关系与权重相关联,这看起来像上面的等式。
在这个等式中:
Y - 因变量
a - 坡度
X - 自变量
b - 拦截
这些系数a和b是基于最小化数据点和回归线之间的距离的平方差的总和而导出的。
请看下面的例子。在这里,我们确定了具有线性方程y = 0.2811x + 13.9的最佳拟合线。现在使用这个等式,我们可以找到重量,知道一个人的身高。
线性回归主要有两种类型:简单线性回归和多元线性回归。简单线性回归的特征在于一个独立变量。并且,多元线性回归(顾名思义)的特征是多个(超过1个)自变量。在找到最佳拟合线时,您可以拟合多项式或曲线回归。这些被称为多项式或曲线回归。
来看使用python的scikit-learn完成的线性回归案例:
上文代码块
代码内容:
# importing required libraries import pandas as pd from sklearn.linear_model import LinearRegression from sklearn.metrics import mean_squared_error # read the train and test dataset train_data = pd.read_csv('train.csv') test_data = pd.read_csv('test.csv') print(train_data.head()) # shape of the dataset print('\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 data train_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 data test_x = test_data.drop(columns=['Item_Outlet_Sales'],axis=1) test_y = test_data['Item_Outlet_Sales'] ''' Create the object of the Linear Regression model You can also add other parameters and test your code here Some parameters are : fit_intercept and normalize Documentation of sklearn LinearRegression: https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LinearRegression.html ''' model = LinearRegression() # fit the model with the training data model.fit(train_x,train_y) # coefficeints of the trained model print('\nCoefficient of model :', model.coef_) # intercept of the model print('\nIntercept of model',model.intercept_) # predict the target on the test dataset predict_train = model.predict(train_x) print('\nItem_Outlet_Sales on training data',predict_train) # Root Mean Squared Error on training dataset rmse_train = mean_squared_error(train_y,predict_train)**(0.5) print('\nRMSE on train dataset : ', rmse_train) # predict the target on the testing dataset predict_test = model.predict(test_x) print('\nItem_Outlet_Sales on test data',predict_test) # Root Mean Squared Error on testing dataset rmse_test = mean_squared_error(test_y,predict_test)**(0.5) print('\nRMSE on test dataset : ', rmse_test)
关注公号
下面的是我的公众号二维码,欢迎关注: