рд░реИрдВрдбрдо рдлрд╝реЙрд░реЗрд╕реНрдЯ, рдкреНрд░рдореБрдЦ рдШрдЯрдХреЛрдВ рдХреА рд╡рд┐рдзрд┐ рдФрд░ рд╣рд╛рдЗрдкрд░рдкрд░рдореЗрдЯрд░реНрд╕ рдХреЗ рдЕрдиреБрдХреВрд▓рди: рдкрд╛рдпрдерди рдореЗрдВ рд╡рд░реНрдЧреАрдХрд░рдг рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг

рдбреЗрдЯрд╛ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдФрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╡рд┐рд╢реЗрд╖рдЬреНрдЮреЛрдВ рдХреЗ рдкрд╛рд╕ рд╡рд░реНрдЧреАрдХрд░рдг рдореЙрдбрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдЙрдкрдХрд░рдг рд╣реИрдВред рдРрд╕реЗ рдореЙрдбрд▓ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдФрд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рддрд░реАрдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд░реИрдВрдбрдо рдлреЙрд░реЗрд╕реНрдЯ (рдЖрд░рдПрдл) рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред рдЖрд░рдПрдл рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдП рдЧрдП рдореЙрдбрд▓ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП , рдЖрдк рдореЙрдбрд▓ рдХреЗ рд╣рд╛рдЗрдкрд░рдкрд░рдореАрдЯрд░ ( рд╣рд╛рдЗрдкрд░рдкрд░рдореАрдЯрд░ рдЯреНрдпреВрдирд┐рдВрдЧ , рдПрдЪрдЯреА) рдХреЗ рдЕрдиреБрдХреВрд▓рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рд╡реНрдпрд╛рдкрдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИ рдЬрд┐рд╕рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдореЙрдбрд▓ рдХреЛ рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдбреЗрдЯрд╛ рдХреЛ рдкреНрд░рд┐рдВрд╕рд┐рдкрд▓ рдХрдореНрдкреЛрдиреЗрдВрдЯ рдПрдирд╛рд▓рд┐рд╕рд┐рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред



, рдкреАрд╕реАрдП)ред рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд▓рд╛рдпрдХ рд╣реИ? рдЖрд░рдПрдл рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдореБрдЦреНрдп рдЙрджреНрджреЗрд╢реНрдп рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЛ рд▓рдХреНрд╖рдгреЛрдВ рдХреЗ рдорд╣рддреНрд╡ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдирд╛ рдирд╣реАрдВ рд╣реИ?

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

рдЕрдм рдмрд╛рдд рд╣реИред рд╣рдо рдПрдХ рд╕реНрддрди рдХреИрдВрд╕рд░ рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВрдЧреЗ - рд╕реНрдХрд┐рдЯрд┐рдЯ-рд▓рд░реНрди "рдмреНрд░реЗрд╕реНрдЯ рдХреИрдВрд╕рд░" ред рд╣рдо рддреАрди рдореЙрдбрд▓ рдмрдирд╛рдПрдВрдЧреЗ рдФрд░ рдЙрдирдХреА рдкреНрд░рднрд╛рд╡рд╢реАрд▓рддрд╛ рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВрдЧреЗред рдЕрд░реНрдерд╛рддреН, рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореЙрдбрд▓реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ:

  1. рдЖрд░рдПрдл рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдмреБрдирд┐рдпрд╛рджреА рдореЙрдбрд▓ (рд╣рдо рдЗрд╕ рдЖрд░рдПрдл рдореЙрдбрд▓ рдХреЛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдХрд░реЗрдВрдЧреЗ)ред
  2. рдирдВрдмрд░ 1 рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╣реА рдореЙрдбрд▓, рд▓реЗрдХрд┐рди рдПрдХ рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рдореБрдЦ рдШрдЯрдХ рд╡рд┐рдзрд┐ (рдЖрд░рдПрдл + рдкреАрд╕реАрдЖрд░) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реБрд╡рд┐рдзрд╛ рд╕реНрдерд╛рди рдХреЗ рдЖрдпрд╛рдо рдореЗрдВ рдХрдореА рд▓рд╛рдЧреВ рдХреА рдЬрд╛рддреА рд╣реИред
  3. рдирдВрдмрд░ 2 рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╣реА рдореЙрдбрд▓, рд▓реЗрдХрд┐рди рд╣рд╛рдЗрдкрд░рдкрд░рдореАрдЯрд░ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди (рдЖрд░рдПрдл + рдкреАрд╕реАрдП + рдПрдЪрдЯреА) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ред

1. рдЖрдпрд╛рдд рдбреЗрдЯрд╛


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

  • df.head() - рдирдП рдбреЗрдЯрд╛ рдлрд╝реНрд░реЗрдо рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдпрд╣ рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реИред
  • df.info()- рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдФрд░ рд╕реНрддрдВрдн рд╕рд╛рдордЧреНрд░реА рдХреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдПред рдЬрд╛рд░реА рд░рдЦрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рд░реВрдкрд╛рдВрддрд░рдг рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
  • df.isna()- рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдбреЗрдЯрд╛ рдореЗрдВ рдХреЛрдИ рдорд╛рди рдирд╣реАрдВ рд╣реИрдВ NaNред рд╕рдВрдмрдВрдзрд┐рдд рдорд╛рди, рдпрджрд┐ рдХреЛрдИ рд╣реЛ, рдХреЛ рдХрд┐рд╕реА рддрд░рд╣ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдпрд╛ рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдбреЗрдЯрд╛ рдлрд╝реНрд░реЗрдо рд╕реЗ рд╕рдВрдкреВрд░реНрдг рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдирд┐рдХрд╛рд▓рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
  • df.describe() - рд╕реНрддрдВрднреЛрдВ рдореЗрдВ рд╕рдВрдХреЗрддрдХ рдХреЗ рдиреНрдпреВрдирддрдо, рдЕрдзрд┐рдХрддрдо, рдФрд╕рдд рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕реНрддрдВрднреЛрдВ рдореЗрдВ рдФрд╕рдд рд╡рд░реНрдЧ рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рд╡рд┐рдЪрд▓рди рдХреЗ рд╕рдВрдХреЗрддрдХреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдПред

рд╣рдорд╛рд░реЗ рдбреЗрдЯрд╛рд╕реЗрдЯ рдореЗрдВ, рдПрдХ рд╕реНрддрдВрдн cancer(рдХреИрдВрд╕рд░) рд▓рдХреНрд╖реНрдп рдЪрд░ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдореВрд▓реНрдп рд╣рдо рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред 0"рдХреЛрдИ рдмреАрдорд╛рд░реА рдирд╣реАрдВ рд╣реИред" 1- "рдмреАрдорд╛рд░реА рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ред"

import pandas as pd
from sklearn.datasets import load_breast_cancer
columns = ['mean radius', 'mean texture', 'mean perimeter', 'mean area', 'mean smoothness', 'mean compactness', 'mean concavity', 'mean concave points', 'mean symmetry', 'mean fractal dimension', 'radius error', 'texture error', 'perimeter error', 'area error', 'smoothness error', 'compactness error', 'concavity error', 'concave points error', 'symmetry error', 'fractal dimension error', 'worst radius', 'worst texture', 'worst perimeter', 'worst area', 'worst smoothness', 'worst compactness', 'worst concavity', 'worst concave points', 'worst symmetry', 'worst fractal dimension']
dataset = load_breast_cancer()
data = pd.DataFrame(dataset['data'], columns=columns)
data['cancer'] = dataset['target']
display(data.head())
display(data.info())
display(data.isna().sum())
display(data.describe())


. . , cancer, , . 0 ┬л ┬╗. 1 тАФ ┬л ┬╗

2.


рдЕрдм Scikit-learn рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреЗрдЯрд╛ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░реЗрдВ train_test_splitред рд╣рдо рдореЙрдбрд▓ рдХреЛ рдпрдерд╛рд╕рдВрднрд╡ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдбреЗрдЯрд╛ рджреЗрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╣рдореЗрдВ рдореЙрдбрд▓ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдирд┐рдкрдЯрд╛рди рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рдбреЗрдЯрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╣рдо рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐, рдЬреИрд╕рд╛ рдХрд┐ рдбреЗрдЯрд╛ рд╕реЗрдЯ рдореЗрдВ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдмрдврд╝ рдЬрд╛рддреА рд╣реИ, рдЙрд╕реА рдкреНрд░рдХрд╛рд░ рдбреЗрдЯрд╛ рдХреА рдорд╛рддреНрд░рд╛ рдЬрд┐рд╕реЗ рд╢реИрдХреНрд╖рд┐рдХ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рд▓рд╛рдЦреЛрдВ рд▓рд╛рдЗрдиреЗрдВ рд╣реИрдВ, рддреЛ рдЖрдк рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП 90% рд▓рд╛рдЗрдиреЛрдВ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП 10% рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдХреЗ рд╕реЗрдЯ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдкрд░реАрдХреНрд╖рдг рдбреЗрдЯрд╛ рд╕реЗрдЯ рдореЗрдВ рдХреЗрд╡рд▓ 569 рдкрдВрдХреНрддрд┐рдпрд╛рдБ рд╣реИрдВред рдФрд░ рдпрд╣ рдореЙрдбрд▓ рдХреЗ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдЗрддрдирд╛ рдирд╣реАрдВ рд╣реИред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдФрд░ рд╕рддреНрдпрд╛рдкрди рдбреЗрдЯрд╛ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдирд┐рд╖реНрдкрдХреНрд╖ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рд╕реЗрдЯ рдХреЛ рджреЛ рд╕рдорд╛рди рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░реЗрдВрдЧреЗ - 50% - рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдбреЗрдЯрд╛ рдФрд░ 50% - рд╕рддреНрдпрд╛рдкрди рдбреЗрдЯрд╛ред рд╣рдо рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВstratify=y рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдФрд░ рдкрд░реАрдХреНрд╖рдг рдбреЗрдЯрд╛ рд╕реЗрдЯ рджреЛрдиреЛрдВ рдХрд╛ рдореВрд▓ рдбреЗрдЯрд╛ рд╕реЗрдЯ рдХреЗ рд╕рдорд╛рди 0 рдФрд░ 1 рдХрд╛ рдЕрдиреБрдкрд╛рдд рд╣реИред

from sklearn.model_selection import train_test_split
X = data.drop('cancer', axis=1)  
y = data['cancer'
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.50, random_state = 2020, stratify=y)

3. рдбреЗрдЯрд╛ рд╕реНрдХреЗрд▓рд┐рдВрдЧ


рдореЙрдбрд▓рд┐рдВрдЧ рдореЗрдВ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рдбреЗрдЯрд╛ рдХреЛ рд╕реНрдХреЗрд▓ рдХрд░рдХреЗ "рдХреЗрдВрджреНрд░" рдФрд░ "рдорд╛рдирдХреАрдХреГрдд" рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ ред рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд╡рд┐рднрд┐рдиреНрди рдЗрдХрд╛рдЗрдпреЛрдВ рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдорд╛рддреНрд░рд╛рдПрдВ рд╡реНрдпрдХреНрдд рдХреА рдЬрд╛рддреА рд╣реИрдВред рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЖрдкрдХреЛ рдЙрдирдХреЗ рдорд╣рддреНрд╡ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рдВрдХреЗрддреЛрдВ рдХреЗ рдмреАрдЪ "рдирд┐рд╖реНрдкрдХреНрд╖ рд▓рдбрд╝рд╛рдИ" рдЖрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдо y_trainрдкрдВрдбреЛрдВ рдХреЗ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ Seriesрд╕реЗ NumPy рд╕рд░рдгреА рдореЗрдВ рдХрдирд╡рд░реНрдЯ рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдмрд╛рдж рдореЗрдВ рдореЙрдбрд▓ рдЗрд╕реА рд▓рдХреНрд╖реНрдп рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХреЗред

import numpy as np
from sklearn.preprocessing import StandardScaler
ss = StandardScaler()
X_train_scaled = ss.fit_transform(X_train)
X_test_scaled = ss.transform(X_test)
y_train = np.array(y_train)

4. рдореВрд▓ рдореЙрдбрд▓ рдХрд╛ рдкреНрд░рд╢рд┐рдХреНрд╖рдг (рдореЙрдбрд▓ рдирдВрдмрд░ 1, рдЖрд░рдПрдл)


