龙空技术网

监督学习常见的一种回归算法:多元线性回归

运维开发木子李 67

前言:

如今兄弟们对“编程常用的数学算法有”大体比较重视,各位老铁们都想要学习一些“编程常用的数学算法有”的相关知识。那么小编也在网摘上网罗了一些有关“编程常用的数学算法有””的相关内容,希望姐妹们能喜欢,同学们快快来学习一下吧!

多元线性回归是机器学习中常见的一种回归算法,用于建立一个目标变量与多个自变量之间的线性关系模型。其数学表示为 y = b0 + b1x1 + b2x2 + ... + bn*xn,其中 y 是目标变量,x1, x2, ..., xn 是自变量,b0, b1, b2, ..., bn 是回归系数。

多元线性回归的目标是找到最佳的回归系数 b0, b1, b2, ..., bn,使得预测值与实际观测值之间的误差最小化。同样,常用的方法是最小二乘法,通过最小化残差平方和来求解回归系数的值。

多元线性回归的步骤如下:收集数据:收集包含目标变量和多个自变量的数据集。数据预处理:对数据进行清洗、转换和集成等预处理操作。拟合模型:使用最小二乘法拟合多元线性回归模型,得到回归系数 b0, b1, b2, ..., bn。模型评估:评估模型的性能,常见的指标包括均方误差(MSE)、平均绝对误差(MAE)等。预测:使用模型进行预测,给定新的自变量值 x1, x2, ..., xn,通过回归模型计算出对应的目标变量值 y。

多元线性回归适用于有多个自变量和一个目标变量之间的线性关系的情况。它可以更全面地考虑多个因素对目标变量的影响,但也需要注意自变量之间的相关性和共线性问题,以避免模型的不稳定性和过拟合现象。

例子:

首先,我们需要导入所需的库,如numpy用于数值计算和sklearn.linear_model用于建立线性回归模型。

import numpy as npfrom sklearn.linear_modelimport LinearRegression 

然后,我们定义一个多元的数据集,包含多个自变量 X 和一个目标变量 y。

X = np.array([[1, 2], [2, 4], [3, 6], [4, 8], [5, 10]])y = np.array([3, 5, 7, 9, 11])

接下来,我们可以创建一个LinearRegression对象,并使用fit方法拟合多元线性回归模型。

regressor = LinearRegression()regressor.fit(X, y)

然后,我们可以使用模型预测新的观测值。

new_x = np.array([[6, 12], [7, 14]])y_pred = regressor.predict(new_x)

最后,我们可以打印出预测结果。

print(y_pred)

完整的代码如下:

import numpy as npfrom sklearn.linear_model import LinearRegressionX = np.array([[1, 2], [2, 4], [3, 6], [4, 8], [5, 10]])y = np.array([3, 5, 7, 9, 11])regressor = LinearRegression()regressor.fit(X, y)new_x = np.array([[6, 12], [7, 14]])y_pred = regressor.predict(new_x)print(y_pred)

运行以上代码,将得到预测结果,即新观测值对应的目标变量的估计值。

算法实现第1步: 数据预处理导入库

import pandas as pdimport numpy as np
导入数据集
dataset = pd.read_csv('50_Startups.csv')X = dataset.iloc[ : , :-1].valuesY = dataset.iloc[ : ,  4 ].values
将类别数据数字化
from sklearn.preprocessing import LabelEncoder, OneHotEncoderlabelencoder = LabelEncoder()X[: , 3] = labelencoder.fit_transform(X[ : , 3])onehotencoder = OneHotEncoder(categorical_features = [3])X = onehotencoder.fit_transform(X).toarray()
躲避虚拟变量陷阱
X = X[: , 1:]
拆分数据集为训练集和测试集
from sklearn.model_selection import train_test_splitX_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size = 0.2, random_state = 0)
第2步: 在训练集上训练多元线性回归模型
from sklearn.linear_model import LinearRegressionregressor = LinearRegression()regressor.fit(X_train, Y_train)
Step 3: 在测试集上预测结果
y_pred = regressor.predict(X_test)

数据集下载:

代码:

# Importing the librariesimport pandas as pdimport numpy as np# Importing the datasetdataset = pd.read_csv('../datasets/50_Startups.csv')X = dataset.iloc[ : , :-1].valuesY = dataset.iloc[ : ,  4 ].values# Encoding Categorical datafrom sklearn.preprocessing import LabelEncoder, OneHotEncoderlabelencoder = LabelEncoder()X[: , 3] = labelencoder.fit_transform(X[ : , 3])onehotencoder = OneHotEncoder(categorical_features = [3])X = onehotencoder.fit_transform(X).toarray()# Avoiding Dummy Variable TrapX = X[: , 1:]# Splitting the dataset into the Training set and Test setfrom sklearn.model_selection import train_test_splitX_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size = 0.2, random_state = 0)# Fitting Multiple Linear Regression to the Training setfrom sklearn.linear_model import LinearRegressionregressor = LinearRegression()regressor.fit(X_train, Y_train)# Predicting the Test set resultsy_pred = regressor.predict(X_test)# regression evaluationfrom sklearn.metrics import r2_scoreprint(r2_score(Y_test, y_pred))

标签: #编程常用的数学算法有