Python 多标签、多类(多输出)随机森林示例&;最近的邻居在scikit学习?
有人能给出一个多输出、多类随机森林分类器和最近邻算法的基本示例吗?它们是开箱即用的,但我不知道如何使用它们,因为文档对我来说太抽象了 本质上,我必须做什么才能访问Classifier的多标签属性?我已经将我的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
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
与多标签分类相匹配。看。不是你说的多输出多类。多标签和多类是两个不同的问题。在我以上评论中的链接文档中,您可以得到哪些估计器适合于什么样的任务。