
рдЕрдм рд╣рд░ рдХреЛрдИ рдХрдВрдкрдиреА рдХреЗ рд╕рднреА рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рдХреГрддреНрд░рд┐рдо рдмреБрджреНрдзрд┐рдорддреНрддрд╛ рдФрд░ рдЙрд╕рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдХреБрдЫ рдмреЛрд▓ рд░рд╣рд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХреБрдЫ рдРрд╕реЗ рдХреНрд╖реЗрддреНрд░ рд╣реИрдВ, рдЬрд╣рд╛рдВ рдкреНрд░рд╛рдЪреАрди рдХрд╛рд▓ рд╕реЗ, рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдореЙрдбрд▓ рд╣рд╛рд╡реА рд░рд╣рд╛ рд╣реИ, рддрдерд╛рдХрдерд┐рдд "рд╡реНрд╣рд╛рдЗрдЯ рдмреЙрдХреНрд╕" - рд▓реЙрдЬрд┐рдХ рд░рд┐рдЧреНрд░реЗрд╢рдиред рдРрд╕рд╛ рд╣реА рдПрдХ рдХреНрд╖реЗрддреНрд░ рд╣реИ рдмреИрдВрдХ рдХреНрд░реЗрдбрд┐рдЯ рд╕реНрдХреЛрд░рд┐рдВрдЧред
рдЗрд╕рдХреЗ рдХрдИ рдХрд╛рд░рдг рд╣реИрдВ:
- рдкреНрд░рддрд┐рдЧрдорди рдЧреБрдгрд╛рдВрдХ рдХреЛ "рдмреНрд▓реИрдХ рдмреЙрдХреНрд╕" рдХреЗ рд╡рд┐рдкрд░реАрдд рдЖрд╕рд╛рдиреА рд╕реЗ рд╕рдордЭрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ 500 рд╕реЗ рдЕрдзрд┐рдХ рдЪрд░ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ
- рдореЙрдбрд▓ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рдиреЗ рдореЗрдВ рдХрдард┐рдирд╛рдИ рдХреЗ рдХрд╛рд░рдг рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рдЕрднреА рднреА рдкреНрд░рдмрдВрдзрди рджреНрд╡рд╛рд░рд╛ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдирд╣реАрдВ рд╣реИ
- рдореЙрдбрд▓ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреЗ рд▓рд┐рдП рдирд┐рдпрд╛рдордХ рдХреА рдЕрд▓рд┐рдЦрд┐рдд рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ рд╣реИрдВ: рдХрд┐рд╕реА рднреА рд╕рдордп, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реЗрдВрдЯреНрд░рд▓ рдмреИрдВрдХ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдорд╛рдВрдЧ рд╕рдХрддрд╛ рд╣реИ - рдЙрдзрд╛рд░рдХрд░реНрддрд╛ рдХреЛ рдЛрдг рдХреНрдпреЛрдВ рдордирд╛ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛
- рдХрдВрдкрдирд┐рдпрд╛рдВ рдмрд╛рд╣рд░реА рдбреЗрдЯрд╛ рдЦрдирди рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд░реИрдкрд┐рдб рдорд╛рдЗрдирд░, рдПрд╕рдПрдПрд╕ рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬ рдорд╛рдЗрдирд░, рд╕реНрдЯреЗрдЯрд┐рд╕реНрдЯрд┐рдХрд╛ рдпрд╛ рдХреЛрдИ рдЕрдиреНрдп рдкреИрдХреЗрдЬ) рдЬреЛ рдЖрдкрдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреМрд╢рд▓ рдХреЗ рдмрд┐рдирд╛ рднреА рдореЙрдбрд▓ рдмрдирд╛рдиреЗ рдХреА рдЬрд▓реНрджреА рд╕реЗ рд╕реАрдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдЗрди рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдХреБрдЫ рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рдорд╢реАрди рд╕реАрдЦрдиреЗ рдХреЗ рдЬрдЯрд┐рд▓ рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд▓рдЧрднрдЧ рдЕрд╕рдВрднрд╡ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд▓реЙрдЬрд┐рд╕реНрдЯрд┐рдХ рдкреНрд░рддрд┐рдЧрдорди рд╕реЗ рдмрд╛рд╣рд░ "рдЕрдзрд┐рдХрддрдо рдирд┐рдЪреЛрдбрд╝" рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдЬреЛ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдФрд░ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред
рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ, рд╣рдо рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдХреИрд╕реЗ, рдЬрдм рдмрд┐рд▓реНрдбрд┐рдВрдЧ рд╕реНрдХреЛрд░рд┐рдВрдЧ, рд╣рдордиреЗ рдкрд╛рдпрдерди рдХреЗ рд░реВрдк рдореЗрдВ рдЦреБрд▓реЗ рд╕реНрд░реЛрдд рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдмрд╛рд╣рд░реА рдбреЗрдЯрд╛ рдЦрдирди рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рддреНрдпрд╛рдЧ рджрд┐рдпрд╛, рд╡рд┐рдХрд╛рд╕ рдХреА рдЧрддрд┐ рдХреЛ рдХрдИ рдЧреБрдирд╛ рдмрдврд╝рд╛ рджрд┐рдпрд╛, рдФрд░ рд╕рднреА рдореЙрдбрд▓реЛрдВ рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдореЗрдВ рднреА рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ред
рд╕реНрдХреЛрд░рд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛
рдкреНрд░рддрд┐рдЧрдорди рдкрд░ рдореЙрдбрд▓ рд╕реНрдХреЛрд░рд┐рдВрдЧ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреА рд╢рд╛рд╕реНрддреНрд░реАрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:

