假设我对每个要分类的样本有多个观察结果。这样的问题的例子是:
将答案合并为一个答案的最灵活方式是什么?
p.s。:我不想要合奏 - 将多个模型的答案结合起来作为单个样本的输入。我想将单个模型的答案与单个样本的多个观察结合起来。
答案 0 :(得分:2)
你不想要合奏,但你可以模仿合奏的最佳实践。聚合预测有两种基本方法:
当然,您可以使用任何其他汇总统计信息进行汇总。
以下代码使用pandas
实现此想法:
import numpy as np
import pandas as pd
import sklearn.tree
object_ids = [1,1,1,2,2,2,3,3,3,3]
x = np.arange(10).reshape(10,1)
y = [0,0,0,1,0,1,1,0,1,1]
# regression
model = sklearn.tree.DecisionTreeRegressor().fit(x, y)
prediction = pd.Series(model.predict(x)).groupby(object_ids).mean()
# probabilistic_classification
model = sklearn.tree.DecisionTreeClassifier().fit(x, y)
prediction = pd.DataFrame(model.predict_proba(x)).groupby(object_ids).mean()
# 'crisp' classification
model = sklearn.tree.DecisionTreeClassifier().fit(x, y)
def mode(x):
return x.value_counts().index[0]
prediction = pd.Series(model.predict(x)).groupby(object_ids).apply(mode)