求助前輩,我已經通過word2vec庫訓練了我的模型,老師要求我評估一下模型的準確率、召回率
訓練程序如下:
[/color]
[color=#FF6600]import pickle
import jieba.analyse
from gensim.test.utils import common_texts, get_tmpfile
from gensim.models import word2vec
with open('F:\csdn\csdn.txt',encoding='gbk') as f:
document = f.read()
document_cut = jieba.cut(document)
result = ' '.join(document_cut)
with open('F:\csdn\mi.txt', 'w',encoding="utf-8") as f2:
f2.write(result)
sentences = word2vec.LineSentence('F:\csdn\mi.txt')
path = get_tmpfile("csdn.model") #創建臨時檔案
model = word2vec.Word2Vec(sentences, sg=1,hs=1,min_count=10,sample=1e-3,window=10,size=200,alpha=0.025,seed=1)
with open('scdncsdn.model', 'wb') as f:
pickle.dump(model, f)
得到了模型
我想用sklearn去評估召回率和準確率,但不知道y_pred與y_true怎么寫?我這個是無標簽資料。
求前輩們幫幫忙,告訴我該怎么做
網上百度的這個評估方法,我不知道如何改成我的模型...
import pickle
from sklearn.neighbors import KNeighborsClassifier
from sklearn import datasets
from sklearn.model_selection import train_test_split
pickle_in = open('scdncsdn.model','rb')
model = pickle.load(pickle_in)
iris = datasets.load_iris()
iris_X = iris.data
iris_y = iris.target
X_train,X_test,y_train,y_test=train_test_split(iris_X,iris_y,test_size=0.9)
knn = KNeighborsClassifier()
knn.fit(X_train, y_train)
params = knn.get_params()
print(params)
y_predict = knn.predict(X_test)
score = knn.score(X_test,y_test)
print("預測得分為:%s"%score)
uj5u.com熱心網友回復:
這種沒有label的資料要想得到我們平常理解的準確率、召回率是不可能的,我想你老師應該是其他意思,他的意思就是想讓你給他你這個模型的效果。那么你完全可以有兩種方式完成這個要求1:利用tensorboard或者其他工具畫出來散點圖,看看接近的地方的那些是不是同一個型別的
2:word2vec訓練出來的是每個詞的向量,你可以做一個工具,輸入一個詞,根據向量的相似性列印出來top10的相似
用這個就可以完成任務了
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/81612.html
標籤:人工智能技術
上一篇:Vue-cli專案打包越來越慢
