예제 #1
0
파일: lb_v5.py 프로젝트: ikem55/HRsystem
    def encode_horse_df(self, horse_df, dict_folder):
        """  列をエンコードする処理。騎手名、所属、転厩をラベルエンコーディングして値を置き換える。learning_modeがTrueの場合は辞書生成がされる。

        :param dataframe horse_df:
        :return: dataframe
        """
        temp_horse_df = horse_df.copy()
        temp_horse_df = self.choose_upper_n_count(temp_horse_df, "繁殖登録番号1", 50,
                                                  dict_folder)
        temp_horse_df.loc[:, '繁殖登録番号1'] = mu.label_encoding(
            horse_df['繁殖登録番号1'], '騎手名', dict_folder).astype(str)
        temp_horse_df = self.choose_upper_n_count(temp_horse_df, "繁殖登録番号3", 50,
                                                  dict_folder)
        temp_horse_df.loc[:, '繁殖登録番号3'] = mu.label_encoding(
            horse_df['繁殖登録番号3'], '調教師名', dict_folder).astype(str)
        temp_horse_df = self.choose_upper_n_count(temp_horse_df, "繁殖登録番号5", 50,
                                                  dict_folder)
        temp_horse_df.loc[:, '繁殖登録番号5'] = mu.label_encoding(
            horse_df['繁殖登録番号5'], '調教師名', dict_folder).astype(str)
        temp_horse_df = self.choose_upper_n_count(temp_horse_df, "生産者コード", 20,
                                                  dict_folder)
        temp_horse_df.loc[:, '生産者コード'] = mu.label_encoding(
            horse_df['生産者コード'], '調教師名', dict_folder).astype(str)
        temp_horse_df = self.choose_upper_n_count(temp_horse_df, "馬主コード", 100,
                                                  dict_folder)
        temp_horse_df.loc[:,
                          '馬主コード'] = mu.label_encoding(horse_df['馬主コード'],
                                                       '調教師名',
                                                       dict_folder).astype(str)
        return temp_horse_df.copy()
예제 #2
0
파일: lb_v2.py 프로젝트: ikem55/HRsystem
    def encode_raceuma_before_df(self, raceuma_df, dict_folder):
        """  列をエンコードする処理。騎手名、所属、転厩をラベルエンコーディングして値を置き換える。learning_modeがTrueの場合は辞書生成がされる。

        :param dataframe raceuma_df:
        :return: dataframe
        """
        temp_raceuma_df = raceuma_df.copy()
        temp_raceuma_df = self.choose_upper_n_count(temp_raceuma_df, "騎手名",
                                                    100, dict_folder)
        temp_raceuma_df.loc[:,
                            '騎手名'] = mu.label_encoding(raceuma_df['騎手名'],
                                                       '騎手名',
                                                       dict_folder).astype(str)
        temp_raceuma_df = self.choose_upper_n_count(temp_raceuma_df, "調教師名",
                                                    100, dict_folder)
        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[:, '予想展開'] = temp_raceuma_df["予想展開"].astype(str)
        return temp_raceuma_df.copy()
예제 #3
0
    def encode_raceuma_df(self, raceuma_df, dict_folder):
        """  列をエンコードする処理。騎手名、所属、転厩をラベルエンコーディングして値を置き換える。learning_modeがTrueの場合は辞書生成がされる。

        :param dataframe raceuma_df:
        :return: dataframe
        """
        #raceuma_df.loc[:, 'ペース予想'] = raceuma_df['ペース予想'].apply(lambda x: self._convert_pace(x))
        #raceuma_df.loc[:, '調教曜日'] = raceuma_df['調教曜日'].apply(lambda x: self._convert_weekday(x))
        raceuma_df.loc[:, '放牧先ランク'] = raceuma_df['放牧先ランク'].apply(
            lambda x: self._convert_rank(x))
        raceuma_df.loc[:, '調教量評価'] = raceuma_df['調教量評価'].apply(
            lambda x: self._convert_rank(x))
        raceuma_df.loc[:, '調教師所属'] = mu.label_encoding(raceuma_df['調教師所属'],
                                                       '調教師所属',
                                                       dict_folder).astype(str)
        raceuma_df.loc[:, '馬主名'] = mu.label_encoding(raceuma_df['馬主名'], '馬主名',
                                                     dict_folder).astype(str)
        raceuma_df.loc[:, '放牧先'] = mu.label_encoding(raceuma_df['放牧先'], '放牧先',
                                                     dict_folder).astype(str)
        # raceuma_df.loc[:, '激走タイプ'] = mu.label_encoding(raceuma_df['激走タイプ'], '激走タイプ', dict_folder).astype(str)
        raceuma_df.loc[:,
                       '調教コースコード'] = mu.label_encoding(raceuma_df['調教コースコード'],
                                                       '調教コースコード',
                                                       dict_folder).astype(str)
        # raceuma_df.loc[:, 'LS評価'] = raceuma_df['LS評価'].apply(lambda x: mu.convert_ls_hyouka(x))
        #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"
        #raceuma_df = mu.hash_eoncoding(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"
        #raceuma_df = mu.hash_eoncoding(raceuma_df, hash_tokki_column, 2, hash_tokki_dict_name, dict_folder)

        return raceuma_df
