コード例 #1
0
ファイル: base_task_predict.py プロジェクト: ikem55/HRsystem
 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__))
コード例 #2
0
ファイル: base_task_predict.py プロジェクト: ikem55/HRsystem
 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__))
コード例 #3
0
 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__))
コード例 #4
0
ファイル: base_task_learning.py プロジェクト: ikem55/HRsystem
 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__))
コード例 #5
0
ファイル: base_task_learning.py プロジェクト: ikem55/HRsystem
 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__))
コード例 #6
0
ファイル: jra_task_learning.py プロジェクト: ikem55/HRsystem
    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__))
コード例 #7
0
ファイル: jra_task_learning.py プロジェクト: ikem55/HRsystem
 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__))
コード例 #8
0
ファイル: base_task_learning.py プロジェクト: ikem55/HRsystem
    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__))