【问题标题】:Can sklearn.linear_model.Lasso recognize the categorical data type in pandas dataframe?sklearn.linear_model.Lasso 可以识别熊猫数据框中的分类数据类型吗?
【发布时间】:2020-09-06 21:39:38
【问题描述】:

我想在 sklearn 中使用套索回归来运行我的数据。 我的数据框中的所有属性都是数字类型(数字,我的意思是它们都是整数)。 但其中一些显然应该是分类的(例如,我的数据框中的“种族”属性是一个具有三个值 1、2、3 的属性,其中每个值代表一个种族)。 我所做的是首先使用astype('str') 将这些列设置为字符串类型,然后使用代码astype('categorical') 将这些列的数据类型转换为分类。 最后,我在这些转换后的特征上使用了sklearn.linear_model.Lasso。 我的问题是sklearn.linear_model.Lasso 可以识别这些变量是分类的吗?或者处理这些类型的分类数据的唯一方法是热编码?

【问题讨论】:

    标签: python pandas scikit-learn


    【解决方案1】:

    我会使用 OneHotEncoding 将分类变量分成不同的列。但是,请确保通过删除新虚拟变量的第一列来避免“虚拟变量陷阱”。

    您希望使用 OneHotEncoding 以便您的程序能够识别出没有类别变量的类别在数值上大于其他类别。例如,假设您有一列,其中 0 = 西班牙,1 = 德国,2 = 法国。在这种情况下,您的程序会假设地理列是一个连续变量,其中 2(法国)大于 1(德国)。因此,您必须使用 OneHotEncoding 创建三个单独的 0 和 1 列。

    我希望这能回答你的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-17
      相关资源
      最近更新 更多