рдЕрдм рдореЙрдбрд▓ рдирдВрдмрд░ 1 рдмрдирд╛рдПрдВред рдЗрд╕рдореЗрдВ, рд╣рдо рдпрд╛рдж рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХреЗрд╡рд▓ рд░реИрдВрдбрдо рдлрд╝реЙрд░реЗрд╕реНрдЯ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╕рднреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдЗрди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╡рд░рдг sklearn.ensemble.RandomForestClassifier рдХреЗ рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ )ред рдореЙрдбрд▓ рдХреЛ рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВред рдЙрд╕рдХреЗ рдмрд╛рдж, рд╣рдо рдЙрд╕реЗ рд╕реНрдХреЗрд▓ рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдкрд░ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд░реЗрдВрдЧреЗред рдореЙрдбрд▓ рдХреА рд╕рдЯреАрдХрддрд╛ рдХреЛ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдбреЗрдЯрд╛ рдкрд░ рдорд╛рдкрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import recall_score
rfc = RandomForestClassifier()
rfc.fit(X_train_scaled, y_train)
display(rfc.score(X_train_scaled, y_train))
# 1.0

рдпрджрд┐ рд╣рдо рдпрд╣ рдЬрд╛рдирдиреЗ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╕реНрддрди рдХреИрдВрд╕рд░ рдХреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХрд░рдиреЗ рдореЗрдВ рдЖрд░рдПрдл рдореЙрдбрд▓ рдХреЗ рд▓рд┐рдП рдХреМрди рд╕реА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВ, рддреЛ рд╣рдо рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╕рдВрдХреЗрдд рдХреЗ рдорд╣рддреНрд╡ рдХреЗ рд╕рдВрдХреЗрддрдХреЛрдВ рдХреА рдХрд▓реНрдкрдирд╛ рдФрд░ рдорд╛рддреНрд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ feature_importances_:

feats = {}
for feature, importance in zip(data.columns, rfc_1.feature_importances_):
    feats[feature] = importance
importances = pd.DataFrame.from_dict(feats, orient='index').rename(columns={0: 'Gini-Importance'})
importances = importances.sort_values(by='Gini-Importance', ascending=False)
importances = importances.reset_index()
importances = importances.rename(columns={'index': 'Features'})
sns.set(font_scale = 5)
sns.set(style="whitegrid", color_codes=True, font_scale = 1.7)
fig, ax = plt.subplots()
fig.set_size_inches(30,15)
sns.barplot(x=importances['Gini-Importance'], y=importances['Features'], data=importances, color='skyblue')
plt.xlabel('Importance', fontsize=25, weight = 'bold')
plt.ylabel('Features', fontsize=25, weight = 'bold')
plt.title('Feature Importance', fontsize=25, weight = 'bold')
display(plt.show())
display(importances)


рд╕рдВрдХреЗрддреЛрдВ рдХреЗ "рдорд╣рддреНрд╡" рдХрд╛ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди


рд╕рдВрдХреЗрдд рд╕рдВрдХреЗрддрдХ

5. рдкреНрд░рдореБрдЦ рдШрдЯрдХреЛрдВ рдХреА рд╡рд┐рдзрд┐


рдЕрдм рдкреВрдЫрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдореВрд▓ рдЖрд░рдПрдл рдореЙрдбрд▓ рдХреЛ рдХреИрд╕реЗ рд╕реБрдзрд╛рд░ рд╕рдХрддреЗ рд╣реИрдВред рдлреАрдЪрд░ рд╕реНрдкреЗрд╕ рдХреЗ рдЖрдпрд╛рдо рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреА рддрдХрдиреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдХрдо рдЪрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдбреЗрдЯрд╛ рд╕реЗрдЯ рдХреЛ рдкреЗрд╢ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ рдФрд░ рд╕рд╛рде рд╣реА рд╕рд╛рде рдореЙрдбрд▓ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдорд╛рддреНрд░рд╛ рдХреЛ рдХрдо рдХрд░рдирд╛ред рдкреАрд╕реАрдП рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдЖрдк рдЗрди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд╕рдВрдЪрдпреА рдирдореВрдирд╛ рд╡рд┐рдЪрд░рдг рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдпрд╣ рд╕рдордЭ рд╕рдХреЗрдВ рдХрд┐ рдХреМрди рд╕реА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдбреЗрдЯрд╛ рдореЗрдВ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╡рд┐рдЪрд░рдг рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рддреА рд╣реИрдВред
рд╣рдо рдкреАрд╕реАрдП ( pca_test) рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рддреЗ рд╣реИрдВ , рдРрд╕реЗ рдШрдЯрдХреЛрдВ (рд╕реБрд╡рд┐рдзрд╛рдУрдВ) рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрддреЗ рд╣реИрдВ рдЬрд┐рди рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рдордиреЗ рдХрд┐рддрдиреЗ рдШрдЯрдХреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕ рдкрд░ рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕рднреА рдЙрддреНрдкрдиреНрди рдШрдЯрдХреЛрдВ рдХреЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╕рдВрдХреЗрддрдХ рдХреЛ 30 рддрдХ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рд╣реИред рдлрд┐рд░ рд╣рдо pca_testрд╕реНрдХреЗрд▓ рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВX_trainрд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ pca_test.fit()ред рдЙрд╕рдХреЗ рдмрд╛рдж рд╣рдо рдбреЗрдЯрд╛ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░рддреЗ рд╣реИрдВред

import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.decomposition import PCA
pca_test = PCA(n_components=30)
pca_test.fit(X_train_scaled)
sns.set(style='whitegrid')
plt.plot(np.cumsum(pca_test.explained_variance_ratio_))
plt.xlabel('number of components')
plt.ylabel('cumulative explained variance')
plt.axvline(linewidth=4, color='r', linestyle = '--', x=10, ymin=0, ymax=1)
display(plt.show())
evr = pca_test.explained_variance_ratio_
cvr = np.cumsum(pca_test.explained_variance_ratio_)
pca_df = pd.DataFrame()
pca_df['Cumulative Variance Ratio'] = cvr
pca_df['Explained Variance Ratio'] = evr
display(pca_df.head(10))


рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдШрдЯрдХреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ 10 рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдЙрдирдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╡реГрджреНрдзрд┐ рд╕реЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╡рд┐рдЪрд░рдг рдореЗрдВ рд╡реГрджреНрдзрд┐ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ


