Python 多标签、多类(多输出)随机森林示例&;最近的邻居在scikit学习?

Python 多标签、多类(多输出)随机森林示例&;最近的邻居在scikit学习?,python,scikit-learn,neural-network,random-forest,Python,Scikit Learn,Neural Network,Random Forest,有人能给出一个多输出、多类随机森林分类器和最近邻算法的基本示例吗?它们是开箱即用的,但我不知道如何使用它们,因为文档对我来说太抽象了 本质上,我必须做什么才能访问Classifier的多标签属性?我已经将我的Y标签设置为list()格式,如下所示。我还改变了我的标签: from sklearn.preprocessing import MultiLabelBinarizer mlb = MultiLabelBinarizer() YC = mlb.fit_transform(df['combin

有人能给出一个多输出、多类随机森林分类器和最近邻算法的基本示例吗?它们是开箱即用的,但我不知道如何使用它们,因为文档对我来说太抽象了

本质上,我必须做什么才能访问Classifier的多标签属性?我已经将我的
Y
标签设置为
list()
格式,如下所示。我还改变了我的标签:

from sklearn.preprocessing import MultiLabelBinarizer
mlb = MultiLabelBinarizer()
YC = mlb.fit_transform(df['combined_atc'].astype(str))
数据集片段:

X1   X2     X3        Y
red  NaN    NaN       [candy, pen]
red  green  blue      [clown, rainbow]
red  yellow NaN       [sun, car, shirt]
yello pink  black     [shirt, car]
只要我能预测Y中的一项,我就“正确”。 所以如果我有一个X1的“红色”,那么如果我说“糖果”或“钢笔”或“糖果和钢笔”,那么我是对的。没有内在的秩序,也没关系

这是一个多标签、多类别的问题吗?这里理想的算法是什么?有什么现成的东西支持我的用例吗

import pandas
from sklearn import model_selection
from sklearn.ensemble import RandomForestClassifier


rf = RandomForestClassifier(n_jobs=2)#use 2 cores
seed=7
max_features = 'auto'
num_trees = 2

kfold = model_selection.KFold(n_splits=3, random_state=seed)

model = RandomForestClassifier(n_estimators=num_trees, 
max_features=max_features, verbose=1)

results = model_selection.cross_val_score(model, X, YC, cv=kfold)
print(results.mean())

您提出的问题实际上是一个多标签多类问题。在
scikit学习
决策树
随机林
近邻
支持开箱即用的多标签多类别问题

另一种方法是为数据集中的每个唯一标签构建一个模型。因此,将问题转化为每个标签的二进制分类问题


如果您想创建您提到的自定义评估函数,您可以使用
度量。使\u scorer

与多标签分类相匹配。看。不是你说的多输出多类。多标签和多类是两个不同的问题。在我以上评论中的链接文档中,您可以得到哪些估计器适合于什么样的任务。