рдпрд╣ рдХрдВрдкрдиреА рд╕реЗ рдХрдВрдкрдиреА рдореЗрдВ рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЦреНрдп рдЪрд░рдг рд╕реНрдерд┐рд░ рд░рд╣рддреЗ рд╣реИрдВред рд╣рдореЗрдВ рд╣рдореЗрд╢рд╛ рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдХреЗ рдмрд┐рдирд┐рдВрдЧ (рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рдкреИрд░рд╛рдбрд╛рдЗрдо рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЬрд╣рд╛рдВ рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдХреЗрд╡рд▓ рд╢реНрд░реЗрдгреАрдмрджреНрдз рдХреЛрдбрд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ) рдХреЗ рдкреНрд░рджрд░реНрд╢рди, рд╕реВрдЪрдирд╛ рдореВрд▓реНрдп (IV) рджреНрд╡рд╛рд░рд╛ рдЙрдирдХреА рд╕реНрдХреНрд░реАрдирд┐рдВрдЧ, рдФрд░ рд╕рднреА рдЧреБрдгрд╛рдВрдХ рдХреЗ рдореИрдиреБрдЕрд▓ рдЕрдкрд▓реЛрдб рдФрд░ DSL рдореЗрдВ рдмрд╛рдж рдХреЗ рдПрдХреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдбрд┐рдмреНрдмреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
90 рдХреЗ рджрд╢рдХ рдореЗрдВ рдмрд┐рд▓реНрдбрд┐рдВрдЧ рд╕реНрдХреЛрд░рд┐рдВрдЧ рдХрд╛рд░реНрдб рдХреЗ рд▓рд┐рдП рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдиреЗ рдареАрдХ рдХрд╛рдо рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рд╢рд╛рд╕реНрддреНрд░реАрдп рдбреЗрдЯрд╛ рдЦрдирди рдкреИрдХреЗрдЬреЛрдВ рдХреА рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпрд╛рдВ рдмрд╣реБрдд рдкреБрд░рд╛рдиреА рд╣реИрдВ рдФрд░ рдирдИ рддрдХрдиреАрдХреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддреА рд╣реИрдВ, рдЬреИрд╕реЗ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд░рддрд┐рдЧрдорди рдореЗрдВ рдПрд▓ 2 рдирд┐рдпрдорд┐рддреАрдХрд░рдг, рдЬреЛ рдореЙрдбрд▓ рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдореЗрдВ рдХрд╛рдлреА рд╕реБрдзрд╛рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рдПрдХ рдмрд┐рдВрджреБ рдкрд░, рдПрдХ рдЕрдзреНрдпрдпрди рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдордиреЗ рдЙрди рд╕рднреА рдЪрд░рдгреЛрдВ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдЬреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдХреЛрдВ рдиреЗ рд╕реНрдХреЛрд░рд┐рдВрдЧ рдХрд░рддреЗ рд╕рдордп рдХрд┐рдП, рдЙрдиреНрд╣реЗрдВ рдбреЗрдЯрд╛ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХреЛрдВ рдХреЗ рдЬреНрдЮрд╛рди рдХреЗ рд╕рд╛рде рдкреВрд░рдХ рдХрд┐рдпрд╛ рдФрд░ рдпрдерд╛рд╕рдВрднрд╡ рдкреВрд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд┐рдпрд╛ред
рдкрд╛рдпрдерди рдПрдиреНрд╣рд╛рдВрд╕рдореЗрдВрдЯ
рдПрдХ рд╡рд┐рдХрд╛рд╕ рдЙрдкрдХрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдордиреЗ рдЗрд╕рдХреА рд╕рд╛рджрдЧреА рдФрд░ рдЕрдЪреНрдЫреА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд╛рдпрдерди рдХреЛ рдЪреБрдирд╛, рдФрд░ рдХреНрд░рдо рдореЗрдВ рд╕рднреА рдЪрд░рдгреЛрдВ рдХреЛ рдЦреЗрд▓рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ред
рдкрд╣рд▓рд╛ рдЪрд░рдг рдбреЗрдЯрд╛ рдПрдХрддреНрд░ рдХрд░рдирд╛ рдФрд░ рдЪрд░ рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ рд╣реИ - рдпрд╣ рдЪрд░рдг рд╡рд┐рд╢реНрд▓реЗрд╖рдХреЛрдВ рдХреЗ рдХрд╛рдо рдХрд╛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред
рдкрд╛рдпрдерди рдореЗрдВ, рдЖрдк pymysql рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдПрдХрддреНрд░рд┐рдд рдбреЗрдЯрд╛ рд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдбdef con(): conn = pymysql.connect( host='10.100.10.100', port=3306, user='******* ', password='*****', db='mysql') return conn; df = pd.read_sql(''' SELECT * FROM idf_ru.data_for_scoring ''', con=con())
рдЕрдЧрд▓рд╛, рд╣рдо ovefitting рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рд╢реНрд░реЗрдгреА рдХреЗ рд╕рд╛рде рджреБрд░реНрд▓рдн рдФрд░ рд▓рд╛рдкрддрд╛ рдорд╛рдиреЛрдВ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рд▓рдХреНрд╖реНрдп рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ, рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЙрд▓рдо рд╣рдЯрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдЯреНрд░реЗрди рдФрд░ рдкрд░реАрдХреНрд╖рдг рджреНрд╡рд╛рд░рд╛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддреЗ рд╣реИрдВред
рдбреЗрдЯрд╛ рдХреА рддреИрдпрд╛рд░реА def filling(df): cat_vars = df.select_dtypes(include=[object]).columns num_vars = df.select_dtypes(include=[np.number]).columns df[cat_vars] = df[cat_vars].fillna('_MISSING_') df[num_vars] = df[num_vars].fillna(np.nan) return df def replace_not_frequent(df, cols, perc_min=5, value_to_replace = "_ELSE_"): else_df = pd.DataFrame(columns=['var', 'list']) for i in cols: if i != 'date_requested' and i != 'credit_id': t = df[i].value_counts(normalize=True) q = list(t[t.values < perc_min/100].index) if q: else_df = else_df.append(pd.DataFrame([[i, q]], columns=['var', 'list'])) df.loc[df[i].value_counts(normalize=True)[df[i]].values < perc_min/100, i] =value_to_replace else_df = else_df.set_index('var') return df, else_df cat_vars = df.select_dtypes(include=[object]).columns df = filling(df) df, else_df = replace_not_frequent_2(df, cat_vars) df.drop(['credit_id', 'target_value', 'bor_credit_id', 'bchg_credit_id', 'last_credit_id', 'bcacr_credit_id', 'bor_bonuses_got' ], axis=1, inplace=True) df_train, df_test, y_train, y_test = train_test_split(df, y, test_size=0.33, stratify=df.y, random_state=42)
рдЕрдм рдкреНрд░рддрд┐рдЧрдорди рдХреЗ рд▓рд┐рдП рд╕реНрдХреЛрд░рд┐рдВрдЧ рдореЗрдВ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЪрд░рдг рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ - рдЖрдкрдХреЛ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдФрд░ рд╢реНрд░реЗрдгреАрдмрджреНрдз рдЪрд░ рдХреЗ рд▓рд┐рдП WOE-binning рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ред рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдбреЛрдореЗрди рдореЗрдВ, рд╣рдореЗрдВ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЕрдЪреНрдЫреЗ рдФрд░ рдЙрдкрдпреБрдХреНрдд рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рдорд┐рд▓реЗ рдФрд░ рдЦреБрдж рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред 2017 рдХреЗ
рдЗрд╕ рд▓реЗрдЦ рдХреЛ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдмрд┐рдирд┐рдВрдЧ рдХреЗ рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд╕рд╛рде рд╣реА рд╕рд╛рде
рдпрд╣ , рд╢реНрд░реЗрдгреАрдмрджреНрдз, рдЙрдиреНрд╣реЛрдВрдиреЗ рдЦреБрдж рдХреЛ рдЦрд░реЛрдВрдЪ рд╕реЗ рд▓рд┐рдЦрд╛ рдерд╛ред рдкрд░рд┐рдгрд╛рдо рдкреНрд░рднрд╛рд╡рд╢рд╛рд▓реА рдереЗ (рдкрд░реАрдХреНрд╖рдг рдкрд░ рдЧрд┐рдиреНрдиреА рдмрд╛рд╣рд░реА рдбреЗрдЯрд╛ рдЦрдирди рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рдмрд┐рдирд┐рдВрдЧ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреА рддреБрд▓рдирд╛ рдореЗрдВ 3-5 рд╕реЗ рдКрдкрд░ рдЪрд▓реА рдЧрдИ)ред
рдЙрд╕рдХреЗ рдмрд╛рдж, рдЖрдк рдЧреНрд░рд╛рдлрд╝ рдпрд╛ рддрд╛рд▓рд┐рдХрд╛рдУрдВ (рдЬреЛ рд╣рдо рддрдм рдПрдХреНрд╕реЗрд▓ рдореЗрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВ) рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреИрд╕реЗ рдЪрд░ рд╕рдореВрд╣реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реИрдВ рдФрд░ рдПрдХрд░рд╕рддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ:


