如果我对整体学习(同构与异构)的理解是正确的,我想和你核实。
以下陈述是否正确?
齐次集合是一组基于随机林的不同数据构建的相同类型的分类器,异构集合是一组构建于其上的不同类型的分类器相同的数据。
如果不正确,请您澄清这一点吗?
答案 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)
结论:总而言之,你说的是正确的。