예제 #4
0
 def encode_horse_df(self, horse_df, dict_folder):
     """  列をエンコードする処理(ラベルエンコーディング、onehotエンコーディング等)"""
     horse_df.loc[:, '父馬名'] = mu.label_encoding(horse_df['父馬名'], '父馬名',
                                                dict_folder).astype(str)
     horse_df.loc[:, '母父馬名'] = mu.label_encoding(horse_df['母父馬名'], '母父馬名',
                                                 dict_folder).astype(str)
     horse_df.loc[:, '生産者名'] = mu.label_encoding(horse_df['生産者名'], '生産者名',
                                                 dict_folder).astype(str)
     horse_df.loc[:, '産地名'] = mu.label_encoding(horse_df['産地名'], '産地名',
                                                dict_folder).astype(str)
     return horse_df
예제 #5
0
    def encode_horse_df(self, horse_df, dict_folder):
        """  列をエンコードする処理。調教師所属、所属、転厩をラベルエンコーディングして値を置き換える。辞書がない場合は作成される
        騎手名とかはコードがあるからそちらを使う(作成しない)

        :param dataframe raceuma_df:
        :return: dataframe
        """
        temp_horse_df = horse_df.copy()
        temp_horse_df.loc[:,
                          '父馬名'] = mu.label_encoding(horse_df['父馬名'], '父馬名',
                                                     dict_folder).astype(str)
        temp_horse_df.loc[:,
                          '母父馬名'] = mu.label_encoding(horse_df['母父馬名'], '母父馬名',
                                                      dict_folder).astype(str)
        return temp_horse_df.copy()
예제 #6
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()
예제 #7
0
 def get_label_encoding_race_df(self, base_df, index_list):
     categorical_feats = base_df.dtypes[base_df.dtypes ==
                                        "object"].index.tolist()
     for val in index_list:
         if val in categorical_feats:
             categorical_feats.remove(val)
     for categ in categorical_feats:
         base_df.loc[:, categ] = mu.label_encoding(
             base_df[categ], "rc_" + categ, self.dict_folder).astype(str)
     return base_df
예제 #8
0
파일: lb_v3.py 프로젝트: ikem55/HRsystem
    def encode_raceuma_result_df(self, raceuma_df, dict_folder):
        """  列をエンコードする処理。騎手名をラベルエンコーディングして値を置き換える。

        :param dataframe raceuma_df:
        :return: dataframe
        """
        temp_raceuma_df = raceuma_df.copy()
        temp_raceuma_df = self.choose_upper_n_count(temp_raceuma_df, "騎手名", 150, dict_folder)
        temp_raceuma_df.loc[:, '騎手名'] = mu.label_encoding(raceuma_df['騎手名'], '騎手名', dict_folder).astype(str)
        return temp_raceuma_df.copy()
예제 #9
0
    def encode_raceuma_result_df(self, raceuma_df, dict_folder):
        """  列をエンコードする処理。騎手名、所属、転厩をラベルエンコーディングして値を置き換える。learning_modeがTrueの場合は辞書生成がされる。

        :param dataframe raceuma_df:
        :return: dataframe
        """
        print("-- check! this is BaseTransform class: " +
              sys._getframe().f_code.co_name)
        temp_raceuma_df = raceuma_df.copy()
        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)
        return temp_raceuma_df.copy()
예제 #10
0
파일: lb_v5.py 프로젝트: ikem55/HRsystem
    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 = self.choose_upper_n_count(temp_raceuma_df, "騎手名",
                                                    100, dict_folder)
        temp_raceuma_df.loc[:,
                            '騎手名'] = mu.label_encoding(raceuma_df['騎手名'],
                                                       '騎手名',
                                                       dict_folder).astype(str)
        temp_raceuma_df.loc[:, '展開脚質'] = raceuma_df['展開コード'].astype(
            str).str[:1].astype(int)
        temp_raceuma_df.loc[:, '展開脚色'] = raceuma_df['展開コード'].astype(
            str).str[-1:].astype(int)
        return_df = temp_raceuma_df.drop('展開コード', axis=1)
        return return_df
예제 #11
0
 def get_label_encoding_df(self, base_df):
     categorical_feats = base_df.dtypes[base_df.dtypes == "object"].index.tolist()
     for categ in categorical_feats:
         base_df.loc[:, categ] = mu.label_encoding(base_df[categ], categ, self.dict_folder).astype(str)
     return base_df