рдЗрд╕ рдбреЗрдЯрд╛ рдлрд╝реНрд░реЗрдо рдореЗрдВ рдХрдореНрдпреБрд▓реЗрдЯрд┐рд╡ рд╡реЗрд░рд┐рдПрдВрд╕ рдЕрдиреБрдкрд╛рдд (рдбреЗрдЯрд╛ рдХреЗ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд┐рдП рдЧрдП рд╡рд┐рдЪрд░рдг рдХрд╛ рд╕рдВрдЪрдпреА рдЖрдХрд╛рд░) рдФрд░ рд╕рдордЭрд╛рдпрд╛ рд╡реИрд░рд┐рдПрдВрдЯ рдЕрдиреБрдкрд╛рдд (рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд┐рдП рдЧрдП рд╡рд┐рдЪрд░рдг рдХреА рдХреБрд▓ рдорд╛рддреНрд░рд╛ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдХ рдХрд╛ рдпреЛрдЧрджрд╛рди) рдЬреИрд╕реЗ рд╕рдВрдХреЗрддрдХ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред

рдпрджрд┐ рдЖрдк рдКрдкрд░ рджрд┐рдП рдЧрдП рдлреНрд░реЗрдо рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдкреАрд╕реАрдП рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ 30 рдЪрд░ рд╕реЗ 10 рдЪрд░ рдкрд░ рдЬрд╛рдирд╛ рд╣реЛрдЧрд╛ред рдШрдЯрдХреЛрдВ рдХреЛ 95% рдбреЗрдЯрд╛ рдлреИрд▓рд╛рд╡ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЕрдиреНрдп 20 рдШрдЯрдХреЛрдВ рдореЗрдВ 5% рд╕реЗ рдХрдо рд╡рд┐рдЪрд░рдг рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╣рдо рдЙрдиреНрд╣реЗрдВ рдордирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рддрд░реНрдХ рдХреЗ рдмрд╛рдж, рд╣рдо рдкреАрд╕реАрдП рдХрд╛ рдЙрдкрдпреЛрдЧ рдШрдЯрдХреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ 30 рд╕реЗ рдШрдЯрд╛рдХрд░ 10 рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВX_trainрдФрд░X_testред рд╣рдо рдЗрди рдХреГрддреНрд░рд┐рдо рд░реВрдк рд╕реЗ рдмрдирд╛рдП рдЧрдП "рдХрдо рдЖрдпрд╛рдо" рдбреЗрдЯрд╛ рд╕реЗрдЯ рдХреЛ рдЕрдВрджрд░X_train_scaled_pcaрдФрд░ рдЕрдВрджрд░рд▓рд┐рдЦрддреЗ рд╣реИрдВX_test_scaled_pcaред

pca = PCA(n_components=10)
pca.fit(X_train_scaled)
X_train_scaled_pca = pca.transform(X_train_scaled)
X_test_scaled_pca = pca.transform(X_test_scaled)

рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдХ рд╕рдВрдмрдВрдзрд┐рдд "рд╡реЗрдЯ" рдХреЗ рд╕рд╛рде рд╕реНрд░реЛрдд рдЪрд░ рдХрд╛ рдПрдХ рд░реИрдЦрд┐рдХ рд╕рдВрдпреЛрдЬрди рд╣реИред рд╣рдо рдбреЗрдЯрд╛ рдлреНрд░реЗрдо рдмрдирд╛рдХрд░ рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рдЗрди "рднрд╛рд░" рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред

pca_dims = []
for x in range(0, len(pca_df)):
    pca_dims.append('PCA Component {}'.format(x))
pca_test_df = pd.DataFrame(pca_test.components_, columns=columns, index=pca_dims)
pca_test_df.head(10).T


рдШрдЯрдХ рд╕реВрдЪрдирд╛ рдбреЗрдЯрд╛рдлреНрд░реЗрдо

6. рдореВрд▓ рдШрдЯрдХ рдореЙрдбрд▓ рдХреЛ рдбреЗрдЯрд╛ (рдореЙрдбрд▓ рдирдВрдмрд░ 2, рдЖрд░рдПрдл + рдкреАрд╕реАрдП) рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдмреБрдирд┐рдпрд╛рджреА рдЖрд░рдПрдл рдореЙрдбрд▓ рдХрд╛ рдкреНрд░рд╢рд┐рдХреНрд╖рдг


рдЕрдм рд╣рдо рдПрдХ рдФрд░ рдмреБрдирд┐рдпрд╛рджреА рдЖрд░рдПрдл рдореЙрдбрд▓ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдкрд░ рдкрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ X_train_scaled_pcaрдФрд░ y_trainрдФрд░ рдкрддрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╡рд╣рд╛рдБ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореЙрдбрд▓ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЬрд╛рд░реА рдХрд┐рдП рдЧрдП рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгрд┐рдпреЛрдВ рдХреА рд╕рдЯреАрдХрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рд╣реИред

rfc = RandomForestClassifier()
rfc.fit(X_train_scaled_pca, y_train)
display(rfc.score(X_train_scaled_pca, y_train))
# 1.0

рдореЙрдбрд▓ рдиреАрдЪреЗ рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╣реИрдВред

7. рд╣рд╛рдЗрдкрд░рдкрд░рдореЗрдЯрд░реНрд╕ рдХрд╛ рдЕрдиреБрдХреВрд▓рдиред рд░рд╛рдЙрдВрдб 1: рд░реИрдВрдбрдорд╛рдЗрдВрдбрд╕рд░реНрдЪ рд╕реАрд╡реАрд╕реА


