python - 如何在 sklearn 中编码分类变量?

标签 python machine-learning scikit-learn

我正在尝试使用 UCI 存储库中的汽车评估数据集,我想知道是否有一种方便的方法可以在 sklearn 中对分类变量进行二值化。一种方法是使用 LabelBinarizer 的 DictVectorizer 但这里我得到 k 不同的特征,而你应该只有 k-1 以避免共线性化。 我想我可以编写自己的函数并删除一列,但是这种簿记很乏味,有没有一种简单的方法可以执行此类转换并得到一个稀疏矩阵?

最佳答案

如果您的数据是 pandas DataFrame,那么您可以简单地调用 get_dummies。 假设您的数据框是 df,并且您希望每个级别的变量“键”都有一个二进制变量。您可以简单地调用:

pd.get_dummies(df['key'])

然后删除其中一个虚拟变量,以避免多重共线性问题。 我希望这有助于...

关于python - 如何在 sklearn 中编码分类变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15021521/

相关文章:

python - scikit learn安装难度

python - GridSearchCV 在任何 n_jobs 的窗口上卡住

python - 正则表达式匹配引号括起来的字符串文字而不匹配其他字符串

python - 为 s3 存储桶对象启用版本控制

r - 如何从插入符网格搜索中选择最佳的 ntree 值?

c++ - 我的分类神经网络存在逻辑问题

python - sklearn KMeans 中的 fit() 与 fit_predict() 方法

python - 使用 Python 请求的 SSL 客户端身份验证

python - 如何在 python Pandas 中执行/解决条件连接?

machine-learning - Keras model.compile 指标参数的默认行为是什么?