Yinxing/LLM_Dataset
0637
1from sklearn.model_selection import GridSearchCV2from sklearn.metrics import confusion_matrix, precision_score, recall_score, accuracy_score, f1_score3import numpy as np4def my_evaluation(y, pred):5 # 正解と予測値を入れると自動で評価してくれます。6 print('混同行列:')7 print(confusion_matrix(y, pred))8 accuracy = accuracy_score(y, pred)9 10 print("正解率: %.3f" % accuracy)11 12 if len(np.unique(y))==2:13 precision = precision_score(y, pred)14 recall = recall_score(y, pred)15 f1 = f1_score(y, pred)16 print("精度: %.3f" % precision)17 print("再現率: %.3f" % recall)18 print("F1スコア: %.3f" % f1)19 20 21# 万能関数22def my_model(X_train, X_test, y_train, y_test, model, name=''):23 # モデル訓練24 model.fit(X_train, y_train)25 26 pred = model.predict(X_test)# 予測27 # モデル評価28 print(f'モデル名:{name}')29 my_evaluation(y_test, pred)30 return model31 32def my_best_model(X_train, X_test, y_train, y_test, model,params, name=''):33 # モデル訓練34 # 基礎モデル、パラメーター集合35 models = GridSearchCV(model, params)36 models.fit(X_train, y_train)37 38 best_model = models.best_estimator_39 pred = best_model.predict(X_test)# 予測40 # モデル評価41 print(f'モデル名:{name}')42 my_evaluation(y_test, pred)43 return best_model44 45 46 47 