рдмреАрди рдЪрд╛рд░реНрдЯреНрд╕ рдХрд╛ рдкреНрд░рддрд┐рдкрд╛рджрди def plot_bin(ev, for_excel=False): ind = np.arange(len(ev.index)) width = 0.35 fig, ax1 = plt.subplots(figsize=(10, 7)) ax2 = ax1.twinx() p1 = ax1.bar(ind, ev['NONEVENT'], width, color=(24/254, 192/254, 196/254)) p2 = ax1.bar(ind, ev['EVENT'], width, bottom=ev['NONEVENT'], color=(246/254, 115/254, 109/254)) ax1.set_ylabel('Event Distribution', fontsize=15) ax2.set_ylabel('WOE', fontsize=15) plt.title(list(ev.VAR_NAME)[0], fontsize=20) ax2.plot(ind, ev['WOE'], marker='o', color='blue')
рдореИрдиреБрдЕрд▓ рдмрд┐рдирд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдЕрд▓рдЧ рд╕реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ рдЙрдкрдпреЛрдЧреА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЪрд░ "рдУрдПрд╕ рд╕рдВрд╕реНрдХрд░рдг" рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЬрд╣рд╛рдВ рд╕рднреА рдПрдВрдбреНрд░реЙрдЗрдб рдФрд░ рдЖрдИрдУрдПрд╕ рдлреЛрди рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕рдореВрд╣реАрдХреГрдд рдХрд┐рдП рдЧрдП рдереЗред
рдореИрдиреБрдЕрд▓ рдмрд┐рдирд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди def adjust_binning(df, bins_dict): for i in range(len(bins_dict)): key = list(bins_dict.keys())[i] if type(list(bins_dict.values())[i])==dict: df[key] = df[key].map(list(bins_dict.values())[i]) else:
рдЕрдЧрд▓рд╛ рдЪрд░рдг рд╕реВрдЪрдирд╛ рдореВрд▓реНрдп рджреНрд╡рд╛рд░рд╛ рдЪрд░ рдХрд╛ рдЪрдпрди рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдХреЛ 0.1 рд╕реЗ рдХрд╛рдЯ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдиреАрдЪреЗ рд╕рднреА рдЪрд░ рдореЗрдВ рдЕрдЪреНрдЫреА рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рдирд┐рдд рд╢рдХреНрддрд┐ рдирд╣реАрдВ рд╣реИ)ред
рдЙрд╕рдХреЗ рдмрд╛рдж, рдПрдХ рд╕рд╣рд╕рдВрдмрдВрдз рдХреА рдЬрд╛рдБрдЪ рдХреА рдЧрдИред рджреЛ рд╕рд╣рд╕рдВрдмрдВрдзреА рдЪрд░ рдореЗрдВ рд╕реЗ, рдЖрдкрдХреЛ рдХрдо IV рд╡рд╛рд▓реЗ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдХрдЯ рдСрдл рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП 0.75 рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рд╕рд╣рд╕рдВрдмрдВрдз рдирд┐рдХрд╛рд▓рдирд╛ def delete_correlated_features(df, cut_off=0.75, exclude = []):
IV рджреНрд╡рд╛рд░рд╛ рдЪрдпрди рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдордиреЗ рд╕реНрдХреЗрд▓реЗрд░ рд╕реЗ
RFE рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рдЗрд╖реНрдЯрддрдо рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЪрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдЦреЛрдЬ рдХреЛ рдЬреЛрдбрд╝рд╛ред
рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рдЧреНрд░рд╛рдл рдореЗрдВ рджреЗрдЦрддреЗ рд╣реИрдВ, 13 рдЪрд░ рдХреЗ рдмрд╛рдж рдЧреБрдгрд╡рддреНрддрд╛ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЕрддрд┐рд░рд┐рдХреНрдд рд╣рдЯрд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдкреНрд░рддрд┐рдЧрдорди рдХреЗ рд▓рд┐рдП, рд╕реНрдХреЛрд░рд┐рдВрдЧ рдореЗрдВ 15 рд╕реЗ рдЕрдзрд┐рдХ рдЪрд░реЛрдВ рдХреЛ рдЦрд░рд╛рдм рд░реВрдк рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ RFE рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

