我有一个包含两列用户帖子(帖子)和性格类型(类型)的数据集,我需要根据使用此数据集的帖子的性格类型,因此我使用随机森林回归进行预测 这是我的代码:-
df = pd.read_csv('personality_types.csv')
count_vectorizer = CountVectorizer(decode_error='ignore')
X = count_vectorizer.fit_transform(df['posts'])
y = df['type'].values
Xtrain, Xtest, Ytrain, Ytest = train_test_split(X, y, test_size=0.33)
random_forest = RandomForestClassifier(n_estimators=100)
random_forest.fit(Xtrain, Ytrain)
Y_prediction = random_forest.predict(Xtest)
准确性:
random_forest.score(Xtrain, Ytrain)
acc_random_forest = round(random_forest.score(Xtrain, Ytrain) * 100, 2)
print(round(acc_random_forest,2,), "%")
100%
现在我想从自定义文本中获得联想,我该如何实现呢? 如何使用此模型分别获取帖子的个性类型。
答案 0 :(得分:0)
如果有一个df
带有与posts
相同格式的自定义文本,则可以执行以下操作:
custom_text = count_vectorizer.transform(df['custom_text'])
value_predicted = random_forest.predict(custom_text)
value_predicted
包含结果。当然,count_vectorizer
和random_forest
应该是您示例中经过训练的模型。
另外,您的示例中可能有错别字,您应该在测试中而不是在火车上检查性能:
random_forest.score()
acc_random_forest = round(random_forest.score(Xtest, Ytest) * 100, 2)
print(round(acc_random_forest,2,), "%")
Out:
<Some score>
100%的准确度得分看起来像overfitting。
答案 1 :(得分:0)
在df相同的数据集中创建一个新的列。将其命名为custom_text或user_text或其他名称。将输入存储在该列中,以使该列的所有行都包含相同的值
custom_text = input("Enter Text")
custom_text = count_vectorizer.transform(df['custom_text'])
value_predicted = random_forest.predict(custom_text)
print(value_predicted[0])
因为value_predicted的所有值都包含相同的值