我想建立一个分类算法来预测一组特征的多个值。例如,假设我有一个客户人口统计数据,例如收入、年龄、性别、城市,我想预测他们将购买的 5 种顶级产品:例如,如果客户是男性,收入低于 3 万,居住在一级城市并且拥有年龄 20-35 岁——那么输出是: 1. 手机 2. 汽车 3. 家具 即有三个输出,这意味着他们最有可能购买手机、汽车和家具,概率值递减。哪种算法最适合这个问题?
一组特征的多输出分类算法
数据挖掘
分类
决策树
机器学习模型
多标签分类
2022-02-04 19:41:56
1个回答
您的问题可以被视为多类分类问题。所以,你有一个特征数据集X
和预测器y
。其中 X 包含收入、年龄、性别等。并且 y 是一个客户以更高概率购买的商品。
为了实现您的目标并预测客户的概率,您可以使用scikit-learn
Library 中的任何分类器(如果您使用 python)并predict_proba
在适合分类器后调用该方法,如以下示例所示:
from sklearn.datasets import make_classification
from sklearn.ensemble import RandomForestClassifier
# Make a random multiclass classification problem
X, y = make_classification(n_samples=1000,
n_features=10,
n_informative=10,
n_redundant=0,
n_repeated=0,
n_classes=5,
random_state=0,
shuffle=False)
# Fit any classifier
rfc = RandomForestClassifier(n_jobs=-1,max_features= 'sqrt' ,n_estimators=50, oob_score = True)
rfc.fit(X,y)
# Prediction for one example
one_example = X[10,:].reshape(1,-1)
outcome = rfc.predict_proba(one_example)
这个问题与5
类的结果是
array([[0.76, 0.12, 0.02, 0.06, 0.04]])
代表此示例(或您的案例中的客户)的每个类别的概率
其它你可能感兴趣的问题