我对编码(我不熟悉此类任务)分类变量有一些疑问,以便将它们用作逻辑回归或 SVM 等模型中的参数。我的数据集如下所示
Text Symbol Note Account Age Label
There is a red car ! red John 24 1
My bag was very expensive ? orange Luke 36 0
Where are my keys? @ red Red 58 1
I promise: I will never let you go! ... green Aoife 28 0
文本中存储了来自社区用户的评论;符号包括用户最常用的符号;注表示其等级:绿色为经验丰富,红色为新入职者;帐户是用户名。标签给了我关于用户可信度的信息:如果 0 用户不是假的;如果一个用户可能是一个可能的机器人。
我想根据当前信息对新用户进行分类(见上列)。我的数据集包括 1000 多行和 400 个用户。由于要使用分类器,我需要对分类字段进行编码,因此我尝试通过MultiColumnLabelEncoder在 sklearn 中使用来执行以下操作:
MultiColumnLabelEncoder(columns = ['Text', 'Symbol', 'Note', 'Account']).fit_transform(df)
其中 df 是我的数据框。但是,我知道 onehotencoder 也应该是可取的。我还包括帐户,因为可能有来自同一帐户的更多评论,所以如果我将一个帐户归类为假帐户,并且我从同一帐户收到新评论,那么这个帐户很容易被检测为假的。正如我之前提到的,目标是根据给定的信息(符号、注释、年龄、文本)以一定的准确性对测试集中的新元素进行分类,即寻找这些变量之间可能的相关性可以让我说一个新帐户是假的(1)还是假的(0)。
如您所见,问题与分类器有关,其中参数不仅是数字的,而且是分类的。
对于数据预处理(去除停用词和清理数据),我使用了 nltk 的 Python 包;关于特征提取(这应该是一个关键点,因为它与下一步相关联,即使用分类器来预测类 - 1 或 0),我发现很难理解我应该从编码中得到什么输出以便成为能够在我的模型中使用上述信息作为输入(其中目标称为标签,它是二进制值)。我使用逻辑回归作为分类器,也使用 SVM。
我的预期输出,如果用户 X 的年龄为 16 岁,符号 #、note Wonderful 和 note red(新加入者)将被分类为具有一定百分比的假货。
如果有人可以逐步向我解释将我的数据集转换为数据集的方法,我将不胜感激,我可以在逻辑回归中使用其变量来确定新用户的标签(假或非假)。