Пример #1
0
    def encode_raceuma_result_df(self, raceuma_df, dict_folder):
        """  列をエンコードする処理。騎手名、所属、転厩をラベルエンコーディングして値を置き換える。learning_modeがTrueの場合は辞書生成がされる。

        :param dataframe raceuma_df:
        :return: dataframe
        """
        temp_raceuma_df = raceuma_df.copy()
        temp_raceuma_df.loc[:, '馬ペース'] = temp_raceuma_df['馬ペース'].apply(
            lambda x: self._convert_pace(x))
        hash_tokki_column = [
            "特記コード1", "特記コード2", "特記コード3", "特記コード4", "特記コード5", "特記コード6"
        ]
        hash_tokki_dict_name = "raceuma_result_tokki"
        temp_raceuma_df = mu.hash_eoncoding(temp_raceuma_df, hash_tokki_column,
                                            3, hash_tokki_dict_name,
                                            dict_folder)
        hash_bagu_column = [
            "馬具コード1", "馬具コード2", "馬具コード3", "馬具コード4", "馬具コード5", "馬具コード6",
            "馬具コード7", "馬具コード8", "ハミ", "バンテージ", "蹄鉄"
        ]
        hash_bagu_dict_name = "raceuma_result_bagu"
        temp_raceuma_df = mu.hash_eoncoding(temp_raceuma_df, hash_bagu_column,
                                            3, hash_bagu_dict_name,
                                            dict_folder)
        hash_taikei_column = [
            "総合1", "総合2", "総合3", "左前1", "左前2", "左前3", "右前1", "右前2", "右前3",
            "左後1", "左後2", "左後3", "右後1", "右後2", "右後3", "蹄状態", "ソエ", "骨瘤"
        ]
        hash_taikei_dict_name = "raceuma_result_taikei"
        temp_raceuma_df = mu.hash_eoncoding(temp_raceuma_df,
                                            hash_taikei_column, 3,
                                            hash_taikei_dict_name, dict_folder)
        return temp_raceuma_df.copy()
Пример #2
0
 def encode_raceuma_result_df(self, raceuma_df, dict_folder):
     raceuma_df.loc[:, 'RAP_TYPE'] = raceuma_df['RAP_TYPE'].apply(
         lambda x: mu.encode_rap_type(x))
     raceuma_df.loc[:, '条件'] = raceuma_df['条件'].apply(
         lambda x: self._convert_joken(x))
     raceuma_df.loc[:, 'レースペース'] = raceuma_df['レースペース'].apply(
         lambda x: self._convert_pace(x))
     raceuma_df.loc[:, '馬ペース'] = raceuma_df['馬ペース'].apply(
         lambda x: self._convert_pace(x))
     raceuma_df.loc[:, 'ペースアップ位置'] = raceuma_df['ペースアップ位置'].fillna(0)
     raceuma_df.loc[:, '芝種類'] = raceuma_df['芝種類'].fillna('0')
     raceuma_df.loc[:, '転圧'] = raceuma_df['転圧'].fillna('0')
     raceuma_df.loc[:, '凍結防止剤'] = raceuma_df['凍結防止剤'].fillna('0')
     hash_tokki_column = [
         "特記コード1", "特記コード2", "特記コード3", "特記コード4", "特記コード5", "特記コード6"
     ]
     hash_tokki_dict_name = "raceuma_result_tokki"
     raceuma_df = mu.hash_eoncoding(raceuma_df, hash_tokki_column, 3,
                                    hash_tokki_dict_name, dict_folder)
     hash_bagu_column = [
         "馬具コード1", "馬具コード2", "馬具コード3", "馬具コード4", "馬具コード5", "馬具コード6",
         "馬具コード7", "馬具コード8", "ハミ", "バンテージ", "蹄鉄"
     ]
     hash_bagu_dict_name = "raceuma_result_bagu"
     raceuma_df = mu.hash_eoncoding(raceuma_df, hash_bagu_column, 2,
                                    hash_bagu_dict_name, dict_folder)
     hash_taikei_column = [
         "総合1", "総合2", "総合3", "左前1", "左前2", "左前3", "右前1", "右前2", "右前3",
         "左後1", "左後2", "左後3", "右後1", "右後2", "右後3", "蹄状態", "ソエ", "骨瘤"
     ]
     hash_taikei_dict_name = "raceuma_result_taikei"
     raceuma_df = mu.hash_eoncoding(raceuma_df, hash_taikei_column, 2,
                                    hash_taikei_dict_name, dict_folder)
     return raceuma_df
