我正在使用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模型持久性来计算评估指标?
答案 0 :(得分:0)
我是我的错,我在以下代码行:y_pred = clf.predict(X_test)
之后忘记了以下代码行:clf=clf.fit(X_train,y_train)
当我运行以下指标:score = Source_project_model.score(X_test, y_test)
时,效果很好
谢谢