Python scikit-学习 : prediction on dataset with text and numeric variables

标签 python scikit-learn

我有一个项目数据集,我想使用 Python 和 scikit-learn 预测结果(成功/失败)。数据集包含多种数据类型:项目名称、项目描述等都是文本列。另一方面,项目成本是一个数字字段。

我想使用 TF-IDF 转换文本列,我可以将其用作我的模型的输入。这是我的代码:

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=1)
tfidf_transformer = TfidfTransformer()
X_train['Project Title'] = tfidf_transformer.fit_transform(X_train['Project Title'])

但是我得到了错误:

TypeError: no supported conversion for types: (dtype('O'),)

知道为什么会出现这个错误吗?

编辑:下面的示例数据

Project Title   Project Essay   Project Short Description   Project Need Statement  Project Cost    Project Type ID Project Subject Category Tree ID    Project Subject Subcategory Tree ID Project Resource Category ID    Project Grade Level Category ID Project Current Status ID
Stand Up to Bullying: Together We Can!  Did you know that 1-7 students in grades K-12 ...   Did you know that 1-7 students in grades K-12 ...   My students need 25 copies of "Bullying in Sch...   361.80  0   0   0   0   0   0

最佳答案

问题是您使用 TfidfTransformer 将计数矩阵转换为规范化 tf 或 tf-idf 表示,而不是使用 TfidfVectorizer 将原始文档集合转换为矩阵TF-IDF 特征

from sklearn.feature_extraction.text import TfidfVectorizer
X = pd.DataFrame({'Project Title': ['hello stackoverflow', 'text column', 'scikit learn', 'machine learning projects']})
vect = TfidfVectorizer(ngram_range=(1, 2))
tfidf = vect.fit_transform(X['Project Title'])
X_tfidf = pd.DataFrame(matrix.todense(), columns=vect.get_feature_names())

关于Python scikit-学习 : prediction on dataset with text and numeric variables,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52905243/

相关文章:

python - 如何仅使用 numpy(而不是 sklearn LabelEncoder)创建标签编码器?

python - 如何同步对存储数据的访问?

python - 机器学习教程中的类型错误,numpy

python - 为什么对测试数据调用 Transform() 会返回数据尚未拟合的错误?

python - 尝试在包含 Pandas Dataframe 列(包含字符串)的 TFidfVectorizer 上应用 'fit_transform()' 时出现内存错误

python - 如何打开/转换 .pkz 文件?

python - 如何在pygame中显示图像?

python - 多个列表的字典

Python:生成元组的语句的执行顺序是否有保证?多语句 lambda

python - 如何一次性执行多条SQL语句?