Пример #3
0
    def scale_df(self):
        print("scale_df")
        mmsc_columns = [
            "距離", "頭数", "枠番", "休養後出走回数", "予想人気", "先行指数順位", "馬齢", "距離増減", "前走頭数"
        ]
        mmsc_dict_name = "sc_base_mmsc"
        stdsc_columns = [
            "予想勝ち指数", "休養週数", "キャリア", "斤量比", "負担重量", "デフォルト得点", "得点V1", "得点V2",
            "得点V3", "fa_1_1", "fa_2_1", "fa_3_1", "fa_4_1", "fa_5_1", "fa_1_2",
            "fa_2_2", "fa_3_2", "fa_4_2", "fa_5_2", "fa_1_3", "fa_2_3",
            "fa_3_3", "fa_4_3", "fa_5_3", "fa_1_4", "fa_2_4", "fa_3_4",
            "fa_4_4", "fa_5_4", "fa_1_5", "fa_2_5", "fa_3_5", "fa_4_5",
            "fa_5_5"
        ]
        stdsc_dict_name = "sc_base_stdsc"

        self.base_df = mu.scale_df_for_fa(self.base_df, mmsc_columns,
                                          mmsc_dict_name, stdsc_columns,
                                          stdsc_dict_name, self.dict_folder)
        self.base_df.loc[:, "競走種別コード_h"] = self.base_df["競走種別コード"]
        self.base_df.loc[:, "場コード_h"] = self.base_df["場コード"]
        hash_track_columns = [
            "主催者コード", "競走種別コード_h", "場コード_h", "競走条件コード", "トラックコード"
        ]
        hash_track_dict_name = "sc_base_hash_track"
        self.base_df = mu.hash_eoncoding(self.base_df, hash_track_columns, 10,
                                         hash_track_dict_name,
                                         self.dict_folder)
Пример #4
0
    def encode_raceuma_before_df(self, raceuma_df, dict_folder):
        """  列をエンコードする処理。調教師所属、所属、転厩をラベルエンコーディングして値を置き換える。辞書がない場合は作成される
        騎手名とかはコードがあるからそちらを使う(作成しない)

        :param dataframe raceuma_df:
        :return: dataframe
        """
        temp_raceuma_df = raceuma_df.copy()
        temp_raceuma_df.loc[:, 'ペース予想'] = temp_raceuma_df['ペース予想'].apply(
            lambda x: self._convert_pace(x))
        temp_raceuma_df.loc[:, '調教曜日'] = temp_raceuma_df['調教曜日'].apply(
            lambda x: self._convert_weekday(x))
        temp_raceuma_df.loc[:, '放牧先ランク'] = temp_raceuma_df['放牧先ランク'].apply(
            lambda x: self._convert_rank(x))
        temp_raceuma_df.loc[:, '調教量評価'] = temp_raceuma_df['調教量評価'].apply(
            lambda x: self._convert_rank(x))
        temp_raceuma_df.loc[:, '調教師所属'] = mu.label_encoding(
            raceuma_df['調教師所属'], '調教師所属', dict_folder).astype(str)
        temp_raceuma_df.loc[:,
                            '馬主名'] = mu.label_encoding(raceuma_df['馬主名'],
                                                       '馬主名',
                                                       dict_folder).astype(str)
        temp_raceuma_df.loc[:,
                            '放牧先'] = mu.label_encoding(raceuma_df['放牧先'],
                                                       '放牧先',
                                                       dict_folder).astype(str)
        temp_raceuma_df.loc[:, '激走タイプ'] = mu.label_encoding(
            raceuma_df['激走タイプ'], '激走タイプ', dict_folder).astype(str)
        temp_raceuma_df.loc[:, '調教コースコード'] = mu.label_encoding(
            raceuma_df['調教コースコード'], '調教コースコード', dict_folder).astype(str)
        hash_taikei_column = [
            "走法", "体型01", "体型02", "体型03", "体型04", "体型05", "体型06", "体型07",
            "体型08", "体型09", "体型10", "体型11", "体型12", "体型13", "体型14", "体型15",
            "体型16", "体型17", "体型18", "体型総合1", "体型総合2", "体型総合3"
        ]
        hash_taikei_dict_name = "raceuma_before_taikei"
        temp_raceuma_df = mu.hash_eoncoding(temp_raceuma_df,
                                            hash_taikei_column, 3,
                                            hash_taikei_dict_name, dict_folder)
        hash_tokki_column = ["馬特記1", "馬特記2", "馬特記3"]
        hash_tokki_dict_name = "raceuma_before_tokki"
        temp_raceuma_df = mu.hash_eoncoding(temp_raceuma_df, hash_tokki_column,
                                            2, hash_tokki_dict_name,
                                            dict_folder)

        return temp_raceuma_df.copy()