RFE def RFE_feature_selection(clf_lr, X, y): rfecv = RFECV(estimator=clf_lr, step=1, cv=StratifiedKFold(5), verbose=0, scoring='roc_auc') rfecv.fit(X, y) print("Optimal number of features : %d" % rfecv.n_features_)
рдЕрдЧрд▓рд╛, рдПрдХ рдкреНрд░рддрд┐рдЧрдорди рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдЗрд╕рдХреЗ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХреНрд░реЙрд╕-рд╕рддреНрдпрд╛рдкрди рдФрд░ рдкрд░реАрдХреНрд╖рдг рдирдореВрдиреЗ рдкрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЖрдорддреМрд░ рдкрд░ рд╣рд░ рдХреЛрдИ рдЧрд┐рдиреНрдиреА рдЧреБрдгрд╛рдВрдХ (рдЙрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдЕрдЪреНрдЫрд╛ рд▓реЗрдЦ
рдпрд╣рд╛рдБ ) рдХреЛ рджреЗрдЦрддрд╛ рд╣реИред

рд╕рд┐рдореБрд▓реЗрд╢рди рдкрд░рд┐рдгрд╛рдо def plot_score(clf, X_test, y_test, feat_to_show=30, is_normalize=False, cut_off=0.5):
рдЬрдм рд╣рдо рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдореЙрдбрд▓ рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рд╣рдореЗрдВ рд╕реВрдЯ рдХрд░рддреА рд╣реИ, рддреЛ рдПрдХреНрд╕реЗрд▓ рдореЗрдВ рд╕рднреА рдкрд░рд┐рдгрд╛рдо (рд░рд┐рдЧреНрд░реЗрд╢рди рдЧреБрдгрд╛рдВрдХ, рдмрд┐рди рд╕рдореВрд╣, рдЧрд┐рдиреНрдиреА рд╕реНрдерд┐рд░рддрд╛ рдЧреНрд░рд╛рдл рдФрд░ рдЪрд░, рдЖрджрд┐) рд▓рд┐рдЦрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП, xlsxwriter рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдЬреЛ рдбреЗрдЯрд╛ рдФрд░ рдЫрд╡рд┐рдпреЛрдВ рджреЛрдиреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рдПрдХреНрд╕реЗрд▓ рд╢реАрдЯ рдХреЗ рдЙрджрд╛рд╣рд░рдг:


