使用Python进行多种特征类型的机器学习

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

Word/phrase Length  '2-letter substring'    'First letter'  'With space?'       Labeltake action 10  ['ta', 'ak', 'ke', 'ac', 'ct', 'ti', 'io', 'on']    t   Yes     Asure    4   ['su', 'ur', 're']  s   No      AThat wasn't     10  ['th', 'ha', 'at', 'wa', 'as', 'sn', 'nt']  t   Yes     Bsimply  6   ['si', 'im', 'mp', 'pl', 'ly']  s   No      Ca lot of    6   ['lo', 'ot', 'of']  a   Yes     Dsaid    4   ['sa', 'ai', 'id']  s   No      B

我应该将它们制作成一个字典,然后使用sklearn的DictVectorizer在工作内存中保存它们吗?然后在训练机器学习算法时将这些特征视为一个X向量?


回答:

大多数机器学习算法使用数字进行处理,因此你需要将分类值和字符串转换为数字。

流行的Python机器学习库scikit-learn有一整章专门用于数据预处理。对于“是/否”,处理起来很简单 – 只需用0/1代替即可。

其中还解释了使用他们的分类数据预处理过程,利用他们的OneHotEncoder

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

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注