Пример #5
0
    def _scale_df(self):
        print("scale_df")
        mmsc_columns = ["距離", "頭数", "枠番", "休養後出走回数", "先行指数順位", "馬齢", "距離増減"]
        mmsc_dict_name = "sc_base_mmsc"
        stdsc_columns = ["休養週数", "負担重量"]
        stdsc_dict_name = "sc_base_stdsc"

        self.base_df = mu.scale_df_for_fa(self.base_df, mmsc_columns, mmsc_dict_name, stdsc_columns, stdsc_dict_name, self.dict_folder)
        self.base_df.loc[:, "競走種別コード_h"] = self.base_df["競走種別コード"]
        self.base_df.loc[:, "場コード_h"] = self.base_df["場コード"]
        hash_track_columns = ["主催者コード", "競走種別コード_h", "場コード_h", "トラックコード"]
        hash_track_dict_name = "sc_base_hash_track"
        self.base_df = mu.hash_eoncoding(self.base_df, hash_track_columns, 10, hash_track_dict_name, self.dict_folder)
        hash_newtype1_columns = ["場コード", "非根幹", "頭数グループ", "性別コード", "騎手所属場コード", "見習区分", "テン乗り", "キャリア", "調教師所属場コード", "東西所属コード",
                                 "主催者コード_1", "距離_1", "場コード_1", "頭数_1", "ペース_1", "トラックコード_1", "ナイター_1", "季節_1", "非根幹_1", "距離グループ_1",
                                 "頭数グループ_1", "コース_1", "逃げ勝ち_1", "内勝ち_1", "外勝ち_1", "短縮勝ち_1", "延長勝ち_1", "人気勝ち_1", "枠番_1", "展開コード_1", "馬体重順位_1"]
        hash_newtype1_dict_name = "sc_base_hash_newtype1"
        self.base_df = mu.hash_eoncoding(self.base_df, hash_newtype1_columns, 30, hash_newtype1_dict_name, self.dict_folder)
