回归算法 - 概述



回归简介

回归是另一个重要且广泛使用的统计和机器学习工具。基于回归的任务的主要目标是预测给定输入数据的连续数值输出标签或响应。输出将基于模型在训练阶段学到的内容。基本上,回归模型使用输入数据特征(自变量)及其相应的连续数值输出值(因变量或结果变量)来学习输入和相应输出之间的特定关联。

Variables

回归模型的类型

Resgression

回归模型有以下两种类型:

简单回归模型 - 这是最基本的回归模型,其中预测是从数据的单个单变量特征形成的。

多元回归模型 - 顾名思义,在此回归模型中,预测是从数据的多个特征形成的。

在Python中构建回归器

Python中的回归器模型可以像我们构建分类器一样构建。Scikit-learn,一个用于机器学习的Python库,也可以用于在Python中构建回归器。

在下面的示例中,我们将构建一个基本的回归模型,该模型将一条线拟合到数据,即线性回归器。在Python中构建回归器的必要步骤如下:

步骤1:导入必要的Python包

为了使用scikit-learn构建回归器,我们需要导入它以及其他必要的包。我们可以使用以下脚本导入它:

import numpy as np
from sklearn import linear_model
import sklearn.metrics as sm
import matplotlib.pyplot as plt

步骤2:导入数据集

导入必要的包后,我们需要一个数据集来构建回归预测模型。我们可以从sklearn数据集导入它,也可以根据我们的需要使用其他数据集。我们将使用我们保存的输入数据。我们可以使用以下脚本导入它:

input = r'C:\linear.txt'

接下来,我们需要加载此数据。我们使用np.loadtxt函数来加载它。

input_data = np.loadtxt(input, delimiter=',')
X, y = input_data[:, :-1], input_data[:, -1]

步骤3:将数据组织成训练集和测试集

由于我们需要在未见过的数据上测试我们的模型,因此我们将数据集分成两部分:训练集和测试集。以下命令将执行此操作:

training_samples = int(0.6 * len(X))
testing_samples = len(X) - num_training

X_train, y_train = X[:training_samples], y[:training_samples]

X_test, y_test = X[training_samples:], y[training_samples:]

步骤4:模型评估和预测

将数据分成训练集和测试集后,我们需要构建模型。我们将为此目的使用Scikit-learn的LineaRegression()函数。以下命令将创建一个线性回归器对象。

reg_linear= linear_model.LinearRegression()

接下来,使用训练样本训练此模型,如下所示:

reg_linear.fit(X_train, y_train)

现在,最后我们需要使用测试数据进行预测。

y_test_pred = reg_linear.predict(X_test)

步骤5:绘图和可视化

预测后,我们可以使用以下脚本绘制和可视化它:

示例

plt.scatter(X_test, y_test, color='red')
plt.plot(X_test, y_test_pred, color='black', linewidth=2)
plt.xticks(())
plt.yticks(())
plt.show()

输出

Line

在上面的输出中,我们可以看到数据点之间的回归线。

步骤6:性能计算

我们还可以使用各种性能指标来计算回归模型的性能,如下所示:

示例

print("Regressor model performance:")
print("Mean absolute error(MAE) =", round(sm.mean_absolute_error(y_test, y_test_pred), 2))
print("Mean squared error(MSE) =", round(sm.mean_squared_error(y_test, y_test_pred), 2))
print("Median absolute error =", round(sm.median_absolute_error(y_test, y_test_pred), 2))
print("Explain variance score =", round(sm.explained_variance_score(y_test, y_test_pred), 2))
print("R2 score =", round(sm.r2_score(y_test, y_test_pred), 2))

输出

Regressor model performance:
Mean absolute error(MAE) = 1.78
Mean squared error(MSE) = 3.89
Median absolute error = 2.01
Explain variance score = -0.09
R2 score = -0.09

机器学习回归算法的类型

最有用的和流行的机器学习回归算法是线性回归算法,它进一步分为两种类型:

  • 简单线性回归算法

  • 多元线性回归算法。

我们将在下一章讨论它并在Python中实现它。

应用

机器学习回归算法的应用如下:

预测或预测分析 - 回归的重要用途之一是预测或预测分析。例如,我们可以预测GDP、油价或简单来说是随时间推移而变化的定量数据。

优化 - 我们可以借助回归优化业务流程。例如,商店经理可以创建一个统计模型来了解客户到来的高峰时间。

错误修正 - 在业务中,做出正确的决策与优化业务流程同样重要。回归也可以帮助我们做出正确的决策以及纠正已实施的决策。

经济学 - 它是经济学中最常用的工具。我们可以使用回归来预测供给、需求、消费、库存投资等。

金融 - 金融公司始终对最小化风险投资组合感兴趣,并希望了解影响客户的因素。所有这些都可以通过回归模型来预测。

广告