同构与异构合奏

时间:2018-03-23 08:39:23

标签: machine-learning ensemble-learning

如果我对整体学习(同构与异构)的理解是正确的,我想和你核实。

以下陈述是否正确?

  

齐次集合是一组基于随机林的不同数据构建的相同类型的分类器,异构集合是一组构建于其上的不同类型的分类器相同的数据。

如果不正确,请您澄清这一点吗?

2 个答案:

答案 0 :(得分:4)

同构集合由具有单一类型基础学习算法的成员组成。像套袋和助推这样的流行方法会产生 通过从培训中抽样或分配权重来实现多样性 示例但通常使用单一类型的基础分类器 建立整体。

另一方面,异构集合由具有不同基础学习算法的成员组成,例如SVM,ANN和决策树。一种流行的异构集合方法是堆叠,类似于增强。

This table包含同构和异构集合模型的示例。

编辑:

同构集合方法,使用相同的特征选择方法和不同的训练数据,并将数据集分布在多个节点上  异构集合方法使用不同的特征选择方法和相同的训练数据。

答案 1 :(得分:0)

异构合奏(HEE)使用不同的微调算法。如果我们有少量估算器,它们通常会很好地工作。请注意,算法数量应始终为奇数(3+),以避免出现平局。例如,我们可以使用投票机制将决策树,支持向量机和逻辑回归结合起来以改善结果。然后,通过多数表决使用综合智慧对给定样本进行分类。除了投票外,我们还可以使用平均或堆叠来汇总模型的结果。每个模型的数据都相同。

同质合奏(HOE),例如通过在所有估计量上应用相同的算法进行装袋。这些算法不应该微调->它们应该很弱!与HEE相比,我们将使用大量估计量。请注意,该模型的数据集应单独采样以保证独立性。此外,每个模型的数据集应该不同。这将使我们在汇总每个模型的结果时更加精确。套袋减少了方差,因为采样是真正随机的。通过使用集成本身,我们可以降低过度拟合的风险,并创建一个健壮的模型。不幸的是,装袋在计算上是昂贵的。

编辑:这是代码示例

异质合奏功能

# Instantiate the individual models
clf_knn = KNeighborsClassifier(5)
clf_decision_tree= DecisionTreeClassifier()
clf_logistic_regression = LogisticRegression()

# Create voting classifier
clf_voting = VotingClassifier(
estimators=[
('knn', clf_knn),
('dt', clf_decision_tree),
('lr', clf_logistic_regression )])

# Fit it to the training set and predict
clf_voting.fit(X_train, y_train)
y_pred = clf_voting.predict(X_test)

同质合奏功能

# Instantiate the base estimator, which is a weak model (we set max depth to 3)
clf_decision_tree = DecisionTreeClassifier(max_depth=3)

# Build the Bagging classifier with 5 estimators (we use 5 decision trees)
clf_bag = BaggingClassifier(
base_estimator=clf_decision_tree,
n_estimators=5
)

# Fit the Bagging model to the training set
clf_bag.fit(X_train, y_train)

# Make predictions on the test set
y_pred = clf_bag.predict(X_test)

结论:总而言之,你说的是正确的。