Пример #6
0
    def _scale_df(self):
        print("scale_df")
        mmsc_columns = [
            "距離", "頭数", "枠番", "休養後出走回数", "予想人気", "先行指数順位", "馬齢", "距離増減", "前走頭数"
        ]
        mmsc_dict_name = "sc_base_mmsc"
        stdsc_columns = [
            "予想勝ち指数", "休養週数", "キャリア", "斤量比", "負担重量", "デフォルト得点", "得点V1", "得点V2",
            "得点V3", "fa_1_1", "fa_2_1", "fa_3_1", "fa_4_1", "fa_5_1", "fa_1_2",
            "fa_2_2", "fa_3_2", "fa_4_2", "fa_5_2", "fa_1_3", "fa_2_3",
            "fa_3_3", "fa_4_3", "fa_5_3", "fa_1_4", "fa_2_4", "fa_3_4",
            "fa_4_4", "fa_5_4", "fa_1_5", "fa_2_5", "fa_3_5", "fa_4_5",
            "fa_5_5"
        ]
        stdsc_dict_name = "sc_base_stdsc"

        self.base_df = mu.scale_df_for_fa(self.base_df, mmsc_columns,
                                          mmsc_dict_name, stdsc_columns,
                                          stdsc_dict_name, self.dict_folder)
        self.base_df.loc[:, "競走種別コード_h"] = self.base_df["競走種別コード"]
        self.base_df.loc[:, "場コード_h"] = self.base_df["場コード"]
        hash_track_columns = [
            "主催者コード", "競走種別コード_h", "場コード_h", "競走条件コード", "トラックコード"
        ]
        hash_track_dict_name = "sc_base_hash_track"
        self.base_df = mu.hash_eoncoding(self.base_df, hash_track_columns, 10,
                                         hash_track_dict_name,
                                         self.dict_folder)
        hash_newtype1_columns = [
            "季節", "ナイター", "非根幹", "距離グループ", "頭数グループ", "性別コード", "予想展開"
        ]
        hash_newtype1_dict_name = "sc_base_hash_newtype1"
        self.base_df = mu.hash_eoncoding(self.base_df, hash_newtype1_columns,
                                         10, hash_newtype1_dict_name,
                                         self.dict_folder)
        hash_newtype2_columns = [
            "クラス変動", "騎手所属場コード", "見習区分", "テン乗り", "調教師所属場コード", "馬番グループ",
            "馬記号コード", "品種コード", "毛色コード", "東西所属コード"
        ]
        hash_newtype2_dict_name = "sc_base_hash_newtype2"
        self.base_df = mu.hash_eoncoding(self.base_df, hash_newtype2_columns,
                                         20, hash_newtype2_dict_name,
                                         self.dict_folder)
