python 中具有多种特征类型的机器学习

Machine learning with multiple feature types in python

我能够在 Python 中使用 scikit-learn 和 NLTK 模块进行一些简单的机器学习。但是在使用具有不同值类型(数字、字符串列表、yes/no 等)的多个特征进行训练时,我遇到了问题。在下面的数据中,我有一个 word/phrase 列,我在其中提取信息并创建相关列(例如,长度列是 'word/phrase' 的字符长度)。标签栏是标签。

Word/phrase Length  '2-letter substring'    'First letter'  'With space?'       Label
take action 10  ['ta', 'ak', 'ke', 'ac', 'ct', 'ti', 'io', 'on']    t   Yes     A
sure    4   ['su', 'ur', 're']  s   No      A
That wasn't     10  ['th', 'ha', 'at', 'wa', 'as', 'sn', 'nt']  t   Yes     B
simply  6   ['si', 'im', 'mp', 'pl', 'ly']  s   No      C
a lot of    6   ['lo', 'ot', 'of']  a   Yes     D
said    4   ['sa', 'ai', 'id']  s   No      B

我是否应该将它们制作成一本字典,然后使用 sklearn 的 DictVectorizer 将它们保存在工作记忆中?然后在训练 ML 算法时将这些特征视为一个 X 向量?

大多数机器学习算法都使用数字,因此您可以将分类值和字符串转换为数字。

热门 python 机器学习库 scikit-learn 有 whole chapter dedicated to preprocessing of the data。使用 'yes/no' 一切都很简单 - 只需输入 0/1 即可。

在许多其他重要事项中,它解释了 categorical data preprocessing using their OneHotEncoder 的过程。

当您处理文本时,您还必须以合适的方式转换数据。一种常见的文本特征提取策略是 tf-idf score, and I wrote a tutorial here.