рдПрдХреНрд╕реЗрд▓ рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рдЕрдВрдд рдореЗрдВ, рдкреНрд░рдмрдВрдзрди рджреНрд╡рд╛рд░рд╛ рдЕрдВрддрд┐рдо рдПрдХреНрд╕реЗрд▓ рдлрд┐рд░ рд╕реЗ рджрд┐рдЦрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдЗрд╕реЗ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдореЙрдбрд▓ рдХреЛ рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдИрдЯреА рдХреЛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдкрд░рд┐рдгрд╛рдо
рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рджреЗрдЦрд╛, рд╕реНрдХреЛрд░рд┐рдВрдЧ рдХреЗ рд▓рдЧрднрдЧ рд╕рднреА рдЪрд░рдгреЛрдВ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╡рд┐рд╢реНрд▓реЗрд╖рдХреЛрдВ рдХреЛ рдореЙрдбрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреМрд╢рд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рди рд╣реЛред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЗрд╕ рдврд╛рдВрдЪреЗ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж, рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЛ рдХреЗрд╡рд▓ рдбреЗрдЯрд╛ рдПрдХрддреНрд░ рдХрд░рдиреЗ рдФрд░ рдХрдИ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ (рд▓рдХреНрд╖реНрдп рдЪрд░ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдВ, рдЬреЛ рдХреЙрд▓рдо рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдбрд┐рдмреНрдмреЗ рдХреА рдиреНрдпреВрдирддрдо рд╕рдВрдЦреНрдпрд╛, рдЪрд░ рдХреЗ рд╕рд╣рд╕рдВрдмрдВрдз рдХреЗ рд▓рд┐рдП рдХрдЯрдСрдлрд╝ рдЧреБрдгрд╛рдВрдХ, рдЖрджрд┐), рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдЖрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЕрдЬрдЧрд░ рдореЗрдВ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЬреЛ рдореЙрдбрд▓ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдЧрд╛ рдФрд░ рд╡рд╛рдВрдЫрд┐рдд рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рдПрдХреНрд╕реЗрд▓ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░реЗрдЧрд╛ред
рдмреЗрд╢рдХ, рдХрднреА-рдХрднреА рдЖрдкрдХреЛ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдЬрд░реВрд░рддреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреЛ рдареАрдХ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ, рдФрд░ рдЖрдк рдореЙрдбрд▓рд┐рдВрдЧ рдХрд░рддреЗ рд╕рдордп рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдЯрди рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрдм рднреА рд╣рдо рдбреЗрдЯрд╛ рдЦрдирди рдмрд╛рдЬрд╛рд░ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреИрдХреЗрдЬреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмреЗрд╣рддрд░ рдЧреБрдгрд╡рддреНрддрд╛ рджреЗрдЦрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рдЗрд╖реНрдЯрддрдо рдФрд░ рдиреАрд░рд╕ рдмрд┐рдирд┐рдВрдЧ, рд╕рд╣рд╕рдВрдмрдВрдз рдЬрд╛рдБрдЪред , RFE, рдкреНрд░рддрд┐рдЧрдорди рдХрд╛ рдирд┐рдпрдорд┐рдд рд╕рдВрд╕реНрдХрд░рдг, рдЖрджрд┐ред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдкрд╛рдпрдерди рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд╣рдордиреЗ рд╕реНрдХреЛрд░рд┐рдВрдЧ рдХрд╛рд░реНрдб рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╕рдордп рдХреЛ рдХрд╛рдлреА рдХрдо рдХрд░ рджрд┐рдпрд╛, рд╕рд╛рде рд╣реА рд╕рд╛рде рд╡рд┐рд╢реНрд▓реЗрд╖рдХреЛрдВ рдХреА рд╢реНрд░рдо рд▓рд╛рдЧрдд рдХреЛ рднреА рдХрдо рдХрд░ рджрд┐рдпрд╛ред