рдкреНрд░рдореБрдЦ рдШрдЯрдХ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рдЖрд░рдПрдл рдореЙрдбрд▓ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрд╛рджрд┐рдд рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгрд┐рдпреЛрдВ рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЙрдбрд▓ рд╣рд╛рдЗрдкрд░рдкрд░рдореЗрдЯрд░реНрд╕ рдХреЗ рдЕрдиреБрдХреВрд▓рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ред Hyperparameters рдХреЛ рдореЙрдбрд▓ рдХреА "рд╕реЗрдЯрд┐рдВрдЧ" рдЬреИрд╕рд╛ рдХреБрдЫ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдЬреЛ рдПрдХ рдбреЗрдЯрд╛ рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рдПрдХрджрдо рд╕рд╣реА рд╣реИрдВ, рджреВрд╕рд░реЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдВрдЧреА - рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЙрдиреНрд╣реЗрдВ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдЖрдк randomizedSearchCV рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдЖрдкрдХреЛ рдХрд╛рдлреА рд╣рдж рддрдХ рдореВрд▓реНрдпреЛрдВ рдХреА рдПрдХ рд╡рд┐рд╕реНрддреГрдд рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЖрд░рдПрдл рдореЙрдбрд▓ рдХреЗ рд▓рд┐рдП рд╕рднреА рд╣рд╛рдЗрдкрд░рдкрд░рдореЗрдЯрд░реНрд╕ рдХреЗ рд╡рд┐рд╡рд░рдг рдпрд╣рд╛рдВ рдорд┐рд▓ рд╕рдХрддреЗ рд╣реИрдВ ред

рдХрд╛рдо рдХреЗ рджреМрд░рд╛рди, рд╣рдо рдПрдХ рдРрд╕реА рдЗрдХрд╛рдИ рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВ, param_distрдЬрд┐рд╕рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╣рд╛рдЗрдкрд░рдкрд░рдореАрдЯрд░ рдХреЗ рд▓рд┐рдП, рдорд╛рдиреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЗрд╕рдХреЗ рдмрд╛рдж, рд╣рдо рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рддреЗ рд╣реИрдВредrsрдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП RandomizedSearchCV(), рдЗрд╕реЗ рдЖрд░рдПрдл рдореЙрдбрд▓ рдкрд╛рд╕ рдХрд░рдирд╛ param_dist, рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдФрд░ рдХреНрд░реЙрд╕-рд╕рддреНрдпрд╛рдкрди рдХреА рд╕рдВрдЦреНрдпрд╛ рдЬрд┐рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рд╣рд╛рдЗрдкрд░рдкрд░рдореАрдЯрд░ verboseрдЖрдкрдХреЛ рдЕрдкрдиреЗ рдСрдкрд░реЗрд╢рди рдХреЗ рджреМрд░рд╛рди рдореЙрдбрд▓ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдЬрд╛рдирдХрд╛рд░реА рдХреА рдорд╛рддреНрд░рд╛ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ (рдЬреИрд╕реЗ рдореЙрдбрд▓ рдХреЗ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рджреМрд░рд╛рди рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ)ред рд╣рд╛рдЗрдкрд░рдкрд░рдореАрдЯрд░ n_jobsрдЖрдкрдХреЛ рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдореЙрдбрд▓ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдХрд┐рддрдиреЗ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕реЗ n_jobsрдПрдХ рдореВрд▓реНрдп рдкрд░ рд╕реЗрдЯ рдХрд░рдиреЗ -1рд╕реЗ рдПрдХ рддреЗрдЬрд╝ рдореЙрдбрд▓ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рднреА рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ред

рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣рд╛рдЗрдкрд░рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдЪрдпрди рдореЗрдВ рд▓рдЧреЗ рд░рд╣реЗрдВрдЧреЗ:

  • n_estimators - "рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╡рди" рдореЗрдВ "рдкреЗрдбрд╝" рдХреА рд╕рдВрдЦреНрдпрд╛ред
  • max_features - рдмрдВрдЯрд╡рд╛рд░реЗ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ред
  • max_depth - рдкреЗрдбрд╝реЛрдВ рдХреА рдЕрдзрд┐рдХрддрдо рдЧрд╣рд░рд╛рдИред
  • min_samples_split - рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреНрд░реА рдиреЛрдб рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╡рд╕реНрддреБрдУрдВ рдХреА рдиреНрдпреВрдирддрдо рд╕рдВрдЦреНрдпрд╛ред
  • min_samples_leaf - рдкрддреНрддрд┐рдпреЛрдВ рдореЗрдВ рд╡рд╕реНрддреБрдУрдВ рдХреА рдиреНрдпреВрдирддрдо рд╕рдВрдЦреНрдпрд╛ред
  • bootstrap - рд╡рд╛рдкрд╕реА рдХреЗ рд╕рд╛рде рдЙрдк-рд╡реГрдХреНрд╖реЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

from sklearn.model_selection import RandomizedSearchCV
n_estimators = [int(x) for x in np.linspace(start = 100, stop = 1000, num = 10)]
max_features = ['log2', 'sqrt']
max_depth = [int(x) for x in np.linspace(start = 1, stop = 15, num = 15)]
min_samples_split = [int(x) for x in np.linspace(start = 2, stop = 50, num = 10)]
min_samples_leaf = [int(x) for x in np.linspace(start = 2, stop = 50, num = 10)]
bootstrap = [True, False]
param_dist = {'n_estimators': n_estimators,
               'max_features': max_features,
               'max_depth': max_depth,
               'min_samples_split': min_samples_split,
               'min_samples_leaf': min_samples_leaf,
               'bootstrap': bootstrap}
rs = RandomizedSearchCV(rfc_2, 
                        param_dist, 
                        n_iter = 100
                        cv = 3
                        verbose = 1
                        n_jobs=-1
                        random_state=0)
rs.fit(X_train_scaled_pca, y_train)
rs.best_params_
# {'n_estimators': 700,
# 'min_samples_split': 2,
# 'min_samples_leaf': 2,
# 'max_features': 'log2',
# 'max_depth': 11,
# 'bootstrap': True}

рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде n_iter = 100рдФрд░ cv = 3, рд╣рдордиреЗ 300 рдЖрд░рдПрдл рдореЙрдбрд▓ рдмрдирд╛рдП, рдЬреЛ рдХрд┐ рдКрдкрд░ рдкреНрд░рд╕реНрддреБрдд рд╣рд╛рдЗрдкрд░ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд░реВрдк рд╕реЗ рд╕рдВрдпреЛрдЬрди рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВред рд╣рдо best_params_ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдореЙрдбрд▓ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕ рд╕реНрддрд░ рдкрд░, рдпрд╣ рд╣рдореЗрдВ рдЙрди рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рд╕реАрдорд╛рдУрдВ рдкрд░ рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдбреЗрдЯрд╛ рдирд╣реАрдВ рджреЗ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдЕрдиреБрдХреВрд▓рди рдХреЗ рдЕрдЧрд▓реЗ рджреМрд░ рдореЗрдВ рддрд▓рд╛рд╢рдиреЗ рдпреЛрдЧреНрдп рд╣реИрдВред рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдореВрд▓реНрдпреЛрдВ рдХреА рдХрд┐рд╕ рд╢реНрд░реЗрдгреА рдореЗрдВ рдпрд╣ рдЦреЛрдЬ рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ, рд╣рдо рдЖрд╕рд╛рдиреА рд╕реЗ рд░реИрдВрдбрдорд╛рдЗрдВрдбрд╕рд░реНрдЪ рд╕реАрд╡реА рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рд╡рд╛рд▓реЗ рдбреЗрдЯрд╛ рдлреНрд░реЗрдо рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

