📅  最后修改于: 2020-12-10 05:38:16             🧑  作者: Mango
回归是另一个重要且广泛使用的统计和机器学习工具。基于回归的任务的主要目标是针对给定的输入数据,预测输出标签或响应(连续的数值)。输出将基于模型在训练阶段学到的知识。基本上,回归模型使用输入数据特征(独立变量)及其对应的连续数值输出值(因变量或结果变量)来学习输入与对应输出之间的特定关联。
回归模型具有以下两种类型-
简单回归模型-这是最基本的回归模型,其中预测是根据数据的单变量特征形成的。
多元回归模型-顾名思义,在此回归模型中,预测是根据数据的多个特征形成的。
可以像构造分类器一样构造Python的Regressor模型。 Scikit-learn,一个用于机器学习的Python库,也可以用于在Python构建一个回归器。
在下面的示例中,我们将构建基本的回归模型,该模型将使一条线适合数据,即线性回归。在Python中构建回归器的必要步骤如下-
为了使用scikit-learn构建回归器,我们需要将其与其他必要的软件包一起导入。我们可以使用以下脚本导入-
import numpy as np
from sklearn import linear_model
import sklearn.metrics as sm
import matplotlib.pyplot as plt
导入必要的程序包后,我们需要一个数据集来构建回归预测模型。我们可以从sklearn数据集中导入它,也可以根据需要使用其他一个。我们将使用保存的输入数据。我们可以在以下脚本的帮助下导入它-
input = r'C:\linear.txt'
接下来,我们需要加载此数据。我们正在使用np.loadtxt函数加载它。
input_data = np.loadtxt(input, delimiter=',')
X, y = input_data[:, :-1], input_data[:, -1]
由于我们需要在看不见的数据上测试模型,因此,我们将数据集分为两部分:训练集和测试集。以下命令将执行它-
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:]
将数据划分为训练和测试后,我们需要构建模型。为此,我们将使用Scikit-learn的LineaRegression()函数。以下命令将创建一个线性回归对象。
reg_linear= linear_model.LinearRegression()
接下来,使用以下训练样本训练该模型:
reg_linear.fit(X_train, y_train)
现在,最后我们需要对测试数据进行预测。
y_test_pred = reg_linear.predict(X_test)
经过预测,我们可以在以下脚本的帮助下进行绘制和可视化-
例
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()
输出
在上面的输出中,我们可以看到数据点之间的回归线。
我们还可以借助各种性能指标来计算回归模型的性能,如下所示:
例
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
最有用和最受欢迎的ML回归算法是线性回归算法,该算法进一步分为两种类型,即-
简单线性回归算法
多元线性回归算法。
我们将在下一章讨论并在Python中实现它。
ML回归算法的应用如下-
预测或预测分析-回归的重要用途之一是预测或预测分析。例如,我们可以预测GDP,石油价格或简单地说随时间推移而变化的定量数据。
优化-我们可以借助回归来优化业务流程。例如,商店经理可以创建统计模型以了解顾客来访的时间。
纠错-在业务中,做出正确的决定与优化业务流程同等重要。回归可以帮助我们做出正确的决定,也可以纠正已经实施的决定。
经济学-这是经济学中最常用的工具。我们可以使用回归来预测供应,需求,消耗,库存投资等。
金融-金融公司始终对最小化风险投资组合感兴趣,并希望了解影响客户的因素。所有这些都可以借助回归模型进行预测。