Замените
df['Project Description'] = tfidf_vectorizer.fit_transform(df['Project Description'])
на
df['Project Description'] = tfidf_vectorizer.fit_transform(df['Project Description']).toarray()
Вы также можете использовать: tfidf_vectorizer.fit_transform (df ['Project Description']). Todense ()
Также не стоит просто конвертировать категории в числа.Например, если вы конвертируете A, B и C в 0,1 и 2. Они берутся как 2> 1> 0 и, следовательно, C> B> A, что обычно не так, поскольку A просто отличается от B и C.это вы можете использовать One-Hot-Encoding (в Pandas вы можете использовать 'get_dummies' для этого).Вы можете использовать приведенный ниже код для всех своих категориальных функций.
#df has all not categorical features
featurelist_categorical = ['Project Category', 'Feature A',
'Feature B']
for i,j in zip(featurelist_categorical, ['Project Category','A','B']):
df = pd.concat([df, pd.get_dummies(data[i],prefix=j)], axis=1)
Префикс функции не требуется, но он поможет вам особенно в случае нескольких категориальных функций.
Также, если вы неЕсли вы хотите разделить ваши функции на числа, по какой-то причине вы можете использовать H2O.ai.С H2O вы можете напрямую подавать категориальные переменные в модели в виде текста.