rs_df = pd.DataFrame(rs.cv_results_).sort_values('rank_test_score').reset_index(drop=True)
rs_df = rs_df.drop([
            'mean_fit_time', 
            'std_fit_time', 
            'mean_score_time',
            'std_score_time', 
            'params', 
            'split0_test_score', 
            'split1_test_score', 
            'split2_test_score', 
            'std_test_score'],
            axis=1)
rs_df.head(10)


RandomizedSearchCV рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рдкрд░рд┐рдгрд╛рдо

рдЕрдм рд╣рдо рдмрд╛рд░ рдЧреНрд░рд╛рдл рдмрдирд╛рдПрдВрдЧреЗ, рдЬрд┐рд╕ рдкрд░ рдПрдХреНрд╕ рдЕрдХреНрд╖ рдХреЗ рд╕рд╛рде, рд╣рд╛рдЗрдкрд░рдкрд░рдореАрдЯрд░ рдорд╛рди рд╣реИрдВ, рдФрд░ рд╡рд╛рдИ рдЕрдХреНрд╖ рдкрд░ рдореЙрдбрд▓ рджреНрд╡рд╛рд░рд╛ рджрд┐рдЦрд╛рдП рдЧрдП рдФрд╕рдд рдореВрд▓реНрдп рд╣реИрдВред рдЗрд╕рд╕реЗ рдпрд╣ рд╕рдордЭрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдХрд┐ рд╣рд╛рдЗрдкрд░рдкрд░рдореЗрдЯрд░реНрд╕ рдХреЗ рдореВрд▓реНрдп, рдФрд╕рддрди, рдЕрдкрдирд╛ рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рдкреНрд░рджрд░реНрд╢рди рдХреИрд╕реЗ рджрд┐рдЦрд╛рддреЗ рд╣реИрдВред

fig, axs = plt.subplots(ncols=3, nrows=2)
sns.set(style="whitegrid", color_codes=True, font_scale = 2)
fig.set_size_inches(30,25)
sns.barplot(x='param_n_estimators', y='mean_test_score', data=rs_df, ax=axs[0,0], color='lightgrey')
axs[0,0].set_ylim([.83,.93])axs[0,0].set_title(label = 'n_estimators', size=30, weight='bold')
sns.barplot(x='param_min_samples_split', y='mean_test_score', data=rs_df, ax=axs[0,1], color='coral')
axs[0,1].set_ylim([.85,.93])axs[0,1].set_title(label = 'min_samples_split', size=30, weight='bold')
sns.barplot(x='param_min_samples_leaf', y='mean_test_score', data=rs_df, ax=axs[0,2], color='lightgreen')
axs[0,2].set_ylim([.80,.93])axs[0,2].set_title(label = 'min_samples_leaf', size=30, weight='bold')
sns.barplot(x='param_max_features', y='mean_test_score', data=rs_df, ax=axs[1,0], color='wheat')
axs[1,0].set_ylim([.88,.92])axs[1,0].set_title(label = 'max_features', size=30, weight='bold')
sns.barplot(x='param_max_depth', y='mean_test_score', data=rs_df, ax=axs[1,1], color='lightpink')
axs[1,1].set_ylim([.80,.93])axs[1,1].set_title(label = 'max_depth', size=30, weight='bold')
sns.barplot(x='param_bootstrap',y='mean_test_score', data=rs_df, ax=axs[1,2], color='skyblue')
axs[1,2].set_ylim([.88,.92])
axs[1,2].set_title(label = 'bootstrap', size=30, weight='bold')
plt.show()


рд╣рд╛рдЗрдкрд░рдкреИрд░рдореАрдЯрд░ рдорд╛рдиреЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг

рдпрджрд┐ рдЖрдк рдЙрдкрд░реЛрдХреНрдд рдЧреНрд░рд╛рдлрд╝ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдХреБрдЫ рджрд┐рд▓рдЪрд╕реНрдк рдЪреАрдЬреЛрдВ рдХреЛ рдиреЛрдЯрд┐рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдХреИрд╕реЗ, рдФрд╕рддрди, рд╣рд╛рдЗрдкрд░рдкреИрд░рдореАрдЯрд░ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдореВрд▓реНрдп рдореЙрдбрд▓ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреА рд╣реИрдВред

  • n_estimators: 300, 500, 700 рдХреЗ рдореВрд▓реНрдп, рдЬрд╛рд╣рд┐рд░рд╛ рддреМрд░ рдкрд░, рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдФрд╕рдд рдкрд░рд┐рдгрд╛рдо рджрд┐рдЦрд╛рддреЗ рд╣реИрдВред
  • min_samples_split: 2 рдФрд░ 7 рдЬреИрд╕реЗ рдЫреЛрдЯреЗ рдореВрд▓реНрдп рд╕рд░реНрд╡реЛрддреНрддрдо рдкрд░рд┐рдгрд╛рдо рджрд┐рдЦрд╛рддреЗ рд╣реИрдВред рдорд╛рди 23 рднреА рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИред рдЖрдк рдЗрд╕ рд╣рд╛рдЗрдкрд░рдкрд░рдореАрдЯрд░ рдХреЗ рдХрдИ рдорд╛рдиреЛрдВ рдХреЛ 2 рд╕реЗ рдЕрдзрд┐рдХ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рд▓рдЧрднрдЧ 23 рдХреЗ рдХрдИ рдорд╛рдиреЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
  • min_samples_leaf: рдПрдХ рднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд╣рд╛рдЗрдкрд░рдкрд░рдореАрдЯрд░ рдХреЗ рдЫреЛрдЯреЗ рдореВрд▓реНрдп рдмреЗрд╣рддрд░ рдкрд░рд┐рдгрд╛рдо рджреЗрддреЗ рд╣реИрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рдо 2 рдФрд░ 7 рдХреЗ рдмреАрдЪ рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдЕрдиреБрднрд╡ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
  • max_features: рд╡рд┐рдХрд▓реНрдк sqrtрдЙрдЪреНрдЪрддрдо рдФрд╕рдд рдкрд░рд┐рдгрд╛рдо рджреЗрддрд╛ рд╣реИред
  • max_depth: рд╣рд╛рдЗрдкрд░рдкрд░рдореАрдЯрд░ рдХреЗ рдореВрд▓реНрдп рдФрд░ рдореЙрдбрд▓ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЗ рдмреАрдЪ рдХреЛрдИ рд╕реНрдкрд╖реНрдЯ рд╕рдВрдмрдВрдз рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдорд╛рди 2, 3, 7, 11, 15 рдЕрдЪреНрдЫреЗ рд▓рдЧрддреЗ рд╣реИрдВред
  • bootstrap: рдореВрд▓реНрдп Falseрд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдФрд╕рдд рдкрд░рд┐рдгрд╛рдо рджрд┐рдЦрд╛рддрд╛ рд╣реИред

