实现机器学习的循序渐进指南VII——Blending

目录

介绍

混合(Blending)模型

混合(Blending)架构

混合(Blending)实现

混合(Blending)分类

结论与分析


介绍

混合(Blending)是一种模型融合方法,而不是传统的机器学习算法。Netflix中的*表演者使用混合(Blending),这被认为是一种堆叠形式。混合(Blending)更像是工程方法,因此,本文中的方程式很少。 

混合(Blending)模型

混合(Blending)架构

一般混合模型中有两层。在第一层中,我们从原始训练集创建一个小型holdset。剩余训练数据用于生成模型以给出保持集的预测。在第二层中,使用holdset作为训练集来训练第二层中的模型。混合的整个过程如下所示。

实现机器学习的循序渐进指南VII——Blending

                                                                                     图1.混合架构

混合(Blending)实现

在第一层混合中,有几个单独的分类器,它们可以是不同的或相同的。所有分类器使用图1中所示的蓝色数据生成模型。然后,训练的模型给出橙色数据的预测,其将用作第二层中的训练数据。第一层的代码如下所示:

train_data1, train_data2, train_label1, train_label2 = train_test_split(train_data, train_label, test_size=0.5, random_state=2019)
# train set in the second layer
train_predict_feature = np.zeros((train_data2.shape[0], self.k))
trained_model = []

# the first layer in Blending
for j, clf in enumerate(self.classifier_set):
    # train each submodel
    print(j, clf)
    clf.train(train_data1, train_label1)
    train_predict_feature[:, j] = clf.predict(train_data2)[:, 0]
    # save the trained model in the first layer
    trained_model.append(clf)

在第二层中,我们使用单层感知器作为分类器。我们使用第一层生成的训练数据训练分类器,其代码如下所示:

# the second layer in Blending
layer2_clf = PerceptronClassifier()
layer2_clf.train(train_predict_feature, train_label2)

混合(Blending)分类

对于混合的测试过程,还有两层。在第一层中,测试集被输入到第一层中的训练分类器,即,用蓝色数据训练的分类器。在第二层中,预测结果被输入到第二层中的训练分类器,即,用橙色数据训练的分类器。然后,输出是最终预测。测试代码如下所示:

test_predict_feature = np.zeros((test_data.shape[0], self.k))
# the first layer in Blending
for j, clf in enumerate(self.layer1_classifier_set):
    test_predict_feature[:, j] = clf.predict(test_data)[:, 0]

# the second layer in Blending
probability = self.layer2_classifier.predict(test_predict_feature)

结论与分析

混合(Blending)是一种更简单的模型融合方法,其性能受所选分类器的影响。因此,有必要花时间在它上面。在这篇文章中,我们使用下面的分类器集

clfs = [PerceptronClassifier(), PerceptronClassifier(), LogisticRegressionClassifier(), LogisticRegressionClassifier()]

实现机器学习的循序渐进指南VII——Blending

检测性能如上所示。很容易知道,当运行时间稍大时,检测性能优于其他性能。

可以在MachineLearning中找到本文中的相关代码和数据集  。

有兴趣的小伙伴可以查看上一篇

 

原文地址:https://www.codeproject.com/Articles/4354591/Step-by-Step-Guide-to-Implement-Machine-Learning-5

上一篇:《A Two-Step Disentanglement Method》keras 实践


下一篇:maven配置文件详解