Python:如何处理数据集中的分类值来构建模型

数据挖掘 预测建模 scikit-学习 逻辑回归 分类数据 多类分类
2022-03-03 14:18:12

我有一个训练数据框dfTrain,输出dfTrain.head()如下所示:

    C0 C1                              C2   C3 C4  C5               C6  
0   1  73                 Not in universe   0   0   0  Not in universe
1   2  58  Self-employed-not incorporated   4  34   0  Not in universe
2   3  18                 Not in universe   0   0   0      High school
3   4   9                 Not in universe   0   0   0  Not in universe
4   5  10                 Not in universe   0   0   0  Not in universe

共有 38 个特征,它们都是categoricalnumerical忽略C1和缩放数值特征,我正在尝试建立一个逻辑回归模型。由于数据框具有categorical功能,因此我正在创建另一个具有虚拟变量的数据框。

X = pd.get_dummies(dfTrain)

现在的形状X有 160 个特征,比dfTrain.

然后我将Xyy目标变量在哪里)传递给逻辑回归分类器

modelLogistic = LogisticRegression(C=10**-2, class_weight = 'balanced')

modelLogistic.fit(X, y)

使用的原因class_weight = 'balanced'是有 17 个类,y并且高度不平衡。

我的问题是:我的方法正确吗?我错过了什么吗?

1个回答

是的,您的方法似乎是正确的。我想指出的唯一一件事是,虽然将分类特征转换为假人是可取的,但如果你没有足够的内存,那么你甚至可以考虑分解你的分类变量。你可以在这里阅读更多另外,只要确保转换为假人后,特征数量与训练样本数量相比是合理的。