рдЕрдм, рдЗрди рдирд┐рд╖реНрдХрд░реНрд╖реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдо рд╣рд╛рдЗрдкрд░рдкрд░рдореЗрдЯрд░реНрд╕ рдХреЗ рдЕрдиреБрдХреВрд▓рди рдХреЗ рджреВрд╕рд░реЗ рджреМрд░ рдореЗрдВ рдЖрдЧреЗ рдмрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдЙрди рдорд╛рдиреЛрдВ рдХреА рд╢реНрд░реЗрдгреА рдХреЛ рд╕реАрдорд┐рдд рдХрд░ рджреЗрдЧрд╛ рдЬрд┐рдирдореЗрдВ рд╣рдо рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВред

8. рд╣рд╛рдЗрдкрд░рдкрд░рдореЗрдЯрд░реНрд╕ рдХрд╛ рдЕрдиреБрдХреВрд▓рдиред рд░рд╛рдЙрдВрдб 2: рдЧреНрд░рд┐рдбрд╕рд░реНрдЪ рд╕реАрд╡реА (рдореЙрдбрд▓ рдирдВрдмрд░ 3, рдЖрд░рдПрдл + рдкреАрд╕реАрдП + рдПрдЪрдЯреА рдХреЗ рд▓рд┐рдП рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рдЕрдВрддрд┐рдо рддреИрдпрд╛рд░реА)


RandomizedSearchCV рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рд╣рд╛рдЗрдкрд░рдкрд░рдореАрдЯрд░ рдХреЗ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреЗ рд╕рдВрдпреЛрдЬрди рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рдЦреЛрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП GridSearchCV рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рд╡рд╣реА рд╣рд╛рдЗрдкрд░рдкрд░рдореЗрдЯрд░реНрд╕ рдХреА рдЬрд╛рдВрдЪ рдпрд╣рд╛рдВ рдХреА рдЬрд╛рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдм рд╣рдо рдЙрдирдХреЗ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреЗ рд╕рдВрдпреЛрдЬрди рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдзрд┐рдХ "рд╕рдВрдкреВрд░реНрдг" рдЦреЛрдЬ рд▓рд╛рдЧреВ рдХрд░ рд░рд╣реЗ рд╣реИрдВред GridSearchCV рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рд╛рдЗрдкрд░рдкрд░рдореЗрдЯрд░реНрд╕ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрдпреЛрдЬрди рдХреА рдЬрд╛рдВрдЪ рдХреА рдЬрд╛рддреА рд╣реИред рдЬрдм рд╣рдо рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдЦреЛрдЬ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рддреЛ рд░реИрдВрдбрдорд╛рдЗрдВрдбрд╕рд░реНрдЪ CV рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдХрдореНрдкреНрдпреВрдЯреЗрд╢рдирд▓ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 3 рдмреНрд▓реЙрдХреЛрдВ рдореЗрдВ рдХреНрд░реЙрд╕-рдорд╛рдиреНрдпрддрд╛ рдХреЗ рд╕рд╛рде 6 рд╣рд╛рдЗрдкрд░рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП 10 рдорд╛рдиреЛрдВ рдкрд░ рд╢реЛрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 10тБ╢ x 3, рдпрд╛ 3,000,000 рдореЙрдбрд▓ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рд╕рддреНрд░реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд░реИрдВрдбрдорд╛рдЗрдЬреНрдбрд╕рд░реНрдЪ CVC рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо GridSearchCV рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рд╣рдордиреЗ рдЕрдзреНрдпрдпрди рдХрд┐рдП рдЧрдП рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдорд╛рди рдХреЛ рд╕реАрдорд┐рдд рдХрд░ рджрд┐рдпрд╛ рд╣реИред

рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ рд░реЗрдВрдбрдорд╛рдЗрдЬреНрдбрд╕рд░реНрдЪ CVC рдХреА рдорджрдж рд╕реЗ рдЬреЛ рдкрд╛рдпрд╛, рдЙрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдо рдЙрди рд╣рд╛рдЗрдкрд░рдкреИрд░рд╛рдореАрдЯрд░реЛрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рджрд┐рдЦрд╛рдпрд╛ рд╣реИ:

from sklearn.model_selection import GridSearchCV
n_estimators = [300,500,700]
max_features = ['sqrt']
max_depth = [2,3,7,11,15]
min_samples_split = [2,3,4,22,23,24]
min_samples_leaf = [2,3,4,5,6,7]
bootstrap = [False]
param_grid = {'n_estimators': n_estimators,
               'max_features': max_features,
               'max_depth': max_depth,
               'min_samples_split': min_samples_split,
               'min_samples_leaf': min_samples_leaf,
               'bootstrap': bootstrap}
gs = GridSearchCV(rfc_2, param_grid, cv = 3, verbose = 1, n_jobs=-1)
gs.fit(X_train_scaled_pca, y_train)
rfc_3 = gs.best_estimator_
gs.best_params_
# {'bootstrap': False,
# 'max_depth': 7,
# 'max_features': 'sqrt',
# 'min_samples_leaf': 3,
# 'min_samples_split': 2,
# 'n_estimators': 500}

