我想在SKL中使用套索回归来学习在我的数据上运行。
我的数据帧中的所有属性都是数值类型(所谓数值,我的意思是它们都是整数)。
但其中一些显然应该是分类的(例如,我的数据帧中的“race”属性是一个具有三个值1、2、3的属性,其中每个值代表一个种族)。
我所做的是首先使用astype('str')
将这些列设置为字符串类型,然后使用代码astype('categorical')
将这些列的数据类型转换为category类型。
最后,我在这些转换的特性上使用了sklearn.linear_model.Lasso
。
我的问题是sklearn.linear_model.Lasso
能识别出那些变量是分类的吗?或者处理这些类型的分类数据的唯一方法是热编码
我将使用OneHotEncoding将分类变量分隔为不同的列。但是,请确保通过删除新虚拟变量的第一列来避免“虚拟变量陷阱”
您希望使用OneHotEncoding,以便您的程序能够识别您的分类变量中没有一个类别的数值大于其他类别。例如,假设有一列,其中0=西班牙,1=德国,2=法国。在这种情况下,您的程序将假定地理列是一个连续变量,其中2(法国)大于1(德国)。因此,必须使用OneHotEncoding创建三个独立的0和1列
我希望这能回答你的问题
相关问题 更多 >
编程相关推荐