Python 结合两个机器学习模型的结果

Python 结合两个机器学习模型的结果,python,machine-learning,scikit-learn,decision-tree,Python,Machine Learning,Scikit Learn,Decision Tree,我有两个机器学习模型,有一个目标,我单独运行每一个,现在我希望将两者结合起来,得到一个结果 其中一个模型it内容文本带有tf idf和目标,另一个模型it内容6属性带有目标,这意味着我的所有数据it内容6属性,因此我希望在一个模型中 第一个包含两个特性 from sklearn.tree import DecisionTreeClassifier from sklearn.model_selection import train_test_split DTClass = DecisionTree

我有两个机器学习模型,有一个目标,我单独运行每一个,现在我希望将两者结合起来,得到一个结果

其中一个模型it内容文本带有tf idf和目标,另一个模型it内容6属性带有目标,这意味着我的所有数据it内容6属性,因此我希望在一个模型中

第一个包含两个特性

from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
DTClass = DecisionTreeClassifier(criterion="gini", splitter="best", 
 random_state=77)
X_train, X_test, y_train, y_test = train_test_split(bow, 
 df1["attacktype1_txt"], test_size = 1/5, random_state = 50)
DTClass.fit(X_train,y_train)
prediction = DTClass.predict(X_test)
from sklearn.metrics import accuracy_score
print("accuracy score:")
print(accuracy_score(y_test, prediction))
第二个呢

array = df.values
X = array[:,1:7]
Y = array[:,7]
 validation_size = 0.20
seed = 4
X_train, X_validation, Y_train, Y_validation = 
 model_selection.train_test_split(X, Y, test_size=validation_size, 
  random_state=seed)
    seed = 4
      scoring = 'accuracy'
      models.append(('CART', DecisionTreeClassifier()))
       results = []
     names = []
     for name, model in models:
    kfold = model_selection.KFold(n_splits=10, random_state=seed)
    cv_results = model_selection.cross_val_score(model, X_train, Y_train, 
    cv=kfold, scoring=scoring)
     results.append(cv_results)
    names.append(name)
    msg = "%s: %f (%f)" % (name, cv_results.mean(), cv_results.std())
    print(msg)
您的问题似乎不是合并模型的问题,而是合并数据的问题。除非您有理由假设模型性能会因包含数据而降低,否则应避免因拆分模型而丢失信息

在这种情况下,数据似乎有点混乱。也许可以合并到一个
X
数组(我建议在pandas中这样做)和一个
y
。如果
y标签
不兼容,则需要更正它们


此外,我建议查看以下工具:

    • 额外的“技巧”是将模型的
      准确度
      f1分数
      指定为加权投票中的权重。这可能会导致过度装配,因此请小心操作
    • 堆栈中每个模型的结果用作最终模型预测的输入。根据我的经验,这与优化的
      MLP
      单层神经网络的性能相当
  • ,及

    • 每一个都是有效的集成模型,将在经过良好校准的估计器“团队”中工作