在python中使用多种特征类型进行机器学习



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

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有一整章专门用于数据预处理。有了"是/否",一切都很简单——只要用0/1代替它。

在许多重要的事情中,它解释了使用他们的OneHotEncoder分类数据预处理的过程。

在处理文本时,还必须以合适的方式转换数据。文本的常见特征提取策略之一是tf-idf分数,我在这里写了一个教程。

相关内容

  • 没有找到相关文章

最新更新