【发布时间】:2019-04-01 11:39:04
【问题描述】:
我有一个看起来像
的数据集 A B C D sex weight
0.955136 0.802256 0.317182 -0.708615 female normal
0.463615 -0.860053 -0.136408 -0.892888 male obese
-0.855532 -0.181905 -1.175605 1.396793 female overweight
-1.236216 -1.329982 0.531241 2.064822 male underweight
-0.970420 -0.481791 -0.995313 0.672131 male obese
在给定 features X= [A,B,C,D] 和标签 y=[sex, weight] 的情况下,我想训练一个机器学习模型,该模型能够在给定特征 A、B 的情况下预测一个人的性别和体重, C 和 D. 如何做到这一点?您能否建议任何可以帮助我实现这一目标的图书馆或阅读材料?
为了方便测试,可以使用如下代码人工生成数据集:
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(100, 4), columns=list('ABCD'))
df['sex'] = [np.random.choice(['male', 'female']) for x in range(len(df))]
df['weight'] = [np.random.choice(['underweight',
'normal', 'overweight', 'obese']) for x in range(len(df)) ]
【问题讨论】:
-
这是一个多输出多类任务,不是多标签。它们之间有细微的差别。您可以为每个
y训练单独的模型(一个模型用于性别,另一个用于体重,如下面的答案所示)或使用支持此类任务的分类器。见"Support multiclass-multioutput" here。
标签: python scikit-learn multilabel-classification