我对机器学习完全是个新手,虽然我已经在我的数据集上使用了一些sci-kit分类器,但我不确定我是否正确地使用了它们。我正在使用手动标记的训练集进行监督学习。
问题是:我的数据集中每个项目都是一个字典,大约有80个键,这些键可能是文本、布尔值或整数,我希望将它们用作特征。我大约有40,000个项目,并手动标记了其中的800个。我应该选择使用仅布尔值特征,还是仅整数特征?我是否需要对特征进行归一化处理(去除均值并缩放到单位方差)?我目前甚至还没有尝试分析文本,所以可能不值得将这些特征提供给分类器。尝试使用相同类型(整数)的特征的各种排列组合是否愚蠢?也有可能是我完全错误地处理了我的数据集…它的形状是这样的:
[ [a, b, c, …], [a, b, c, …], [a, b, c, …], …]
我希望达到的目标是对数据集中的每个项目进行二元分类,基本就是根据我手动标记的“好”或“坏”。我读到一些分类器在不同数据类型上表现更好,比如伯努利朴素贝叶斯,而K最近邻在“决策边界非常不规则”时有效。
最终,我希望对几种不同算法的分类器准确性进行比较,同时希望找出一个真正适合分类我的数据的准确算法…
回答:
scikit-learn中的所有分类器都需要数值数据。布尔特征是可以的,整数特征则取决于它们是编码的分类数据、有序数据还是数值数据。
你需要进行的预处理取决于特征的类型,而不是你是否想要将它们结合使用。将它们结合使用可能是个好主意。
你可以使用CountVectorizer或TFIDFVectorizer对文本数据进行简单的转换。