处理分类变量的Python策略
我目前正在从事一项处理分类变量的Python策略,python,python-3.x,pandas,scikit-learn,classification,Python,Python 3.x,Pandas,Scikit Learn,Classification,我目前正在从事一项二进制分类任务,其中类是不平衡的 我有以下不同级别的category属性: time_slot: 8 levels product_type: 3 levels state: 40 levels due_day: 6 levels (Mon - Sat) lead_time: numerical in days (0-100) 现在,我计划首先使用三种算法: Logistic Regression, Decision Tree and Random Forest 当涉及到分
二进制分类
任务,其中类是不平衡的
我有以下不同级别的category
属性:
time_slot: 8 levels
product_type: 3 levels
state: 40 levels
due_day: 6 levels (Mon - Sat)
lead_time: numerical in days (0-100)
现在,我计划首先使用三种算法:
Logistic Regression, Decision Tree and Random Forest
当涉及到分类变量时,我很困惑什么样的编码策略是最好的
LabelEncoder, OneHot, BinaryEncoding?
此外,我正在考虑为lead\u time
任何提示都是有用的。我相信你的问题没有简明的答案,特别是因为你的数据集的细节还不清楚。通常最好尝试不同的方法,看看哪种方法在特定情况下效果最好。使用
scikit-learn
,您可能需要查看库
总的来说,所有的策略都有其优点和缺点。通常不鼓励对分类特征进行标签编码,因为它可能会人为引入一个顺序(特别是对于计算权重的算法,如逻辑回归
)。另一方面,一种热编码通常会增加维数,因为所有类别都转换为二进制特征。在你的例子中,可能没有那么戏剧性,但如果你有几个具有高基数的分类特征,那肯定是个坏主意
最后,您还可以查看一些能够处理开箱即用的分类特征的算法,如or
“试一试”听起来可能不尽如人意,但我认为这是一个可靠的方法。看看一个热门的enconding(OHE),它可以将您的分类数据转换为能够为您的模型提供支持的功能