如何在scikt-learn中使用持久性模型计算评估指标

时间:2019-03-21 09:26:16

标签: python-3.x scikit-learn joblib

我正在使用joblib内置程序运行此模型持久性。我能够保存模型,现在我想测试概率并评估新项目的结果。

from sklearn.tree import DecisionTreeClassifier
from sklearn import tree
from sklearn.model_selection import train_test_split
from sklearn.externals import joblib
from joblib import dump, load
import pandas as pd
from sklearn.metrics import classification_report
from sklearn.metrics import confusion_matrix
from sklearn import metrics
from sklearn.metrics import accuracy_score
train=pd.read_csv('source_project.csv')
features_col=['First_Status','Reputation','Changed_file','Evaluation_time','Num_Comments_before_Closed','Num_commits_before_Closed','Num_lines_added','Num_lines_deleted']
X=train[features_col].dropna()
y=train.classes
test_size=0.3 #could also specify train_size=0.7 instead
train_size=0.7 
seed=7
X_train,X_test,y_train,y_test=train_test_split(X,y,random_state=0,train_size=train_size)
clf = tree.DecisionTreeClassifier()
clf=clf.fit(X_train,y_train)

#Saving the model
with open('SourceProject_joblib', 'wb') as trained_model:
    joblib.dump(clf, trained_model)
#close the model
trained_model.close()

#Open the model
Open_Joblib_model=open('SourceProject_joblib', 'rb')

Source_project_model=joblib.load(Open_Joblib_model)
print(Source_project_model)

#confirming the number of feature
print(Source_project_model.n_features_)

#importing the target data
predicting_data=pd.read_csv('angularDistributionData.csv')

target_predict=Source_project_model.predict(predicting_data)
#Testing the probability of positive outcome of a new project
target_predict=Source_project_model.predict(predicting_data)
print(target_predict)

但是当我要打印以下内容时:

print("Accuracy: {0:.2f}%".format(accuracy_score(y_test,target_predict)*100))

我收到此错误:ValueError: Found input variables with inconsistent numbers of samples: [34084, 8971]

我想知道如何使用joblib模型持久性来计算评估指标?

1 个答案:

答案 0 :(得分:0)

我是我的错,我在以下代码行:y_pred = clf.predict(X_test)之后忘记了以下代码行:clf=clf.fit(X_train,y_train) 当我运行以下指标:score = Source_project_model.score(X_test, y_test)时,效果很好

谢谢