рдпрд╣рд╛рдВ рд╣рдо 540 (3 x 1 x 5 x 6 x 6 x 1) рдореЙрдбрд▓ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рд╕рддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП 3 рдмреНрд▓реЙрдХреЛрдВ рдореЗрдВ рдХреНрд░реЙрд╕-рд╕рддреНрдпрд╛рдкрди рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ 1620 рдореЙрдбрд▓ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рд╕рддреНрд░ рджреЗрддрд╛ рд╣реИред рдФрд░ рдЕрдм, рдЬрдм рд╣рдордиреЗ рд░реИрдВрдбрдорд╛рдЗрдВрдбрд╕рд░реНрдЪ рд╕реАрд╡реАрд╕реА рдФрд░ рдЧреНрд░рд┐рдбрд╕рд░реНрдЪрдХ рд╕реАрд╡реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рддреЛ рд╣рдо рдпрд╣ best_params_рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рдЪрд╛рд▓реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╣рд╛рдЗрдкрд░рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдХреМрди рд╕реЗ рдореВрд▓реНрдп рдореЙрдбрд▓ рдХреЛ рдЕрдзреНрдпрдпрди рдХреЗ рддрд╣рдд рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ (рдпреЗ рдорд╛рди рдкрд┐рдЫрд▓реЗ рдХреЛрдб рдмреНрд▓реЙрдХ рдХреЗ рдирд┐рдЪрд▓реЗ рднрд╛рдЧ рдореЗрдВ рджреЗрдЦреЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ) ред рдЗрди рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдореЙрдбрд▓ рдирдВрдмрд░ 3 рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

9. рд╕рддреНрдпрд╛рдкрди рдбреЗрдЯрд╛ рдкрд░ рдореЙрдбрд▓ рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди


рдЕрдм рдЖрдк рд╕рддреНрдпрд╛рдкрди рдбреЗрдЯрд╛ рдкрд░ рдмрдирд╛рдП рдЧрдП рдореЙрдбрд▓ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЕрд░реНрдерд╛рддреН, рд╣рдо рдЙрди рддреАрди рдореЙрдбрд▓реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рд╕рд╛рдордЧреНрд░реА рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИрдВред

рдпреЗ рдореЙрдбрд▓ рджреЗрдЦреЗрдВ:

y_pred = rfc.predict(X_test_scaled)
y_pred_pca = rfc.predict(X_test_scaled_pca)
y_pred_gs = gs.best_estimator_.predict(X_test_scaled_pca)

рдореЙрдбрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рддреНрд░реБрдЯрд┐ рдореИрдЯреНрд░рд┐рд╕ рдмрдирд╛рдПрдВ рдФрд░ рдпрд╣ рдкрддрд╛ рдХрд░реЗрдВ рдХрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рд╕реНрддрди рдХреИрдВрд╕рд░ рдХреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХрд░рдиреЗ рдореЗрдВ рдХрд┐рддрдирд╛ рд╕рдХреНрд╖рдо рд╣реИ:

from sklearn.metrics import confusion_matrix
conf_matrix_baseline = pd.DataFrame(confusion_matrix(y_test, y_pred), index = ['actual 0', 'actual 1'], columns = ['predicted 0', 'predicted 1'])
conf_matrix_baseline_pca = pd.DataFrame(confusion_matrix(y_test, y_pred_pca), index = ['actual 0', 'actual 1'], columns = ['predicted 0', 'predicted 1'])
conf_matrix_tuned_pca = pd.DataFrame(confusion_matrix(y_test, y_pred_gs), index = ['actual 0', 'actual 1'], columns = ['predicted 0', 'predicted 1'])
display(conf_matrix_baseline)
display('Baseline Random Forest recall score', recall_score(y_test, y_pred))
display(conf_matrix_baseline_pca)
display('Baseline Random Forest With PCA recall score', recall_score(y_test, y_pred_pca))
display(conf_matrix_tuned_pca)
display('Hyperparameter Tuned Random Forest With PCA Reduced Dimensionality recall score', recall_score(y_test, y_pred_gs))


рддреАрди рдореЙрдбрд▓реЛрдВ рдХреЗ рдХрд╛рдо рдХреЗ рдкрд░рд┐рдгрд╛рдоред

рдпрд╣рд╛рдВ рдореАрдЯреНрд░рд┐рдХ рдХреЛ "рд░рд┐рдХреЙрд▓" рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рдХреИрдВрд╕рд░ рдХреЗ рдирд┐рджрд╛рди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдореЙрдбрд▓реЛрдВ рджреНрд╡рд╛рд░рд╛ рдЬрд╛рд░реА рдХрд┐рдП рдЧрдП рдЭреВрдареЗ рдирдХрд╛рд░рд╛рддреНрдордХ рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рдиреЛрдВ рдХреЛ рдХрдо рдХрд░рдиреЗ рдореЗрдВ рдмреЗрд╣рдж рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВред

рдЗрд╕реЗ рджреЗрдЦрддреЗ рд╣реБрдП, рд╣рдо рдпрд╣ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдмреБрдирд┐рдпрд╛рджреА рдЖрд░рдПрдл рдореЙрдбрд▓ рдиреЗ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдкрд░рд┐рдгрд╛рдо рджрд┐рдпрд╛ред рдЗрд╕рдХреА рдкреВрд░реНрдгрддрд╛ рджрд░ 94.97% рдереАред рдкрд░реАрдХреНрд╖рдг рдбреЗрдЯрд╛рд╕реЗрдЯ рдореЗрдВ 179 рд░реЛрдЧрд┐рдпреЛрдВ рдХрд╛ рд░рд┐рдХреЙрд░реНрдб рдерд╛, рдЬрд┐рдиреНрд╣реЗрдВ рдХреИрдВрд╕рд░ рд╣реИред рдореЙрдбрд▓ рдХреЛ рдЙрдирдореЗрдВ рд╕реЗ 170 рдорд┐рд▓реЗред

рд╕рд╛рд░рд╛рдВрд╢


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

рдкреНрд░рд┐рдп рдкрд╛рдардХреЛрдВ! рдорд╢реАрди рд╕реАрдЦрдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдк рдХреМрди рд╕реЗ рдХрд╛рд░реНрдп рд╣рд▓ рдХрд░рддреЗ рд╣реИрдВ?


All Articles