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

рддреЛ рдЖрдкрдХреЛ рдХреНрдпрд╛ рдЬрд╛рдирдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рдФрд░ рдпрд╣ рдЬрд╛рдирдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВ рдХрд┐ рдЦрд░реЛрдВрдЪ рд╕реЗ рдирд┐рд░реНрдгрдп рдкреЗрдбрд╝реЛрдВ рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдкрд╣рдирд╛рд╡рд╛ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреИрд╕реЗ рд▓рд┐рдЦреЗрдВ? рдЪреВрдВрдХрд┐ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рдПрдХ рдкрд╣рдирд╛рд╡рд╛ "рдХрдордЬреЛрд░ рдПрд▓реНрдЧреЛрд░рд┐рджрдо" рдХреА рд░рдЪрдирд╛ рд╕реЗ рдЬреНрдпрд╛рджрд╛ рдХреБрдЫ рдирд╣реАрдВ рд╣реИ, рдПрдХ рдЕрдЪреНрдЫрд╛ рдкрд╣рдирд╛рд╡рд╛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреЗ "рдХрдордЬреЛрд░ рдПрд▓реНрдЧреЛрд░рд┐рджрдо" рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд╣рдо рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЙрдирдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВрдЧреЗред рдЬреИрд╕рд╛ рдХрд┐ рдирд╛рдо рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ, рдпреЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреЗрдбрд╝ рд╣реИрдВ, рдФрд░ рд╕рд░рд▓ рд╕реЗ рдЬрдЯрд┐рд▓ рддрдХ рдмрдврд╝рддреЗ рд╣реБрдП, рд╣рдо рдЙрдиреНрд╣реЗрдВ рд▓рд┐рдЦрдирд╛ рд╕реАрдЦреЗрдВрдЧреЗред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЬреЛрд░ рд╕реАрдзреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рд░рдЦрд╛ рдЬрд╛рдПрдЧрд╛, рдкреВрд░реЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЛ рдиреНрдпреВрдирддрдо рд░реВрдк рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдореВрд▓ рд░реВрдк рд╕реЗ рдореИрдВ рд╕реНрд╡рддрдВрддреНрд░ рдЕрдзреНрдпрдпрди рдХреЗ рд▓рд┐рдП рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдВрдХ рджреВрдВрдЧрд╛ред
рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕реАрдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдпрд╣ рд╕рдордЭрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░рд╛ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд┐рддрдирд╛ рдЕрдЪреНрдЫрд╛ рдпрд╛ рдмреБрд░рд╛ рд╣реИред рд╣рдо рдмрд╣реБрдд рд╕рд░рд▓ рд░реВрдк рд╕реЗ рд╕рдордЭреЗрдВрдЧреЗ - рд╣рдо рдХреБрдЫ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдбреЗрдЯрд╛ рд╕реЗрдЯ рдХреЛ рдареАрдХ рдХрд░реЗрдВрдЧреЗ рдФрд░ рд╣рдо рдЕрдкрдиреЗ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреА рддреБрд▓рдирд╛ рд╕реНрдХреЗрд▓реЗрд░ (рдкреЗрдбрд╝реЛрдВ рдХреЗ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рд╕реЗ рдХрд░реЗрдВрдЧреЗ, рдЬреЛ рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдмрд┐рдирд╛ рдХреНрдпрд╛ рд╣реЛрдЧрд╛)ред рд╣рдо рдмрд╣реБрдд рддреБрд▓рдирд╛ рдХрд░реЗрдВрдЧреЗ: рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреА рдЬрдЯрд┐рд▓рддрд╛, рдбреЗрдЯрд╛ рдкрд░ рдореАрдЯреНрд░рд┐рдХ, рдЕрдкрдЯрд╛рдЗрдо, рдЖрджрд┐ред
рдПрдХ рдирд┐рд░реНрдгрд╛рдпрдХ рдкреЗрдбрд╝ рдХреНрдпрд╛ рд╣реИ? рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рд╕рд╛рдордЧреНрд░реА, рдЬрд╣рд╛рдВ рдирд┐рд░реНрдгрдп рд╡реГрдХреНрд╖ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЛ рд╕рдордЭрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ,
рдУрдбреАрдПрд╕ рдкрд╛рдареНрдпрдХреНрд░рдо рдореЗрдВ рдирд┐рд╣рд┐рдд
рд╣реИ (рд╡реИрд╕реЗ, рдПрдХ рд╢рд╛рдВрдд рдкрд╛рдареНрдпрдХреНрд░рдо, рдореИрдВ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЛ рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ рдЬреЛ рдПрдордПрд▓ рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рдкрд░рд┐рдЪрд┐рддреЛрдВ рдХреЛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ)ред
рдПрдХ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг: рдиреАрдЪреЗ рд╡рд░реНрдгрд┐рдд рд╕рднреА рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рд╕рднреА рд╕рдВрдХреЗрдд рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╣реЛрдВрдЧреЗ, рд╣рдо рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рдмрд╛рд╣рд░ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рд╡рд┐рд╢реЗрд╖ рдкрд░рд┐рд╡рд░реНрддрди рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ (рд╣рдо рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреА рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╣реИрдВ, рдбреЗрдЯрд╛рд╕реЗрдЯ рдирд╣реАрдВ)ред
рдЕрдм рдЖрдЗрдП рдЬрд╛рдиреЗрдВ рдХрд┐ рдирд┐рд░реНрдгрдп рдкреЗрдбрд╝реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рддрд┐рдЧрдорди рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рдХреИрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПред рд╣рдо
рдПрдВрдЯреНрд░реА рдХреЗ рд░реВрдк рдореЗрдВ
MSE рдореАрдЯреНрд░рд┐рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред
рд╣рдо рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓
RegressionTree
рд╡рд░реНрдЧ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдПрдХ рдкреБрдирд░рд╛рд╡рд░реНрддреА рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред рдЬрд╛рдирдмреВрдЭрдХрд░, рд╣рдо рдПрдХ рдмрд╣реБрдд рд╣реА рдЕрдкреНрд░рднрд╛рд╡реА рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЗрд╕реЗ рд╕реБрдзрд╛рд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдРрд╕реА рдХрдХреНрд╖рд╛ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд╕рдордЭрдирд╛ рдЖрд╕рд╛рди рд╣реИред
1. рд░реЗрдЧреНрд░реЗрд╢рдирдЯреНрд░реА () рд╡рд░реНрдЧ
class RegressionTree(): ''' RegressionTree . , . ''' def __init__(self, max_depth=3, n_epoch=10, min_size=8): ''' . ''' self.max_depth = max_depth
рдореИрдВ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдзрд┐ рдпрд╣рд╛рдБ рдХреНрдпрд╛ рдХрд░рддреА рд╣реИред
fit
рд╡рд┐рдзрд┐, рдЬреИрд╕рд╛ рдХрд┐ рдирд╛рдо рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ, рдореЙрдбрд▓ рд╕рд┐рдЦрд╛рддрд╛ рд╣реИред рдПрдХ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдирдореВрдирд╛ рдЗрдирдкреБрдЯ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдПрдХ рдкреЗрдбрд╝ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реЛрддреА рд╣реИред рд╕рдВрдХреЗрддреЛрдВ рдХреЛ
mse
, рд╣рдо рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдПрдиреНрдЯреНрд░рд╛рдкреА рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдкреЗрдбрд╝ рдХреЗ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреЗ рд╡рд┐рднрд╛рдЬрди рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рднрд╛рдЬрди рдвреВрдВрдврдирд╛ рд╕рдВрднрд╡ рдерд╛ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ, рдпрд╣ рджреЛ рд╢рд░реНрддреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рд╣рдо рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдХреБрдЫ рд╡рд╕реНрддреБрдПрдВ рд╡рд┐рднрд╛рдЬрди рдореЗрдВ рдЧрд┐рд░ рдЬрд╛рдПрдВ (
mse
рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрд░рдХреНрд╖рд╛), рдФрд░
mse
рд▓рд┐рдП рдФрд╕рдд рддреНрд░реБрдЯрд┐ рдЙрд╕ рддреНрд░реБрдЯрд┐ рд╕реЗ рдХрдо рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдЬреЛ рдЕрдм рдкреЗрдбрд╝ рдореЗрдВ рд╣реИ - рд╣рдо
рд╕реВрдЪрдирд╛ рд▓рд╛рдн рдореЗрдВ рдЙрд╕реА рд▓рд╛рдн рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╕рднреА рд╕рдВрдХреЗрддреЛрдВ рдФрд░ рд╕рднреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдореВрд▓реНрдпреЛрдВ рд╕реЗ рдЧреБрдЬрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рд╕рднреА рд╡рд┐рдХрд▓реНрдкреЛрдВ рд╕реЗ рдЧреБрдЬрд░реЗрдВрдЧреЗ рдФрд░ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреЗ рд╡рд┐рднрд╛рдЬрди рдХрд╛ рдЪрдпрди рдХрд░реЗрдВрдЧреЗред рдФрд░ рдлрд┐рд░ рд╣рдо рдкреНрд░рд╛рдкреНрдд рд╡рд┐рднрд╛рдЬрди рдкрд░ рдПрдХ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ рдЬрдм рддрдХ рдХрд┐ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреА рд╢рд░реНрддреЛрдВ рдХреЛ рд╕рдВрддреБрд╖реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
__predict
рд╡рд┐рдзрд┐, рдЬреИрд╕рд╛ рдХрд┐ рдирд╛рдо рдХрд╛ рдЕрд░реНрде рд╣реИ, рдПрдХ рд╡рд┐рдзреЗрдп рдмрдирд╛рддрд╛ рд╣реИред рдПрдХ рдЗрдирдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╡рд╕реНрддреБ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рдкрд░рд┐рдгрд╛рдореА рдкреЗрдбрд╝ рдХреЗ рдиреЛрдбреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рддрд╛ рд╣реИ - рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдб рдореЗрдВ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╕рдВрдЦреНрдпрд╛ рдФрд░ рдореВрд▓реНрдп рдЗрд╕ рдкрд░ рддрдп рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд▓рд┐рдП рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдЖрдиреЗ рд╡рд╛рд▓реА рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕ рдореВрд▓реНрдп рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рд╣рдо рдпрд╛ рддреЛ рд╕рд╣реА рд╡рдВрд╢рдЬ рдпрд╛ рдмрд╛рдИрдВ рдУрд░ рдЬрд╛рддреЗ рд╣реИрдВ, рдЬрдм рддрдХ рд╣рдо рдЙрд╕ рд╢реАрдЯ рдкрд░ рдирд╣реАрдВ рдкрд╣реБрдВрдЪреЗрдВрдЧреЗ, рдЬрд┐рд╕рдореЗрдВ рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрддреНрддрд░ рд╣реЛрдЧрд╛ред
predict
рд╡рд┐рдзрд┐ рдкрд┐рдЫрд▓реА рд╡рд┐рдзрд┐ рдХреЗ рд╕рдорд╛рди рд╣реА рдХрд░рддреА рд╣реИ, рдХреЗрд╡рд▓ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рдореВрд╣ рдХреЗ рд▓рд┐рдПред
рд╣рдо рдкреНрд░рд╕рд┐рджреНрдз рдХреИрд▓рд┐рдлреЛрд░реНрдирд┐рдпрд╛ рдШрд░ рдбреЗрдЯрд╛ рд╕реЗрдЯ рдЖрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдирд┐рдпрдорд┐рдд рдбреЗрдЯрд╛рд╕реЗрдЯ рд╣реИ рдФрд░ рдкреНрд░рддрд┐рдЧрдорди рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рдХреНрд╖реНрдп рд╣реИред
data = datasets.fetch_california_housing() X = np.array(data.data) y = np.array(data.target)
рдЦреИрд░, рддреБрд▓рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ! рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд┐рддрдиреА рддреЗрдЬреА рд╕реЗ рд╕реАрдЦрддрд╛ рд╣реИред рд╣рдордиреЗ рд╕реНрдХреЗрд▓реЗрд░ рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдЦреБрдж рдХреЛ рдХреЗрд╡рд▓ рдкреИрд░рд╛рдореАрдЯрд░
max_depth
, рдЗрд╕реЗ 2 рд╣реЛрдиреЗ рджреЗрдВред
%%time A = RegressionTree(2)
from sklearn.tree import DecisionTreeRegressor %%time model = DecisionTreeRegressor(max_depth=2)
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:
- рд╣рдорд╛рд░реЗ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рд▓рд┐рдП - рд╕реАрдкреАрдпреВ рд╕рдордп: рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ 4min 47s, sys: 8.25 рдПрдордПрд╕, рдХреБрд▓: 4min 47s
рджреАрд╡рд╛рд░ рд╕рдордп: 4min 47s - Sklearn рдХреЗ рд▓рд┐рдП - рд╕реАрдкреАрдпреВ рд╕рдордп: рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ 53.5 рдПрдордПрд╕, sys: 0 ns, рдХреБрд▓: 53.5 рдПрдордПрд╕
рджреАрд╡рд╛рд░ рд╕рдордп: 53.4 рдПрдордПрд╕
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд╣рдЬрд╛рд░реЛрдВ рдмрд╛рд░ рдзреАрдорд╛ рд╕реАрдЦрддрд╛ рд╣реИред рдХреНрдпрд╛ рдХрд╛рд░рдг рд╣реИ? рдЪрд▓реЛ рдареАрдХ рд╣реИред
рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рднрд╛рдЬрди рдЦреЛрдЬрдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреИрд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЬрдм рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдЖрдХрд╛рд░
рдФрд░ рд╕рдВрдХреЗрддреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде
рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рднрд╛рдЬрди рдЦреЛрдЬрдиреЗ рдХреА рдХрдард┐рдирд╛рдИ рд╣реИ
ред
рдпрд╣ рдЬрдЯрд┐рд▓рддрд╛ рдХрд╣рд╛рдВ рд╕реЗ рдЖрддреА рд╣реИ?
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рддреНрд░реБрдЯрд┐ рдХреЛ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рдкреБрдирд░реНрдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡рд┐рд╢реЗрд╖рддрд╛ рд╕реЗ рдЧреБрдЬрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕рдмрд╕реЗ рдЫреЛрдЯреЗ рд╕реЗ рд╕рдмрд╕реЗ рдмрдбрд╝реЗ рддрдХ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рд╕реНрддрдВрднреЛрдВ рдХреЛ рдХреНрд░рдордмрджреНрдз рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВ, рдпрд╣ рдПрдХ рд╕рдВрдмрдВрдзрд┐рдд рдЬрдЯрд┐рд▓рддрд╛ рдмрдирд╛рддрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рдо рд╕рдВрдХреЗрддреЛрдВ рдХреЛ рдХреНрд░рдордмрджреНрдз рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рдорд╕реНрдпрд╛ рддреНрд░реБрдЯрд┐ рдХреЛ
mse
рдореЗрдВ рд╣реИ - рдЬрдм рднреА рд╣рдо рдбреЗрдЯрд╛ рдХреЛ
mse
рд╡рд┐рдзрд┐ рдореЗрдВ
mse
, рдЬреЛ рд▓рд╛рдЗрди рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрд╣ рддреНрд░реБрдЯрд┐ рдХреЛ рдЗрддрдирд╛ рдЕрдпреЛрдЧреНрдп рдмрдирд╛рддрд╛ рд╣реИ! рдЖрдЦрд┐рд░рдХрд╛рд░, рдПрдХ рд╡рд┐рднрд╛рдЬрди рдЦреЛрдЬрдиреЗ рдХреА рдХрдард┐рдирд╛рдИ рдмрдврд╝ рдЬрд╛рддреА рд╣реИ
рдмрдбрд╝реЗ рдХреЗ рд▓рд┐рдП
рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рдХрд╛рдлреА рдзреАрдорд╛ рдХрд░ рджреЗрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдЕрдЧрд▓реЗ рдЖрдЗрдЯрдо рдкрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред
2. рд░рд┐рдЧреНрд░реЗрд╢рдирдЯреНрд░реА () рддреЗрдЬ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рд╡рд░реНрдЧ
рддреНрд░реБрдЯрд┐ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рдПрдХ рдкреЗрди рдФрд░ рдкреЗрдкрд░ рд▓реЗрдВ, рдФрд░ рдкреЗрдВрдЯ рдХрд░реЗрдВ рдХрд┐ рд╣рдореЗрдВ рдХреИрд╕реЗ рд╕реВрддреНрд░ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдХреБрдЫ рдХрджрдо рдкрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рддреНрд░реБрдЯрд┐ рдХреА рдЧрдгрдирд╛ рд╣реИ
рд╡рд╕реНрддреБрдУрдВред рдЗрд╕рдХреЗ рдирд┐рдореНрди рд╕реВрддреНрд░ рд╣реИрдВ:
ред рдпрд╣рд╛рдВ рдкрд░ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ
рд▓реЗрдХрд┐рди рдЕрднреА рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдЫреЛрдбрд╝ рджреЗрдВред рд╣рдо рдЬрд▓реНрджреА рд╕реЗ рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ -
, рдЕрд░реНрдерд╛рддреН, рдЙрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рдлреЗрдВрдХ рджреЗрдВ рдЬреЛ рддрддреНрд╡ рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗрддрд╛ рд╣реИ
рджреВрд╕рд░реЗ рднрд╛рдЧ рдХреЛред
рдЪреВрдВрдХрд┐ рд╣рдо рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдлреЗрдВрдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рддреНрд░реБрдЯрд┐ рдХреЛ рджреЛ рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП - рджрд╛рдИрдВ рдУрд░ (рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЫреЛрдбрд╝рдХрд░) рдФрд░ рдмрд╛рдИрдВ рдУрд░ (рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП)ред рд▓реЗрдХрд┐рди рд╕рд╛рдорд╛рдиреНрдпрддрд╛ рдХреЗ рдиреБрдХрд╕рд╛рди рдХреЗ рдмрд┐рдирд╛ рд╣рдо рдХреЗрд╡рд▓ рдПрдХ рд╕реВрддреНрд░ рдХреЛ рдХрд╛рдЯреЗрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рд╕рдорд╛рди рд╣реЛрдВрдЧреЗред
рдЪреВрдВрдХрд┐ рд╣рдо
mse
рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рднрд╛рдЧреНрдп рд╕реЗ рдмрд╛рд╣рд░ рдереЗ: рдПрдХ рддреНрд░реБрдЯрд┐ рдХреЗ рддреНрд╡рд░рд┐рдд
mse
рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрдм рдЕрдиреНрдп рдореЗрдЯреНрд░рд┐рдХреНрд╕ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЧрд┐рдиреА рдорд╛рдирджрдВрдб, рдпрджрд┐ рд╣рдо рд╡рд░реНрдЧреАрдХрд░рдг рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддреЗ рд╣реИрдВ) рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рддреНрд╡рд░рд┐рдд рд░рд┐рдХрд╛рдЙрдВрдЯ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИред
рдареАрдХ рд╣реИ, рдЪрд▓реЛ рд╕реВрддреНрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВ!
рд╣рдо рдкрд╣рд▓реЗ рд╕рджрд╕реНрдп рдХреЛ рд▓рд┐рдЦреЗрдВрдЧреЗ:
\ sum_ {i = 1} ^ {N-1} (y_i - \ frac {\ _ sum_ {i = 1} ^ N y_i} {N}) ^ 2 = \ sum_ {i = 1} ^ {N-1} }} (y_i - \ frac {\ _ sum_ {i = 1} ^ {N-1} y_i + y_N} {N}) ^ 2 = \\ \ sum_ {i = 1} ^ {N-1} (@ рдХреНрд░реЗрдХ) Ny_i - \ sum_ {i = 1} ^ {N-1} y_i} {N} - \ frac {y_N} {N}) ^ 2 = \\ \ sum_ {i = 1} ^ {N-1} (\ _) frac {(N-1) y_i - \ sum_ {i = 1} ^ {N-1} y_i} {N} - \ frac {y_Ni - y_i} {N}) ^ 2 = \\ \ _ \ _ {i = 1] } ^ {N-1} (\ frac {(N-1) y_i - \ sum_ {i = 1} ^ {N-1} y_i} {N}) ^ 2 - (\ frac {(N-1)) y_i - \ sum_ {i = 1} ^ {N-1} y_i} {N}) \ frac {y_N - y_i} {N} + (\ frac {y_N - y_i} {N} ^ 2 = \\ \ _) sum_ {i = 1} ^ {N-1} (\ frac {(N-1) y_i - \ sum_ {i = 1} ^ {N-1} y_i} {N}) ^ 2 - \ sum_ {= = 1} ^ {N-1} (2 (\ frac {(N-1) y_i - \ sum_ {i = 1} ^ {N-1} y_i} {N}) \ frac {y_N - y_i} {N} - (\ frac {y_Ni - y_i} {N}) ^ 2) = \\ \ sum_ {i = 1} ^ {N-1} (\ frac {(N-1) y_i - \ sum_ {i> 1} ^ {N-1} y_i} {N-1}) ^ 2 * (\ frac {N-1} {N}) ^ 2 - \ sum_ {i = 1} ^ {N-1} (2 (\ frac) {(N-1) y_i - \ sum_ {i = 1} ^ {N-1} y_i} {N}) \ frac {y_Ni - y_i} {N} - \\ - (\ frac {y_N - y_i}) рдПрди}) ^ 2)
рдК, рдмрд╕ рдереЛрдбрд╝рд╛ рд╕рд╛ рдмрдЪрд╛ рд╣реИред рдпрд╣ рдХреЗрд╡рд▓ рдЖрд╡рд╢реНрдпрдХ рд░рд╛рд╢рд┐ рдХреЛ рд╡реНрдпрдХреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИред
\ sum_ {i = 1} ^ {N} (y_i - \ frac {\ _ sum_ {i = 1} ^ {N} y_i} {N}) ^ 2 = \ sum_ {i = 1} ^ {N-1} }} (\ frac {(N-1) y_i - \ sum_ {i = 1} ^ {N-1} y_i} {N-1}) ^ 2 * (\ frac {N-1} {N}) 2 - \\ \ sum_ {i = 1} ^ {N-1} (2 (\ frac {(N-1) y_i - \ sum_ {i = 1} ^ {N-1} y_i} {N} (\) frac {y_N - y_i} {N}) - (\ frac {y_Ni - y_i} {N}) ^ 2) + (y_N - \ sum_ {i = 1} ^ {N} \ frac {yi} {N}) ^ 2
рдФрд░ рдлрд┐рд░ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рд╡рд╛рдВрдЫрд┐рдд рд░рд╛рд╢рд┐ рдХреИрд╕реЗ рд╡реНрдпрдХреНрдд рдХреА рдЬрд╛рдПред рддреНрд░реБрдЯрд┐ рдХреЛ рдкреБрдирд░реНрдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдХреЗрд╡рд▓ рджрд╛рдПрдВ рдФрд░ рдмрд╛рдПрдВ рддрддреНрд╡реЛрдВ рдХреЗ рдпреЛрдЧ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рдирдП рддрддреНрд╡, рдЬреЛ рдЗрдирдкреБрдЯ рдкрд░ рдкрд╣реБрдВрдЪреЗред рдЕрдм рддреНрд░реБрдЯрд┐ рдХреЗ рд▓рд┐рдП рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╣реИ
ред
рдЦреИрд░, рдЗрд╕реЗ рдХреЛрдб рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВред
class RegressionTreeFastMse(): ''' RegressionTree . O(1). '''
рдЖрдЗрдП рдЕрдм рдЙрд╕ рд╕рдордп рдХреЛ рдорд╛рдкреЗрдВ рдЬреЛ рдЕрдм рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдкрд░ рдЦрд░реНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рд╕реНрдХреЗрд▓реЗрд░ рд╕реЗ рдПрдирд╛рд▓реЙрдЧ рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХрд░реЗрдВред
%%time A = RegressionTreeFastMse(4, min_size=5) A.fit(X,y) test_mytree = A.predict(X) test_mytree
%%time model = DecisionTreeRegressor(max_depth=4) model.fit(X,y) test_sklearn = model.predict(X)
- рд╣рдорд╛рд░реЗ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рд▓рд┐рдП, рд╣рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ - рд╕реАрдкреАрдпреВ рд╕рдордп: рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ 3.11 рдПрд╕, рдПрд╕рдЖрдИрдПрд╕: 2.7 рдПрдордПрд╕, рдХреБрд▓: 3.11 рдПрд╕
рджреАрд╡рд╛рд░ рд╕рдордп: 3.11 рдПрд╕ред - рд╕реНрдХреЗрд▓реЗрд░реЛрди - рд╕реАрдкреАрдпреВ рд╕рдордп рд╕реЗ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рд▓рд┐рдП: рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ 45.9 рдПрдордПрд╕, рдПрд╕рдЖрдИрдПрд╕: 1.09 рдПрдордПрд╕, рдХреБрд▓: 47 рдПрдордПрд╕
рджреАрд╡рд╛рд░ рд╕рдордп: 45.7 рдПрдордПрд╕ред
рдкрд░рд┐рдгрд╛рдо рдкрд╣рд▓реЗ рд╕реЗ рдЕрдзрд┐рдХ рд╕реБрдЦрдж рд╣реИрдВред рдареАрдХ рд╣реИ, рдЪрд▓реЛ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдореЗрдВ рдФрд░ рд╕реБрдзрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред
3. RegressionTree () рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд░реИрдЦрд┐рдХ рд╕рдВрдпреЛрдЬрдиреЛрдВ рдХреЗ рд╕рд╛рде рд╡рд░реНрдЧ
рдЕрдм, рд╣рдорд╛рд░реЗ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдореЗрдВ, рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдз рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рд╣рдо рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рдареАрдХ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдХреЗрд╡рд▓ рдЕрдВрддрд░рд┐рдХреНрд╖ рдХреЗ рдСрд░реНрдереЛрдЧреЛрдирд▓ рд╡рд┐рднрд╛рдЬрди рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВред рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдмреАрдЪ рд░реИрдЦрд┐рдХ рд╕рдВрдмрдВрдзреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдХреИрд╕реЗ рд╕реАрдЦреЗрдВ? рдпрд╛рдиреА, рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреЗ рд╡рд┐рднрд╛рдЬрди рдХреА рддрд▓рд╛рд╢ рдХрд░рдирд╛ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ
, рдФрд░
рдЬрд╣рд╛рдБ
- рд╣рдорд╛рд░реЗ рдЕрдВрддрд░рд┐рдХреНрд╖ рдХреЗ рдЖрдпрд╛рдо рд╕реЗ рдХреБрдЫ рд╕рдВрдЦреНрдпрд╛ рдХрдо рд╣реИ?
рдХрдИ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ, рдореИрдВ рдЕрдкрдиреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдореЗрдВ рд╕реЗ рджреЛ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░реВрдВрдЧрд╛ред рдпреЗ рджреЛрдиреЛрдВ рджреГрд╖реНрдЯрд┐рдХреЛрдг
рдлреНрд░рд╛рдЗрдбрдореИрди рдХреА
рдкреБрд╕реНрддрдХ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИрдВ (рдЙрдиреНрд╣реЛрдВрдиреЗ рдЗрди рдкреЗрдбрд╝реЛрдВ рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд┐рдпрд╛ рдерд╛)ред
рдореИрдВ рдПрдХ рддрд╕реНрд╡реАрд░ рджреВрдВрдЧрд╛ рддрд╛рдХрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рд╕рдХреЗ рдХрд┐ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ:

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдк рдЗрди рд░реИрдЦрд┐рдХ рд╡рд┐рднрд╛рдЬрдиреЛрдВ рдХреЛ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЛ рдЦреЛрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рд╕рднреА рд░реИрдЦрд┐рдХ рд╕рдВрдпреЛрдЬрдиреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЫрд╛рдВрдЯрдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЕрдирдВрдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╕рдВрдпреЛрдЬрди рд╣реЛрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд▓рд╛рд▓рдЪреА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрд░реНрдерд╛рдд, рдкреНрд░рддреНрдпреЗрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдкрд░, рдкрд┐рдЫрд▓реЗ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдореЗрдВ рд╕реБрдзрд╛рд░ рд╣реЛрдЧрд╛ред рдЗрд╕ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдореБрдЦреНрдп рд╡рд┐рдЪрд╛рд░ рдкреБрд╕реНрддрдХ рдореЗрдВ рдкрдврд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдореИрдВ рдЗрд╕ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рдорд┐рддреНрд░ рдФрд░ рд╕рд╣рдХрд░реНрдорд┐рдпреЛрдВ рдХреЗ
рднрдВрдбрд╛рд░ рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рдПрдХ рд▓рд┐рдВрдХ рднреА рдЫреЛрдбрд╝ рджреВрдВрдЧрд╛ред
рджреВрд╕рд░реЗ, рдЕрдЧрд░ рд╣рдо рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреЗ рдСрд░реНрдереЛрдЧреЛрдирд▓ рд╡рд┐рднрд╛рдЬрди рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд╡рд┐рдЪрд╛рд░ рд╕реЗ рджреВрд░ рдирд╣реАрдВ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЛ рдХреИрд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд╕рдВрдмрдВрдз рдкрд░ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдП рдФрд░ рдЦреЛрдЬ рдСрд░реНрдереЛрдЧреЛрдирд▓ рд╡рд┐рднрд╛рдЬрди рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ? рдпрд╣ рд╕рд╣реА рд╣реИ, рдирдП рд▓реЛрдЧреЛрдВ рдореЗрдВ рдореВрд▓ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рдХреБрдЫ рд╕рдВрдпреЛрдЬрди рдХрд╛ рдпреЛрдЧ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдирдХреЗ рджреНрд╡рд╛рд░рд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╡рд┐рднрд╛рдЬрди рдХреА рддрд▓рд╛рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рддрд░рд╣ рдХреА рдПрдХ рд╡рд┐рдзрд┐ рдПрд▓реНрдЧреЛрд░рд┐рдердо рдЕрд╡рдзрд╛рд░рдгрд╛ рдореЗрдВ рдЦрд░рд╛рдм рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдкрдирд╛ рдХрд╛рдо рдХрд░рддреА рд╣реИ - рдпрд╣ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЧреБрдгреЛрдВ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд░реВрдврд╝рд┐рд╡рд╛рджреА рд╡рд┐рднрд╛рдЬрди рдХреА рдЦреЛрдЬ рдХрд░рддреА рд╣реИред
рдареАрдХ рд╣реИ, рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░реЗрдВ - рд╣рдо рдирдИ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝ рджреЗрдВрдЧреЗ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реБрд╡рд┐рдзрд╛ рд░рдХрдо рдХреЗ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрдпреЛрдЬрди
рдЬрд╣рд╛рдБ
ред рдореИрдВ рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдмрдврд╝ рдЬрд╛рдПрдЧреА, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдХрд┐рддрдиреА рдмрд╛рд░ред рдЦреИрд░, рддреЗрдЬреА рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рд╕рд╛рдЗрдерди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред
%load_ext Cython %%cython -a import itertools import numpy as np cimport numpy as np from itertools import * cdef class RegressionTreeCython: cdef public int max_depth cdef public int feature_idx cdef public int min_size cdef public int averages cdef public np.float64_t feature_threshold cdef public np.float64_t value cpdef RegressionTreeCython left cpdef RegressionTreeCython right def __init__(self, max_depth=3, min_size=4, averages=1): self.max_depth = max_depth self.min_size = min_size self.value = 0 self.averages = averages self.feature_idx = -1 self.feature_threshold = 0 self.left = None self.right = None def data_transform(self, np.ndarray[np.float64_t, ndim=2] X, list index_tuples):
4. рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рддреБрд▓рдирд╛
рдЦреИрд░, рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рдПрдХ рд╣реА рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рддреАрди рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВрдЧреЗ - рд╕реНрдХреЗрд▓реЗрд░ рдХрд╛ рдПрдХ рдкреЗрдбрд╝, рд╣рдорд╛рд░реЗ рд╕рд╛рдзрд╛рд░рдг рдкреЗрдбрд╝ рдФрд░ рдирдИ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╣рдорд╛рд░рд╛ рдкреЗрдбрд╝ред рд╣рдо рдЕрдкрдиреЗ рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЛ рдХрдИ рдмрд╛рд░ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдФрд░ рдкрд░реАрдХреНрд╖рдг рд╕реЗрдЯ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░реЗрдВрдЧреЗ, рдФрд░ рддреНрд░реБрдЯрд┐ рдХреА рдЧрдгрдирд╛ рдХрд░реЗрдВрдЧреЗред
from sklearn.model_selection import KFold def get_metrics(X,y,n_folds=2, model=None): kf = KFold(n_splits=n_folds, shuffle=True) kf.get_n_splits(X) er_list = [] for train_index, test_index in kf.split(X): X_train, X_test = X[train_index], X[test_index] y_train, y_test = y[train_index], y[test_index] model.fit(X_train,y_train) predict = model.predict(X_test) er_list.append(mse(y_test, predict)) return er_list
рдЕрдм рд╕рднреА рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдЪрд▓рд╛рддреЗ рд╣реИрдВред
import matplotlib.pyplot as plt data = datasets.fetch_california_housing() X = np.array(data.data) y = np.array(data.target) er_sklearn_tree = get_metrics(X,y,30,DecisionTreeRegressor(max_depth=4, min_samples_leaf=10)) er_fast_mse_tree = get_metrics(X,y,30,RegressionTreeFastMse(4, min_size=10)) er_averages_tree = get_metrics(X,y,30,RegressionTreeCython(4, min_size=10)) %matplotlib inline data = [er_sklearn_tree, er_fast_mse_tree, er_averages_tree] fig7, ax7 = plt.subplots() ax7.set_title('') ax7.boxplot(data, labels=['Sklearn Tree', 'Fast Mse Tree', 'Averages Tree']) plt.grid() plt.show()
рдкрд░рд┐рдгрд╛рдо:

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