我有一个数据集,有两列用户帖子(帖子)和个性类型(类型),我需要根据使用此数据集的帖子进行个性类型,所以我使用随机森林回归进行预测这是我的代码:-
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%
现在我想从自定义文本中获取预测,我该如何实现?如何使用此模型单独获取帖子的个性类型。
在同一数据集中创建一个新列,即 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的所有值都包含相同的值
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% 准确率分数看起来像是过度拟合。