Пример #7
0
 def _scale_df(self):
     mmsc_columns = [
         "距離", "競走番号", "頭数", "初出走頭数", "枠番", "予想タイム指数順位", "休養後出走回数", "予想人気",
         "先行指数順位", "馬齢", "距離増減", "前走着順", "前走人気", "前走頭数", "騎手ランキング",
         "調教師ランキング", "得点V1順位", "得点V2順位", "デフォルト得点順位", "得点V3順位"
     ]
     mmsc_dict_name = "sc_base_mmsc"
     stdsc_columns = [
         "予想勝ち指数", "予想決着指数", "休養週数", "予想オッズ", "血統距離評価", "血統トラック評価",
         "血統成長力評価", "先行指数", "血統総合評価", "血統距離評価B", "血統トラック評価B", "血統成長力評価B",
         "血統総合評価B", "騎手評価", "調教師評価", "枠順評価", "脚質評価", "キャリア", "前走着差",
         "前走馬体重", "タイム指数上昇係数", "タイム指数回帰推定値", "タイム指数回帰標準偏差", "斤量比", "前走休養週数",
         "負担重量", "予想タイム指数", "デフォルト得点", "得点V1", "得点V2", "得点V3", "fa_1_1",
         "fa_2_1", "fa_3_1", "fa_1_2", "fa_2_2", "fa_3_2", "同場_max",
         "同場_mean", "同距離_max", "同距離_mean", "同根幹_max", "同根幹_mean",
         "同距離グループ_max", "同距離グループ_mean", "同馬番グループ_max", "同馬番グループ_mean"
     ]
     stdsc_dict_name = "sc_base_stdsc"
     self.base_df = mu.scale_df_for_fa(self.base_df, mmsc_columns,
                                       mmsc_dict_name, stdsc_columns,
                                       stdsc_dict_name, self.dict_folder)
     oh_columns = [
         "月", "グレードコード", "クラス変動", "前走トラック種別コード", "月_1", "クラス変動_1", "月_2",
         "クラス変動_2"
     ]
     oh_dict_name = "sc_base_hash_month"
     self.base_df = mu.hash_eoncoding(self.base_df, oh_columns, 20,
                                      oh_dict_name, self.dict_folder)
     self.base_df.loc[:, "競走種別コード_h"] = self.base_df["競走種別コード"]
     self.base_df.loc[:, "場コード_h"] = self.base_df["場コード"]
     hash_track_columns = [
         "トラック種別コード", "主催者コード", "競走種別コード_h", "場コード_h", "競走条件コード", "トラックコード",
         "混合"
     ]
     hash_track_dict_name = "sc_base_hash_track"
     self.base_df = mu.hash_eoncoding(self.base_df, hash_track_columns, 10,
                                      hash_track_dict_name,
                                      self.dict_folder)
     hash_kishu_columns = ["騎手コード", "騎手所属場コード", "見習区分", "テン乗り"]
     hash_kishu_dict_name = "sc_base_hash_kishu"
     self.base_df = mu.hash_eoncoding(self.base_df, hash_kishu_columns, 30,
                                      hash_kishu_dict_name,
                                      self.dict_folder)
     hash_chokyoshi_columns = ["調教師コード", "調教師所属場コード", "所属", "転厩", "東西所属コード"]
     hash_chokyoshi_dict_name = "sc_base_hash_chokyoshi"
     self.base_df = mu.hash_eoncoding(self.base_df, hash_chokyoshi_columns,
                                      30, hash_chokyoshi_dict_name,
                                      self.dict_folder)
     hash_horse_columns = ["生産者コード", "繁殖登録番号1", "繁殖登録番号5", "馬主コード", "性別コード"]
     hash_horse_dict_name = "sc_base_hash_horse"
     self.base_df = mu.hash_eoncoding(self.base_df, hash_horse_columns, 30,
                                      hash_horse_dict_name,
                                      self.dict_folder)
     hash_prev1_columns = [
         "騎手名_1", "ペース_1", "馬場状態コード_1", "競走種別コード_1", "展開コード_1",
         "騎手所属場コード_1", "テン乗り_1"
     ]
     hash_prev1_dict_name = "sc_base_hash_prev1"
     self.base_df = mu.hash_eoncoding(self.base_df, hash_prev1_columns, 10,
                                      hash_prev1_dict_name,
                                      self.dict_folder)
     hash_prev2_columns = [
         "騎手名_2", "ペース_2", "馬場状態コード_2", "競走種別コード_2", "展開コード_2",
         "騎手所属場コード_2", "テン乗り_2"
     ]
     hash_prev2_dict_name = "sc_base_hash_prev2"
     self.base_df = mu.hash_eoncoding(self.base_df, hash_prev2_columns, 10,
                                      hash_prev2_dict_name,
                                      self.dict_folder)
     hash_newtype1_columns = [
         "同場騎手_1", "同所属場_1", "同所属騎手_1", "同場騎手_2", "同所属場_2", "同所属騎手_2",
         "継続騎乗", "同場騎手", "同所属場", "同所属騎手"
     ]
     hash_newtype1_dict_name = "sc_base_hash_newtype1"
     self.base_df = mu.hash_eoncoding(self.base_df, hash_newtype1_columns,
                                      20, hash_newtype1_dict_name,
                                      self.dict_folder)
     hash_newtype2_columns = [
         "馬番グループ", "予想人気グループ", "予想展開", "非根幹", "距離グループ", "逃げ勝ち_1", "内勝ち_1",
         "外勝ち_1", "短縮勝ち_1", "延長勝ち_1", "人気勝ち_1", "逃げ勝ち_2", "内勝ち_2", "外勝ち_2",
         "短縮勝ち_2", "延長勝ち_2", "人気勝ち_2", "同主催者", "同場コード", "同根幹", "同距離グループ",
         "頭数差", "休み明け", "前走凡走", "前走激走", "前走逃げそびれ"
     ]
     hash_newtype2_dict_name = "sc_base_hash_newtype2"
     self.base_df = mu.hash_eoncoding(self.base_df, hash_newtype2_columns,
                                      5, hash_newtype2_dict_name,
                                      self.dict_folder)