def run(self): """ 渡されたexp_data_nameに基づいてSK_DATA_MODELから説明変数のデータを取得する処理を実施。pickelファイル形式でデータを保存 """ print("----" + __class__.__name__ + ": run") slack = OperationSlack() slack.post_slack_text(dt.now().strftime("%Y/%m/%d %H:%M:%S") + " start predict job:" + self.skmodel.version_str) with self.output().open("w") as target: print("------ モデル毎に予測データが違うので指定してデータ作成を実行") predict_df = self.skmodel.create_predict_data() print("Sub_get_exp_data run: predict_df", predict_df.shape) predict_df.to_pickle(self.intermediate_folder + mu.convert_date_to_str(self.end_date) + '_exp_data.pkl') print(__class__.__name__ + " says: task finished".format(task=self.__class__.__name__))
def run(self): """ | 処理の最後 """ print("---" + __class__.__name__ + ": run") with self.output().open("w") as target: exp_data = pd.read_pickle(self.intermediate_folder + mu.convert_date_to_str(self.end_date) + '_exp_data.pkl') print("------ 分類軸毎の学習モデルを作成") all_pred_df = pd.DataFrame() class_list = self.skmodel.class_list for cls_val in class_list: print("------ " + cls_val + "毎のデータを抽出して処理を実施") val_list = self.skmodel.get_val_list(exp_data, cls_val) for val in val_list: # 対象の競馬場のデータを取得する print("=============== cls_val:" + cls_val + " val:" + val + " ===========================") filter_df = self.skmodel.get_filter_df( exp_data, cls_val, val) # 予測を実施 pred_df = self.skmodel.proc_predict_sk_model( filter_df, cls_val, val) all_pred_df = pd.concat([all_pred_df, pred_df]) print("End_baoz_predict run: all_pred_df", all_pred_df.shape) import_df = self.skmodel.create_import_data(all_pred_df) if self.export_mode: print("export data") import_df.to_pickle(self.intermediate_folder + 'export_data.pkl') self.skmodel.eval_pred_data(import_df) else: self.skmodel.import_data(import_df) slack = OperationSlack() slack.post_slack_text(dt.now().strftime("%Y/%m/%d %H:%M:%S") + " finish predict job:" + self.skmodel.version_str) print(__class__.__name__ + " says: task finished".format(task=self.__class__.__name__))
def run(self): """ | 処理の最後 """ print("---" + __class__.__name__ + ": run") with self.output().open("w") as target: if os.path.exists(self.intermediate_folder + mu.convert_date_to_str(self.end_date) + '_exp_data.pkl'): exp_data = pd.read_pickle( self.intermediate_folder + mu.convert_date_to_str(self.end_date) + '_exp_data.pkl') # 予測を実施して予測結果ファイルを作成 all_df = self.skmodel.proc_predict_sk_model(exp_data) if self.test_flag: print("精度チェック") self.skmodel.eval_pred_data(all_df) else: slack = OperationSlack() slack.post_slack_text( dt.now().strftime("%Y/%m/%d %H:%M:%S") + " finish predict job:" + self.skmodel.version_str) print(__class__.__name__ + " says: task finished".format(task=self.__class__.__name__))
def run(self): # 特徴量作成処理を実施。learningの全データ分を取得してSkModel特徴作成処理を実行する print("---" + __class__.__name__ + ": run") slack = OperationSlack() slack.post_slack_text(dt.now().strftime("%Y/%m/%d %H:%M:%S") + " start Sub_create_feature_select_data job:" + self.skmodel.version_str) with self.output().open("w") as target: file_name = self.intermediate_folder + "_learning_all.pkl" with open(file_name, 'rb') as f: learning_df = pickle.load(f) self.skmodel.create_featrue_select_data(learning_df) slack.post_slack_text( dt.now().strftime("%Y/%m/%d %H:%M:%S") + " finish Sub_create_feature_select_data job:" + self.skmodel.version_str) print(__class__.__name__ + " says: task finished".format(task=self.__class__.__name__))
def run(self): # 目的変数、場コード毎に学習を実施し、学習モデルを作成して中間フォルダに格納する print("---" + __class__.__name__ + ": run") slack = OperationSlack() slack.post_slack_text(dt.now().strftime("%Y/%m/%d %H:%M:%S") + " start End_baoz_learning job:" + self.skmodel.version_str) self.create_folder() with self.output().open("w") as target: print("------ 分類軸毎の学習モデルを作成") class_list = self.skmodel.class_list for cls_val in class_list: print("------ " + cls_val + "毎のデータを抽出して処理を実施") file_name = self.intermediate_folder + cls_val + "_list.pkl" created_model_list = [ s for s in os.listdir(self.skmodel.model_folder + 'third/') if cls_val in s ] with open(file_name, 'rb') as f: val_list = pickle.load(f) for val in val_list: # 対象の競馬場のデータを取得する print(" cls_val:" + cls_val + " val:" + val) created_model_list_val = [ s for s in created_model_list if val in s ] print(created_model_list_val) if len(created_model_list_val) == len( self.skmodel.obj_column_list): print("\r\n ----- skip create model ---- \r\n") else: file_name = self.intermediate_folder + "learning_" + cls_val + "_" + val + ".pkl" with open(file_name, 'rb') as f: df = pickle.load(f) # 学習を実施 self.skmodel.proc_learning_sk_model( df, cls_val, val) slack.post_slack_text(dt.now().strftime("%Y/%m/%d %H:%M:%S") + " finish End_baoz_learning job:" + self.skmodel.version_str) print(__class__.__name__ + " says: task finished".format(task=self.__class__.__name__))
def run(self): # 目的変数毎に学習を実施し、学習モデルを作成して中間フォルダに格納する print("---" + __class__.__name__ + ": run") if not self.test_flag: slack = OperationSlack() slack.post_slack_text(dt.now().strftime("%Y/%m/%d %H:%M:%S") + " start End_baoz_learning job:" + self.skmodel.version_str) file_name = self.intermediate_folder + "_learning_df.pkl" with open(file_name, 'rb') as f: df = pickle.load(f) # 学習を実施 self.skmodel.proc_learning_sk_model(df) if not self.test_flag: slack.post_slack_text(dt.now().strftime("%Y/%m/%d %H:%M:%S") + " finish End_baoz_learning job:" + self.skmodel.version_str) print(__class__.__name__ + " says: task finished".format(task=self.__class__.__name__))
def run(self): # SkModelを読んで学習データを作成する。すべてのデータを作成後、競馬場毎のデータを作成する print("----" + __class__.__name__ + ": run") mu.create_folder(self.intermediate_folder) if not self.test_flag: slack = OperationSlack() slack.post_slack_text(dt.now().strftime("%Y/%m/%d %H:%M:%S") + " start Sub_get_learning_data job:" + self.skmodel.version_str) with self.output().open("w") as target: print("------ learning_dfを作成") self.skmodel.create_learning_data() print("------ 学習用のデータを保存") self.skmodel.learning_df.to_pickle(self.intermediate_folder + '_learning_df.pkl') if not self.test_flag: slack.post_slack_text(dt.now().strftime("%Y/%m/%d %H:%M:%S") + " finish Sub_get_learning_data job:" + self.skmodel.version_str) print(__class__.__name__ + " says: task finished".format(task=self.__class__.__name__))
def run(self): # SkModelを読んで学習データを作成する。すべてのデータを作成後、競馬場毎のデータを作成する print("----" + __class__.__name__ + ": run") slack = OperationSlack() slack.post_slack_text(dt.now().strftime("%Y/%m/%d %H:%M:%S") + " start Sub_get_learning_data job:" + self.skmodel.version_str) with self.output().open("w") as target: print("------ learning_dfを作成") self.skmodel.create_learning_data() print("------ 分類軸用の列を削除") save_learning_df = self.skmodel.get_all_learning_df_for_save() print("------ 学習用の全データを保存") save_learning_df.to_pickle(self.intermediate_folder + '_learning_all.pkl') print("------ 分類軸毎の学習処理を開始") class_list = self.skmodel.class_list for cls_val in class_list: print("------ " + cls_val + "毎のデータを抽出して保存") val_list = self.skmodel.get_val_list(self.skmodel.learning_df, cls_val) val_list.to_pickle(self.intermediate_folder + cls_val + "_list.pkl") for val in val_list: filter_df = self.skmodel.get_filter_df( self.skmodel.learning_df, cls_val, val) print("Sub_get_learning_data run: filter_df", filter_df.shape) filter_df.to_pickle(self.intermediate_folder + "learning_" + cls_val + "_" + val + ".pkl") slack.post_slack_text(dt.now().strftime("%Y/%m/%d %H:%M:%S") + " finish Sub_get_learning_data job:" + self.skmodel.version_str) print(__class__.__name__ + " says: task finished".format(task=self.__class__.__name__))