рд╕рд░рд▓ рд░реИрдЦрд┐рдХ рдкреНрд░рддрд┐рдЧрдорди рдХреЗ рд╕рдореАрдХрд░рдг рдХреЛ рд╣рд▓ рдХрд░реЗрдВ

рд▓реЗрдЦ рдПрдХ рд╕рд░рд▓ (рдЬреЛрдбрд╝реАрджрд╛рд░) рдкреНрд░рддрд┐рдЧрдорди рд░реЗрдЦрд╛ рдХреЗ рдЧрдгрд┐рддреАрдп рд╕рдореАрдХрд░рдг рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рддрд░реАрдХреЛрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рддрд╛ рд╣реИред

рдпрд╣рд╛рдВ рдЪрд░реНрдЪрд╛ рдХрд┐рдП рдЧрдП рд╕рдореАрдХрд░рдг рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд╕рднреА рддрд░реАрдХреЗ рдХрдо рд╕реЗ рдХрдо рд╡рд░реНрдЧ рд╡рд┐рдзрд┐ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИрдВред рд╣рдо рдирд┐рдореНрди рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рддреЗ рд╣реИрдВ:

  • рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рддреНрдордХ рд╕рдорд╛рдзрд╛рди
  • рдзреАрд░реЗ-рдзреАрд░реЗ рдЙрддрд░рдирд╛
  • рд╕реНрдЯреЛрдЪреИрд╕реНрдЯрд┐рдХ рдЧреНрд░реЗрдбрд┐рдПрдВрдЯ рдбрд┐рд╕реЗрдВрдЯ

рд╕реАрдзреА рд░реЗрдЦрд╛ рдХреЗ рд╕рдореАрдХрд░рдг рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП, рд▓реЗрдЦ рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЙрди рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдмрд┐рдирд╛ NumPy рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рд▓рд┐рдЦреЗ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЬреЛ рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП NumPy рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ NumPy рдХрд╛ рдХреБрд╢рд▓ рдЙрдкрдпреЛрдЧ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рд▓рд╛рдЧрдд рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЗрд╕ рдЖрд▓реЗрдЦ рдХреЗ рд╕рднреА рдХреЛрдб рдЕрдЬрдЧрд░ 2.7 рдореЗрдВ Jupyter рдиреЛрдЯрдмреБрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВред рд╕реНрд░реЛрдд рдХреЛрдб рдФрд░ рдирдореВрдирд╛ рдбреЗрдЯрд╛ рдлрд╝рд╛рдЗрд▓ github рдкрд░ рдкреЛрд╕реНрдЯ рдХреА рдЧрдИ рд╣реИ

рд▓реЗрдЦ рджреЛрдиреЛрдВ рд╢реБрд░реБрдЖрддреА рдФрд░ рдЙрди рд▓реЛрдЧреЛрдВ рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рд╣реИ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрд╣реБрдд рдХрдо рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдХреГрддреНрд░рд┐рдо рдмреБрджреНрдзрд┐рдорддреНрддрд╛ - рдорд╢реАрди рд╕реАрдЦрдиреЗ рдореЗрдВ рдмрд╣реБрдд рд╡реНрдпрд╛рдкрдХ рдЦрдВрдб рдХреЗ рдЕрдзреНрдпрдпрди рдореЗрдВ рдорд╣рд╛рд░рдд рд╣рд╛рд╕рд┐рд▓ рдХреА рд╣реИред

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

рдЙрджрд╛рд╣рд░рдг рдХреА рд╕реНрдерд┐рддрд┐


рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╛рдБрдЪ рдорд╛рди рд╣реИрдВ рдЬреЛ X рдкрд░ Y рдХреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рджрд░реНрд╢рд╛рддреЗ рд╣реИрдВ (рддрд╛рд▓рд┐рдХрд╛ рд╕рдВрдЦреНрдпрд╛ 1):

рддрд╛рд▓рд┐рдХрд╛ рд╕рдВрдЦреНрдпрд╛ 1 "рдЙрджрд╛рд╣рд░рдг рдХреА рд╢рд░реНрддреЗрдВ"



рд╣рдо рдорд╛рди рд▓реЗрддреЗ рд╣реИрдВ рдХрд┐ рдореВрд▓реНрдп x i рд╡рд░реНрд╖ рдХрд╛ рдорд╣реАрдирд╛ рд╣реИ, рдФрд░ рдЖрдк рдореИрдВ - рдЗрд╕ рдорд╣реАрдиреЗ рдореЗрдВ рд░рд╛рдЬрд╕реНрд╡ред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рд░рд╛рдЬрд╕реНрд╡ рд╡рд░реНрд╖ рдХреЗ рдорд╣реАрдиреЗ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдФрд░ x i - рдПрдХрдорд╛рддреНрд░ рд╕рдВрдХреЗрдд рдЬрд┐рд╕ рдкрд░ рд░рд╛рдЬрд╕реНрд╡ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред

рдПрдХ рдЙрджрд╛рд╣рд░рдг рдРрд╕рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╡рд░реНрд╖ рдХреЗ рдорд╣реАрдиреЗ рдореЗрдВ рд░рд╛рдЬрд╕реНрд╡ рдХреА рд╕рд╢рд░реНрдд рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ, рдФрд░ рдореВрд▓реНрдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ - рдЙрдирдореЗрдВ рд╕реЗ рдмрд╣реБрдд рдХрдо рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рд╕рд░рд▓реАрдХрд░рдг рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ рдХрд┐ рдЙрдВрдЧрд▓рд┐рдпреЛрдВ рдкрд░ рдХреНрдпрд╛ рд╕рдордЭрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рдореЗрд╢рд╛ рдЖрд╕рд╛рдиреА рд╕реЗ рдирд╣реАрдВ, рд╢реБрд░реБрдЖрддреА рджреНрд╡рд╛рд░рд╛ рдЕрд╡рд╢реЛрд╖рд┐рдд рд╕рд╛рдордЧреНрд░реАред рдФрд░ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреА рд╕рд╛рджрдЧреА рднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╢реНрд░рдо рд▓рд╛рдЧрддреЛрдВ рдХреЗ рдмрд┐рдирд╛, рдЬреЛ рд▓реЛрдЧ рдХрд╛рдЧрдЬ рдкрд░ рдЙрджрд╛рд╣рд░рдг рдХреЛ рд╣рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред

рдорд╛рди рд▓реЗрдВ рдХрд┐ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рджрд░реНрд╢рд╛рдИ рдЧрдИ рдирд┐рд░реНрднрд░рддрд╛, рдлрд╛рд░реНрдо рдХреЗ рдПрдХ рд╕рд╛рдзрд╛рд░рдг (рдпреБрдЧреНрдо) рдкреНрд░рддрд┐рдЧрдорди рд░реЗрдЦрд╛ рдХреЗ рдЧрдгрд┐рддреАрдп рд╕рдореАрдХрд░рдг рджреНрд╡рд╛рд░рд╛ рдХрд╛рдлреА рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЕрдиреБрдорд╛рдирд┐рдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ:

рд╡ рд╛ рдИ = рдП + рдм реА рдП рдХ реН 'рдореЙрдбреНрдпреВрд▓ рдЬреЛрдбрд╝реЗрдВ

рд╡рд╛рдИрдПрдмреАрдПрдХреНрд╕


рдЬрд╣рд╛рдБ рдПрдХреНрд╕ - рдпрд╣ рд╡рд╣ рдорд╣реАрдирд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд░рд╛рдЬрд╕реНрд╡ рдкреНрд░рд╛рдкреНрдд рд╣реБрдЖ рдерд╛, рдпрдп - рдорд╣реАрдиреЗ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд░рд╛рдЬрд╕реНрд╡, рдП рдХрдПрдХ рдФрд░ рдмрдм - рдЕрдиреБрдорд╛рдирд┐рдд рд░реЗрдЦрд╛ рдХрд╛ рдкреНрд░рддрд┐рдЧрдорди рдЧреБрдгрд╛рдВрдХред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЧреБрдгрд╛рдВрдХ рдмрдм рдЕрдХреНрд╕рд░ рдЕрдиреБрдорд╛рдирд┐рдд рд░реЗрдЦрд╛ рдХрд╛ рдврд▓рд╛рди рдпрд╛ рдврд╛рд▓ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ; рдЙрд╕ рд░рд╛рд╢рд┐ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдмрджрд▓рдирд╛ рд╣реИ рдп рдЬрдм рдмрджрд▓ рд░рд╣рд╛ рд╣реЛ рдПрдХреНрд╕ ред

рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╣рдорд╛рд░рд╛ рдХрд╛рдо рд╕рдореАрдХрд░рдг рдореЗрдВ рдРрд╕реЗ рдЧреБрдгрд╛рдВрдХ рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рд╣реИ рдП рдХ рдФрд░ рдм рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдЙрддреНрддрд░реЛрдВ рд╕реЗ рд╣рдорд╛рд░реЗ рдЕрдиреБрдорд╛рдирд┐рдд рдорд╛рд╕рд┐рдХ рд░рд╛рдЬрд╕реНрд╡ рдХрд╛ рд╡рд┐рдЪрд▓рди, рдЕрд░реНрдерд╛рддреНред рдирдореВрдиреЗ рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдореВрд▓реНрдп рдиреНрдпреВрдирддрдо рд╣реЛрдВрдЧреЗред

рдХрдо рд╕реЗ рдХрдо рд╡рд░реНрдЧ рд╡рд┐рдзрд┐


рдХрдо рд╕реЗ рдХрдо рд╡рд░реНрдЧреЛрдВ рдХреА рд╡рд┐рдзрд┐ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рд╡рд┐рдЪрд▓рди рдХреА рдЧрдгрдирд╛ рдЗрд╕реЗ рдЪреБрдХрддрд╛ рдХрд░рдХреЗ рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рддрд░рд╣ рдХреА рддрдХрдиреАрдХ рд╡рд┐рдЪрд▓рди рдХреЗ рдЖрдкрд╕реА рдкреБрдирд░реНрднреБрдЧрддрд╛рди рд╕реЗ рдмрдЪрддреА рд╣реИ, рдЕрдЧрд░ рдЙрдирдХреЗ рд╡рд┐рдкрд░реАрдд рд╕рдВрдХреЗрдд рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдПрдХ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╡рд┐рдЪрд▓рди +5 (рдкреНрд▓рд╕ рдкрд╛рдВрдЪ) рд╣реИ, рдФрд░ рдЕрдиреНрдп -5 (рд╢реВрдиреНрдп рд╕реЗ рдкрд╛рдВрдЪ) рдореЗрдВ рд╣реИ, рддреЛ рд╡рд┐рдЪрд▓рди рдХрд╛ рдпреЛрдЧ рдкрд╛рд░рд╕реНрдкрд░рд┐рдХ рд░реВрдк рд╕реЗ рдЪреБрдХрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ 0 (рд╢реВрдиреНрдп) рд╣реЛрдЧрд╛ред рдЖрдк рд╡рд┐рдЪрд▓рди рдХреЛ рджрд░рдХрд┐рдирд╛рд░ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореЙрдбреНрдпреВрд▓ рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдФрд░ рдлрд┐рд░ рд╕рднреА рд╡рд┐рдЪрд▓рди рд╕рдХрд╛рд░рд╛рддреНрдордХ рд╣реЛрдВрдЧреЗ рдФрд░ рд╣рдо рдореЗрдВ рдЬрдорд╛ рд╣реЛрдВрдЧреЗред рд╣рдо рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЧрдгрдирд╛ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╡рд┐рдЪрд▓рди рдХреЛ рдЪреМрдХреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдерд╛рдЧрдд рд╣реИред

рдпрд╣ рд╡рд╣ рд╕реВрддреНрд░ рд╣реИ рдЬрд┐рд╕рдХреА рд╕рд╣рд╛рдпрддрд╛ рд╕реЗ рд╣рдо рдЫреЛрдЯреЗ рд╡рд┐рдЪрд▓рди (рддреНрд░реБрдЯрд┐рдпреЛрдВ) рдХреЗ рд╕рдмрд╕реЗ рдЫреЛрдЯреЗ рдпреЛрдЧ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░рддреЗ рд╣реИрдВ:

ERR(x)= sum limitni=1(a+bxiтИТyi)2= sum limitni=1(f(xi)тИТyi)2 rightarrowрдорд┐рдирдЯ


рдЬрд╣рд╛рдБ f(xi)=a+bxi рд╕рд╣реА рдЙрддреНрддрд░реЛрдВ рдХреЛ рдЕрдиреБрдорд╛рдирд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдХрд╛рд░реНрдп рд╣реИ (рдпрд╛рдиреА, рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдЧрдгрдирд╛ рдХреА рдЧрдИ рдЖрдп),

yi - рдпреЗ рд╕рд╣реА рдЙрддреНрддрд░ рд╣реИрдВ (рдирдореВрдиреЗ рдореЗрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд░рд╛рдЬрд╕реНрд╡),

рдореИрдВ рдирдореВрдирд╛ рд╕реВрдЪрдХрд╛рдВрдХ (рдЙрд╕ рдорд╣реАрдиреЗ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЬрд┐рд╕рдореЗрдВ рд╡рд┐рдЪрд▓рди рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реЛрддрд╛ рд╣реИ)

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

рднреЗрджрднрд╛рд╡


рднреЗрджрднрд╛рд╡ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╡реНрдпреБрддреНрдкрдиреНрди рдХреЛ рдЦреЛрдЬрдиреЗ рдХрд╛ рдСрдкрд░реЗрд╢рди рд╣реИред

рд╡реНрдпреБрддреНрдкрдиреНрди рдХреНрдпрд╛ рд╣реИ? рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╡реНрдпреБрддреНрдкрдиреНрди рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдкрд░рд┐рд╡рд░реНрддрди рдХреА рджрд░ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреА рджрд┐рд╢рд╛ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдмрд┐рдВрджреБ рдкрд░ рд╡реНрдпреБрддреНрдкрдиреНрди рд╕рдХрд╛рд░рд╛рддреНрдордХ рд╣реИ, рддреЛ рдлрд╝рдВрдХреНрд╢рди рдмрдврд╝рддрд╛ рд╣реИ, рдЕрдиреНрдпрдерд╛, рдлрд╝рдВрдХреНрд╢рди рдХрдо рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдФрд░ рд╡реНрдпреБрддреНрдкрдиреНрди рдореЛрдбреБрд▓реЛ рдХрд╛ рдореВрд▓реНрдп рдЬрд┐рддрдирд╛ рдмрдбрд╝рд╛ рд╣реЛрддрд╛ рд╣реИ, рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЗ рдкрд░рд┐рд╡рд░реНрддрди рдХреА рджрд░ рдЙрддрдиреА рд╣реА рдЕрдзрд┐рдХ рд╣реЛрддреА рд╣реИ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЧреНрд░рд╛рдл рдХрд╛ рдХреЛрдг рднреА рд╕реНрдерд┐рд░ рд╣реЛрддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрд╛рд░реНрдЯреЗрд╢рд┐рдпрди рдХреЛрдСрд░реНрдбрд┐рдиреЗрдЯ рд╕рд┐рд╕реНрдЯрдо рдХреА рд╢рд░реНрддреЛрдВ рдХреЗ рддрд╣рдд, рдмрд┐рдВрджреБ M рдкрд░ рд╡реНрдпреБрддреНрдкрдиреНрди рдХрд╛ рдорд╛рди (0,0) рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдмрд┐рдВрджреБ рдкрд░, рдЬрдм рдореВрд▓реНрдп рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ x рдордирдорд╛рдиреА рдЗрдХрд╛рдИ, рдореВрд▓реНрдп рдХрд╛ рдЕрдзрд┐рдХрд╛рд░ рдп 25 рдкрд╛рд░рдВрдкрд░рд┐рдХ рдЗрдХрд╛рдЗрдпреЛрдВ рдХреА рд╡реГрджреНрдзрд┐ред рдЧреНрд░рд╛рдл рдкрд░, рдпрд╣ рдКрдВрдЪрд╛рдИ рдХреЗ рдПрдХ рдХрд╛рдлреА рдЦрдбрд╝реА рдХреЛрдг рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ рдп рдПрдХ рджрд┐рдП рдЧрдП рдмрд┐рдВрджреБ рд╕реЗред

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

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╡рд┐рднреЗрджрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж ERR(x)= sum limitni=1(a+bxiтИТyi)2 рдЧреБрдгрд╛рдВрдХреЛрдВ рджреНрд╡рд╛рд░рд╛ рдПрдХ рдФрд░ рдм , рд╣рдо рдкрд╣рд▓реЗ рдЖрджреЗрд╢ рдХреЗ рдЖрдВрд╢рд┐рдХ рд╡реНрдпреБрддреНрдкрдиреНрди рдХреЗ рд╕рдореАрдХрд░рдгреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рд╕рдореАрдХрд░рдгреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рджреЛ рд╕рдореАрдХрд░рдгреЛрдВ рдХреА рдПрдХ рдкреНрд░рдгрд╛рд▓реА рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рдпрд╣ рддрдп рдХрд░рддреЗ рд╣реБрдП рдХрд┐ рд╣рдо рдЧреБрдгрд╛рдВрдХ рдХреЗ рдРрд╕реЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВ рдПрдХ рдФрд░ рдм рдЬрд┐рд╕ рдкрд░ рджрд┐рдП рдЧрдП рдмрд┐рдВрджреБрдУрдВ рдкрд░ рд╕рдВрдмрдВрдзрд┐рдд рд╡реНрдпреБрддреНрдкрддреНрддрд┐ рдХреЗ рдорд╛рди рдмрд╣реБрдд, рдмрд╣реБрдд рдХрдо рдореВрд▓реНрдп рд╕реЗ рдмрджрд▓рддреЗ рд╣реИрдВ, рдФрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рддреНрдордХ рд╕рдорд╛рдзрд╛рди рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╡реЗ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдирд╣реАрдВ рдмрджрд▓рддреЗ рд╣реИрдВред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдкрд╛рдпрд╛ рдЧрдпрд╛ рдЧреБрдгрд╛рдВрдХ рдореЗрдВ рддреНрд░реБрдЯрд┐ рд╕рдорд╛рд░реЛрд╣ рдПрдХ рдиреНрдпреВрдирддрдо рддрдХ рдкрд╣реБрдВрдЪ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрди рдмрд┐рдВрджреБрдУрдВ рдкрд░ рдЖрдВрд╢рд┐рдХ рдбреЗрд░рд┐рд╡реЗрдЯрд┐рд╡ рдХрд╛ рдорд╛рди рд╢реВрдиреНрдп рд╣реЛрдЧрд╛ред

рдЗрд╕рд▓рд┐рдП, рднреЗрджрднрд╛рд╡ рдХреЗ рдирд┐рдпрдореЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЧреБрдгрд╛рдВрдХ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ 1 рдЖрджреЗрд╢ рдХреЗ рдЖрдВрд╢рд┐рдХ рд╡реНрдпреБрддреНрдкрдиреНрди рдХрд╛ рд╕рдореАрдХрд░рдг рдПрдХ рдлрд╛рд░реНрдо рд▓реЗрдВрдЧреЗ:

2na + 2b \ _ \ _ рд╕реАрдорд╛рдПрдВ {{i = 1} ^ nx_i - 2 \ рдпреЛрдЧ \ рд╕реАрдорд╛рдПрдВ {{1 = 1} ^ ny_i = 2 (na + b \ sum \ limit_ {i = 1} ^ nn_i - \ рдпреЛрдЧ \ _] {i = 1} ^ ny_i)



1 рдЖрджреЗрд╢ рдЖрдВрд╢рд┐рдХ рд╡реНрдпреБрддреНрдкрдиреНрди рд╕рдореАрдХрд░рдг рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдм рдлрд╛рд░реНрдо рд▓реЗрдВрдЧреЗ:

2a \ sum \ limit_ {i = 1} ^ nx_i + 2b \ sum \ limit_ {i = 1} ^ nx ^ 2_i - 2 \ sum \ limit_ {i = 1} ^ nx_iy__ = 2 \ sum \ limit_ {i = 1} ^ nx_i (a + b \ sum \ limit_ {i = 1} ^ nx_i - \ sum \ limit_ {i = 1} ^ ny_i)



рдирддреАрдЬрддрди, рд╣рдореЗрдВ рд╕рдореАрдХрд░рдгреЛрдВ рдХреА рдПрдХ рдкреНрд░рдгрд╛рд▓реА рдорд┐рд▓реА рдЬрд┐рд╕рдХрд╛ рдПрдХ рдХрд╛рдлреА рд╕рд░рд▓ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рддреНрдордХ рд╕рдорд╛рдзрд╛рди рд╣реИ:

\ {{рд╕рдореАрдХрд░рдг *} рд╢реБрд░реВ
\ рд╢реБрд░реВ {рдорд╛рдорд▓реЛрдВ}
na + b \ sum \ limit_ {i = 1} ^ nx_i - \ sum \ limit_ {i = 1} ^ ny_i = 0
\\
\ sum \ limit_ {i = 1} ^ nx_i (a + b \ sum \ limit_ {i = 1} ^ nx_i - \ sum \ limit_ {i = 1} ^ ny_i) = 0
\ рдЕрдВрдд {рдорд╛рдорд▓реЛрдВ}
\ рдЕрдВрдд {рд╕рдореАрдХрд░рдг *}

рд╕рдореАрдХрд░рдг рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдкреВрд░реНрд╡ рд▓реЛрдб рдХрд░реЗрдВ, рд╕рд╣реА рд▓реЛрдбрд┐рдВрдЧ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ рдФрд░ рдбреЗрдЯрд╛ рдХреЛ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░реЗрдВред

рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рдбреЗрдЯрд╛ рд╕реНрд╡рд░реВрдкрд┐рдд рдХрд░реЗрдВ


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

рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рдбреЗрдЯрд╛ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХреЛрдб
#      import pandas as pd import numpy as np import matplotlib.pyplot as plt import math import pylab as pl import random #    Jupyter %matplotlib inline #    from pylab import rcParams rcParams['figure.figsize'] = 12, 6 #   Anaconda import warnings warnings.simplefilter('ignore') #   table_zero = pd.read_csv('data_example.txt', header=0, sep='\t') #         print table_zero.info() print '********************************************' print table_zero print '********************************************' #     NumPy x_us = [] [x_us.append(float(i)) for i in table_zero['x']] print x_us print type(x_us) print '********************************************' y_us = [] [y_us.append(float(i)) for i in table_zero['y']] print y_us print type(y_us) print '********************************************' #     NumPy x_np = table_zero[['x']].values print x_np print type(x_np) print x_np.shape print '********************************************' y_np = table_zero[['y']].values print y_np print type(y_np) print y_np.shape print '********************************************' 


рджреГрд╢реНрдп


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

рд╕реНрдХреИрдЯрд░рдкреНрд▓реЙрдЯ рдХреЛрдб
 print ' тДЦ1 "    "' plt.plot(x_us,y_us,'o',color='green',markersize=16) plt.xlabel('$Months$', size=16) plt.ylabel('$Sales$', size=16) plt.show() 


рдЕрдиреБрд╕реВрдЪреА рдирдВрдмрд░ 1 "рд╡рд░реНрд╖ рдХреЗ рдорд╣реАрдиреЗ рдкрд░ рд░рд╛рдЬрд╕реНрд╡ рдХреА рдирд┐рд░реНрднрд░рддрд╛"



рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рддреНрдордХ рд╕рдорд╛рдзрд╛рди


рд╣рдо рдЕрдЬрдЧрд░ рдореЗрдВ рд╕рдмрд╕реЗ рдЖрдо рдЙрдкрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ рдФрд░ рд╕рдореАрдХрд░рдгреЛрдВ рдХреА рдкреНрд░рдгрд╛рд▓реА рдХреЛ рд╣рд▓ рдХрд░реЗрдВрдЧреЗ:

\ {{рд╕рдореАрдХрд░рдг *} рд╢реБрд░реВ
\ рд╢реБрд░реВ {рдорд╛рдорд▓реЛрдВ}
na + b \ sum \ limit_ {i = 1} ^ nx_i - \ sum \ limit_ {i = 1} ^ ny_i = 0
\\
\ sum \ limit_ {i = 1} ^ nx_i (a + b \ sum \ limit_ {i = 1} ^ nx_i - \ sum \ limit_ {i = 1} ^ ny_i) = 0
\ рдЕрдВрдд {рдорд╛рдорд▓реЛрдВ}
\ рдЕрдВрдд {рд╕рдореАрдХрд░рдг *}

Cramer рдХреЗ рдирд┐рдпрдо рдХреЗ рдЕрдиреБрд╕рд╛рд░, рд╣рдо рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдирд┐рд░реНрдзрд╛рд░рдХ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдирд┐рд░реНрдзрд╛рд░рдХ рднреА рдкрд╛рддреЗ рд╣реИрдВ рдПрдХ рдФрд░ рдЗрд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдм , рдЬрд┐рд╕рдХреЗ рдмрд╛рдж, рдирд┐рд░реНрдзрд╛рд░рдХ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдХреЗ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдирд┐рд░реНрдзрд╛рд░рдХ рдкрд░ - рд╣рдо рдЧреБрдгрд╛рдВрдХ рдкрд╛рддреЗ рд╣реИрдВ рдПрдХ рдЗрд╕реА рддрд░рд╣, рдЧреБрдгрд╛рдВрдХ рдкрд╛рддреЗ рд╣реИрдВ рдм ред

рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рддреНрдордХ рд╕рдорд╛рдзрд╛рди рдХреЛрдб
 #      a  b    def Kramer_method (x,y): #   ( ) sx = sum(x) #    (   ) sy = sum(y) #       list_xy = [] [list_xy.append(x[i]*y[i]) for i in range(len(x))] sxy = sum(list_xy) #    list_x_sq = [] [list_x_sq.append(x[i]**2) for i in range(len(x))] sx_sq = sum(list_x_sq) #   n = len(x) #   det = sx_sq*n - sx*sx #   a det_a = sx_sq*sy - sx*sxy #   a a = (det_a / det) #   b det_b = sxy*n - sy*sx #   b b = (det_b / det) #   () check1 = (n*b + a*sx - sy) check2 = (b*sx + a*sx_sq - sxy) return [round(a,4), round(b,4)] #       ab_us = Kramer_method(x_us,y_us) a_us = ab_us[0] b_us = ab_us[1] print '\033[1m' + '\033[4m' + "   a  b:" + '\033[0m' print 'a =', a_us print 'b =', b_us print #        def errors_sq_Kramer_method(answers,x,y): list_errors_sq = [] for i in range(len(x)): err = (answers[0] + answers[1]*x[i] - y[i])**2 list_errors_sq.append(err) return sum(list_errors_sq) #       error_sq = errors_sq_Kramer_method(ab_us,x_us,y_us) print '\033[1m' + '\033[4m' + "  " + '\033[0m' print error_sq print #    # print '\033[1m' + '\033[4m' + "     :" + '\033[0m' # % timeit error_sq = errors_sq_Kramer_method(ab,x_us,y_us) 


рдпрд╣рд╛рдБ рд╣рдореЗрдВ рдХреНрдпрд╛ рдорд┐рд▓рд╛ рд╣реИ:



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

рд░рд┐рдЧреНрд░реЗрд╢рди рд▓рд╛рдЗрди рдХреЛрдб
 #         def sales_count(ab,x,y): line_answers = [] [line_answers.append(ab[0]+ab[1]*x[i]) for i in range(len(x))] return line_answers #   print 'тДЦ2 "   "' plt.plot(x_us,y_us,'o',color='green',markersize=16, label = '$True$ $answers$') plt.plot(x_us, sales_count(ab_us,x_us,y_us), color='red',lw=4, label='$Function: a + bx,$ $where$ $a='+str(round(ab_us[0],2))+',$ $b='+str(round(ab_us[1],2))+'$') plt.xlabel('$Months$', size=16) plt.ylabel('$Sales$', size=16) plt.legend(loc=1, prop={'size': 16}) plt.show() 


рдЕрдиреБрд╕реВрдЪреА рдирдВрдмрд░ 2 "рд╕рд╣реА рдФрд░ рдЕрдиреБрдорд╛рдирд┐рдд рдЙрддреНрддрд░"



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

рд╡рд┐рдЪрд▓рди рдЕрдиреБрд╕реВрдЪреА рдХреЛрдб
 #         def error_per_month(ab,x,y): sales_c = sales_count(ab,x,y) errors_percent = [] for i in range(len(x)): errors_percent.append(100*(sales_c[i]-y[i])/y[i]) return errors_percent #   print 'тДЦ3 " -, %"' plt.gca().bar(x_us, error_per_month(ab_us,x_us,y_us), color='brown') plt.xlabel('Months', size=16) plt.ylabel('Calculation error, %', size=16) plt.show() 


рдЕрдиреБрд╕реВрдЪреА рд╕рдВрдЦреНрдпрд╛ 3 "рд╡рд┐рдЪрд▓рди,%"



рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдордиреЗ рдЕрдкрдирд╛ рдХрд╛рд░реНрдп рдкреВрд░рд╛ рдХрд░ рд▓рд┐рдпрд╛ рд╣реИред

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

рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рддреНрдордХ рд╕рдорд╛рдзрд╛рди рдХреЛрдб (NumPy)
 #          1. #     ,      a vector_1 = np.ones((x_np.shape[0],1)) x_np = table_zero[['x']].values #         x_np x_np = np.hstack((vector_1,x_np)) #  ,     print vector_1[0:3] print x_np[0:3] print '***************************************' print #  ,     a  b     def pseudoinverse_matrix(X, y): #      X = np.matrix(X) #    XT = XT #    XTX = XT*X #    inv = np.linalg.pinv(XTX) #      y = np.matrix(y) #    return (inv*XT)*y #   ab_np = pseudoinverse_matrix(x_np, y_np) print ab_np print '***************************************' print #  ,       def matrix_equation(X,y): a = np.dot(XT, X) b = np.dot(XT, y) return np.linalg.solve(a, b) #   ab_np = matrix_equation(x_np,y_np) print ab_np 


рдЧреБрдгрд╛рдВрдХреЛрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд▓рдЧрдиреЗ рд╡рд╛рд▓реЗ рд╕рдордп рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВ рдПрдХ рдФрд░ рдм , рдкреНрд░рд╕реНрддреБрдд 3 рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ред

рдЧрдгрдирд╛ рд╕рдордп рдХреА рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рдХреЛрдб
 print '\033[1m' + '\033[4m' + "       NumPy:" + '\033[0m' % timeit ab_us = Kramer_method(x_us,y_us) print '***************************************' print print '\033[1m' + '\033[4m' + "       :" + '\033[0m' %timeit ab_np = pseudoinverse_matrix(x_np, y_np) print '***************************************' print print '\033[1m' + '\033[4m' + "       :" + '\033[0m' %timeit ab_np = matrix_equation(x_np, y_np) 




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

рдЕрдм рдЖрдк рдЧреБрдгрд╛рдВрдХ рдЦреЛрдЬрдиреЗ рдХреЗ рдЕрдиреНрдп рддрд░реАрдХреЛрдВ рдкрд░ рдЖрдЧреЗ рдмрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ рдПрдХ рдФрд░ рдм ред

рдзреАрд░реЗ-рдзреАрд░реЗ рдЙрддрд░рдирд╛


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

рд╣рдо рдЗрд╕ рддрдереНрдп рдкрд░ рдзреНрдпрд╛рди рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдХрдИ рдорд┐рдиреАрдорд╛ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдиреАрдЪреЗ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рдЙрддрд░рддреЗ рд╣реБрдП, рд╣рдо рдПрдХ рдФрд░ рдиреНрдпреВрдирддрдо рдирд╣реАрдВ рдкрд╛рдПрдВрдЧреЗ рдЬреЛ рд╕рдВрднрд╡рддрдГ рдкрд╛рдП рдЧрдП рд╕реЗ рдХрдо рд╣реИред рдЖрд░рд╛рдо рдХрд░реЛ, рд╣рдо рдЦрддрд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╣реИрдВ! рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдЕрдкрдиреЗ рдХрд╛рд░реНрдп рдХреЗ рдмрд╛рдж рд╕реЗ рдПрдХ рдиреНрдпреВрдирддрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ \ _ \ _ рд╕реАрдорд╛рдПрдВ {{i = 1} ^ n (a + bx_i - y_i) ^ 2 рдЧреНрд░рд╛рдл рдкрд░ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдкрд░рд╡рд▓рдп рд╣реИред рдФрд░ рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рд╕рднреА рдХреЛ рдЧрдгрд┐рдд рдХреЗ рд╕реНрдХреВрд▓ рдкрд╛рдареНрдпрдХреНрд░рдо рд╕реЗ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдкрд░рд╡рд▓рдп рдХреЗрд╡рд▓ рдПрдХ рдиреНрдпреВрдирддрдо рд╣реИред

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

рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ рд╡рдВрд╢ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╡рд╛рдХреНрдп рдкрдврд╝рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВ:

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

рд╡рд╣ рд╕рдм рд╣реИ! рдЕрдм рд╣рдо рдорд╛рд░рд┐рдпрд╛рдирд╛ рдЯреНрд░реЗрдВрдЪ рдХреЗ рд╕рдмрд╕реЗ рдЧрд╣рд░реЗ рдХрдгреНрда рдХреА рдЦреЛрдЬ рдореЗрдВ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВред рдиреАрдЪреЗ рдЙрддрд░рдирд╛ред

рдЧреНрд░реЗрдбрд┐рдПрдВрдЯ рдбрд┐рд╕реЗрдВрдЯ рдХреЛрдб
 #        NumPy. #       x,y,   ( =0,1),  (tolerance) def gradient_descent_usual(x_us,y_us,l=0.1,tolerance=0.000000000001): #   ( ) sx = sum(x_us) #    (   ) sy = sum(y_us) #       list_xy = [] [list_xy.append(x_us[i]*y_us[i]) for i in range(len(x_us))] sxy = sum(list_xy) #    list_x_sq = [] [list_x_sq.append(x_us[i]**2) for i in range(len(x_us))] sx_sq = sum(list_x_sq) #   num = len(x_us) #   ,    a = float(random.uniform(-0.5, 0.5)) b = float(random.uniform(-0.5, 0.5)) #    ,     1  0 #       errors = [1,0] #    #     ,        ,    tolerance while abs(errors[-1]-errors[-2]) > tolerance: a_step = a - l*(num*a + b*sx - sy)/num b_step = b - l*(a*sx + b*sx_sq - sxy)/num a = a_step b = b_step ab = [a,b] errors.append(errors_sq_Kramer_method(ab,x_us,y_us)) return (ab),(errors[2:]) #    list_parametres_gradient_descence = gradient_descent_usual(x_us,y_us,l=0.1,tolerance=0.000000000001) print '\033[1m' + '\033[4m' + "  a  b:" + '\033[0m' print 'a =', round(list_parametres_gradient_descence[0][0],3) print 'b =', round(list_parametres_gradient_descence[0][1],3) print print '\033[1m' + '\033[4m' + "  :" + '\033[0m' print round(list_parametres_gradient_descence[1][-1],3) print print '\033[1m' + '\033[4m' + "    :" + '\033[0m' print len(list_parametres_gradient_descence[1]) print 




рд╣рдо рдорд╛рд░рд┐рдпрд╛рдирд╛ рдЯреНрд░реЗрдВрдЪ рдХреЗ рдмрд╣реБрдд рдиреАрдЪреЗ рддрдХ рдЧрд┐рд░ рдЧрдП рдФрд░ рд╡рд╣рд╛рдБ рд╣рдореЗрдВ рдЧреБрдгрд╛рдВрдХ рдХреЗ рд╕рднреА рд╕рдорд╛рди рдореВрд▓реНрдп рдорд┐рд▓реЗ рдПрдХ рдФрд░ рдм , рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдкреЗрдХреНрд╖рд┐рдд рдерд╛ред

рдЪрд▓реЛ рдПрдХ рдФрд░ рдЧреЛрддрд╛ рд▓рдЧрд╛рддреЗ рд╣реИрдВ, рдХреЗрд╡рд▓ рдЗрд╕ рдмрд╛рд░, рд╣рдорд╛рд░реЗ рдЧрд╣рд░реЗ рд╕рдореБрджреНрд░ рдХреЗ рд╡рд╛рд╣рди рдХреЛ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпрд╛рдВ рд╣реЛрдВрдЧреА, рдЕрд░реНрдерд╛рддреН рдиреНрдпреВрдордкреА рд▓рд╛рдЗрдмреНрд░реЗрд░реАред

рдЧреНрд░реЗрдбрд┐рдПрдВрдЯ рдбрд┐рд╕реЗрдВрдЯ рдХреЛрдб (NumPy)
 #           NumPy, #          NumPy def error_square_numpy(ab,x_np,y_np): y_pred = np.dot(x_np,ab) error = y_pred - y_np return sum((error)**2) #        NumPy. #       x,y,   ( =0,1),  (tolerance) def gradient_descent_numpy(x_np,y_np,l=0.1,tolerance=0.000000000001): #   ( ) sx = float(sum(x_np[:,1])) #    (   ) sy = float(sum(y_np)) #       sxy = x_np*y_np sxy = float(sum(sxy[:,1])) #    sx_sq = float(sum(x_np[:,1]**2)) #   num = float(x_np.shape[0]) #   ,    a = float(random.uniform(-0.5, 0.5)) b = float(random.uniform(-0.5, 0.5)) #    ,     1  0 #       errors = [1,0] #    #     ,        ,    tolerance while abs(errors[-1]-errors[-2]) > tolerance: a_step = a - l*(num*a + b*sx - sy)/num b_step = b - l*(a*sx + b*sx_sq - sxy)/num a = a_step b = b_step ab = np.array([[a],[b]]) errors.append(error_square_numpy(ab,x_np,y_np)) return (ab),(errors[2:]) #    list_parametres_gradient_descence = gradient_descent_numpy(x_np,y_np,l=0.1,tolerance=0.000000000001) print '\033[1m' + '\033[4m' + "  a  b:" + '\033[0m' print 'a =', round(list_parametres_gradient_descence[0][0],3) print 'b =', round(list_parametres_gradient_descence[0][1],3) print print '\033[1m' + '\033[4m' + "  :" + '\033[0m' print round(list_parametres_gradient_descence[1][-1],3) print print '\033[1m' + '\033[4m' + "    :" + '\033[0m' print len(list_parametres_gradient_descence[1]) print 



рдЧреБрдгрд╛рдВрдХ рдорд╛рди рдПрдХ рдФрд░ рдм рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рддред

рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдЧреНрд░реЗрдбрд┐рдПрдВрдЯ рдбрд┐рд╕реЗрдВрдЯ рдХреЗ рджреМрд░рд╛рди рддреНрд░реБрдЯрд┐ рдХреИрд╕реЗ рдмрджрд▓ рдЧрдИ, рдЕрд░реНрдерд╛рдд, рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рдХреЗ рд╕рд╛рде рдЪреБрдХрддрд╛ рд╡рд┐рдЪрд▓рди рдХрд╛ рдпреЛрдЧ рдХреИрд╕реЗ рдмрджрд▓ рдЧрдпрд╛ред

рдЪреБрдХрддрд╛ рд╡рд┐рдЪрд▓рди рдХреЗ рд░рдХрдо рдХреЗ рдЧреНрд░рд╛рдл рдХреЗ рд▓рд┐рдП рдХреЛрдб
 print 'тДЦ4 "   -"' plt.plot(range(len(list_parametres_gradient_descence[1])), list_parametres_gradient_descence[1], color='red', lw=3) plt.xlabel('Steps (Iteration)', size=16) plt.ylabel('Sum of squared deviations', size=16) plt.show() 


рдЪрд╛рд░реНрдЯ dev4 "рдврд╛рд▓ рд╡рдВрд╢ рдореЗрдВ рд╡рд┐рдЪрд▓рди рдХреЗ рд╡рд░реНрдЧреЛрдВ рдХрд╛ рдпреЛрдЧ"



рдЧреНрд░рд╛рдлрд╝ рдкрд░ рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рдХреЗ рд╕рд╛рде рддреНрд░реБрдЯрд┐ рдХрдо рд╣реЛ рдЬрд╛рддреА рд╣реИ, рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЗ рдмрд╛рдж рд╣рдо рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдХреНрд╖реИрддрд┐рдЬ рд░реЗрдЦрд╛ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╣реИрдВред

рдЕрдВрдд рдореЗрдВ, рд╣рдо рдХреЛрдб рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рдореЗрдВ рдЕрдВрддрд░ рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рддреЗ рд╣реИрдВ:

рдХреНрд░рдорд┐рдХ рд╡рдВрд╢ рдЧрдгрдирд╛ рд╕рдордп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб
 print '\033[1m' + '\033[4m' + "       NumPy:" + '\033[0m' %timeit list_parametres_gradient_descence = gradient_descent_usual(x_us,y_us,l=0.1,tolerance=0.000000000001) print '***************************************' print print '\033[1m' + '\033[4m' + "       NumPy:" + '\033[0m' %timeit list_parametres_gradient_descence = gradient_descent_numpy(x_np,y_np,l=0.1,tolerance=0.000000000001) 




рд╢рд╛рдпрдж рд╣рдо рдХреБрдЫ рдЧрд▓рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рд╕реЗ, рдПрдХ рд╕рд░рд▓ "рд╕реНрд╡-рд▓рд┐рдЦрд┐рдд" рдлрд╝рдВрдХреНрд╢рди рдЬреЛ рдХрд┐ NumPy рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд╕рдордп рд╕реЗ рдкрд╣рд▓реЗ NumPy рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

рд▓реЗрдХрд┐рди рд╣рдо рдЕрднреА рднреА рдЦрдбрд╝реЗ рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рд░рд▓ рд░реЗрдЦреАрдп рдкреНрд░рддрд┐рдЧрдорди рдХреЗ рд╕рдореАрдХрд░рдг рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рд░реЛрдорд╛рдВрдЪрдХ рддрд░реАрдХреЗ рдХреЗ рдЕрдзреНрдпрдпрди рдХреА рдУрд░ рдмрдврд╝рддреЗ рд╣реИрдВред рдореБрдЭрд╕реЗ рдорд┐рд▓реЛ!

рд╕реНрдЯреЛрдЪреИрд╕реНрдЯрд┐рдХ рдЧреНрд░реЗрдбрд┐рдПрдВрдЯ рдбрд┐рд╕реЗрдВрдЯ


рд╕реНрдЯреЛрдЪрд╕реНрдЯрд┐рдХ рдврд╛рд▓ рд╡рдВрд╢ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рд╛рдзрд╛рд░рдг рдврд╛рд▓ рд╡рдВрд╢ рд╕реЗ рдЗрд╕рдХреЗ рдЕрдВрддрд░ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред рд╣рдо, рд╡реНрдпреБрддреНрдкрдиреНрди рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХреЗ рд╡реНрдпреБрддреНрдкрдиреНрди рдХреЗ рд╕рдореАрдХрд░рдгреЛрдВ рдореЗрдВ рдПрдХ рдФрд░ рдПрдХ рд╕рднреА рдЪрд┐рд╣реНрдиреЛрдВ рдХреЗ рдорд╛рдиреЛрдВ рдФрд░ рдирдореВрдиреЗ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╕рд╣реА рдЙрддреНрддрд░реЛрдВ (рдпрд╛рдиреА, рдХреЗ рдпреЛрдЧ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ xi рдФрд░ yi )ред рд╕реНрдЯреЛрдХреЗрд╕реНрдЯрд┐рдХ рдЧреНрд░реЗрдбрд┐рдПрдВрдЯ рд╡рдВрд╢ рдореЗрдВ, рд╣рдо рдирдореВрдиреЗ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╕рднреА рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдЫрджреНрдо рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рддрд░реАрдХреЗ рд╕реЗ, рд╣рдо рддрдерд╛рдХрдерд┐рдд рдирдореВрдирд╛ рд╕реВрдЪрдХрд╛рдВрдХ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВрдЧреЗ рдФрд░ рдЗрд╕рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рд╕реВрдЪрдХрд╛рдВрдХ рд╕рдВрдЦреНрдпрд╛ 3 (рддреАрди) рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдо рдорд╛рди рд▓реЗрддреЗ рд╣реИрдВ x3=3 рдФрд░ y3=$4. , рдлрд┐рд░ рд╣рдо рдбреЗрд░рд┐рд╡реЗрдЯрд┐рд╡ рдХреЗ рд╕рдореАрдХрд░рдгреЛрдВ рдореЗрдВ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдирдП рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдлрд┐рд░, рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдлрд┐рд░ рд╕реЗ рдЫрджреНрдо-рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд░реВрдк рд╕реЗ рдирдореВрдиреЗ рдХреЗ рд╕реВрдЪрдХрд╛рдВрдХ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░рддреЗ рд╣реИрдВ, рдЖрдВрд╢рд┐рдХ рдЕрдВрддрд░ рд╕рдореАрдХрд░рдгреЛрдВ рдореЗрдВ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЗ рдЕрдиреБрд░реВрдк рдорд╛рдиреЛрдВ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЛ рдПрдХ рдирдП рддрд░реАрдХреЗ рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдПрдХ рдФрд░ рдПрдХ рдЖрджрд┐ рд╣рд░рд┐рдпрд╛рд▓реА рд╕реЗ рдкрд╣рд▓реЗ рдЕрднрд┐рд╕рд░рдгред рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ, рдРрд╕рд╛ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд╕рдЪ рд╣реИ, рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рдХреЗ рд╕рд╛рде рддреНрд░реБрдЯрд┐ рдХрдо рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдкреНрд░рд╡реГрддреНрддрд┐ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдореМрдЬреВрдж рд╣реИред

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

рд╣рдо рдХреЛрдб рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВред

рд╕реНрдЯреЛрдХреЗрд╕реНрдЯрд┐рдХ рдЧреНрд░реЗрдбрд┐рдПрдВрдЯ рд╡рдВрд╢ рдХреЗ рд▓рд┐рдП рдХреЛрдб
 #   .. def stoch_grad_step_usual(vector_init, x_us, ind, y_us, l): #   ,      ind # (.- stoch_grad_descent_usual) x = x_us[ind] #   y (),     x y_pred = vector_init[0] + vector_init[1]*x_us[ind] #         error = y_pred - y_us[ind] #     ab grad_a = error #    ab grad_b = x_us[ind]*error #     vector_new = [vector_init[0]-l*grad_a, vector_init[1]-l*grad_b] return vector_new #   .. def stoch_grad_descent_usual(x_us, y_us, l=0.1, steps = 800): #          vector_init = [float(random.uniform(-0.5, 0.5)), float(random.uniform(-0.5, 0.5))] errors = [] #    #       (steps) for i in range(steps): ind = random.choice(range(len(x_us))) new_vector = stoch_grad_step_usual(vector_init, x_us, ind, y_us, l) vector_init = new_vector errors.append(errors_sq_Kramer_method(vector_init,x_us,y_us)) return (vector_init),(errors) #    list_parametres_stoch_gradient_descence = stoch_grad_descent_usual(x_us, y_us, l=0.1, steps = 800) print '\033[1m' + '\033[4m' + "  a  b:" + '\033[0m' print 'a =', round(list_parametres_stoch_gradient_descence[0][0],3) print 'b =', round(list_parametres_stoch_gradient_descence[0][1],3) print print '\033[1m' + '\033[4m' + "  :" + '\033[0m' print round(list_parametres_stoch_gradient_descence[1][-1],3) print print '\033[1m' + '\033[4m' + "     :" + '\033[0m' print len(list_parametres_stoch_gradient_descence[1]) 




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

рд╕реНрдЯреЛрдХреЗрд╕реНрдЯрд┐рдХ рдХреНрд░рдорд┐рдХ рд╡рдВрд╢ рдореЗрдВ рд╡рд░реНрдЧ рд╡рд┐рдЪрд▓рди рдХреЗ рдпреЛрдЧ рдХреЗ рдЧреНрд░рд╛рдл рдХреЗ рд▓рд┐рдП рдХреЛрдб
 print ' тДЦ5 "   -"' plt.plot(range(len(list_parametres_stoch_gradient_descence[1])), list_parametres_stoch_gradient_descence[1], color='red', lw=2) plt.xlabel('Steps (Iteration)', size=16) plt.ylabel('Sum of squared deviations', size=16) plt.show() 


рдЪрд╛рд░реНрдЯ dev5 "рд╕реНрдЯреЛрдЪрд╕реНрдЯрд┐рдХ рдврд╛рд▓ рд╡рдВрд╢ рдореЗрдВ рд╡рд┐рдЪрд▓рди рдХреЗ рд╡рд░реНрдЧреЛрдВ рдХрд╛ рдпреЛрдЧ"



рд╢реЗрдбреНрдпреВрд▓ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реЛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЕрдм рд╣рдо рд╕рдм рдХреБрдЫ рдареАрдХ рдХрд░ рджреЗрдВрдЧреЗред

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

рдХрдо рдЪрд░рдгреЛрдВ рдореЗрдВ SGD рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб
 #  ,    100       list_parametres_stoch_gradient_descence = stoch_grad_descent_usual(x_us, y_us, l=0.001, steps = 80000) print '\033[1m' + '\033[4m' + "  a  b:" + '\033[0m' print 'a =', round(list_parametres_stoch_gradient_descence[0][0],3) print 'b =', round(list_parametres_stoch_gradient_descence[0][1],3) print print '\033[1m' + '\033[4m' + "  :" + '\033[0m' print round(list_parametres_stoch_gradient_descence[1][-1],3) print print '\033[1m' + '\033[4m' + "     :" + '\033[0m' print len(list_parametres_stoch_gradient_descence[1]) print ' тДЦ6 "   -"' plt.plot(range(len(list_parametres_stoch_gradient_descence[1])), list_parametres_stoch_gradient_descence[1], color='red', lw=2) plt.xlabel('Steps (Iteration)', size=16) plt.ylabel('Sum of squared deviations', size=16) plt.show() 




рдЪрд╛рд░реНрдЯ i6 "рд╕реНрдЯреЛрдЪрд╕реНрдЯрд┐рдХ рдврд╛рд▓ рд╡рдВрд╢ (80 рд╣рдЬрд╛рд░ рдХрджрдо) рдореЗрдВ рдЪреМрдХреЛрд░ рд╡рд┐рдЪрд▓рди рдХрд╛ рдпреЛрдЧ"



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

SGD рдЪрд╛рд░реНрдЯ рдХреЗ рд▓рд┐рдП рдХреЛрдб (рдкрд╣рд▓реЗ 1000 рдХрджрдо)
 print ' тДЦ7 "   -.  1000 "' plt.plot(range(len(list_parametres_stoch_gradient_descence[1][:1000])), list_parametres_stoch_gradient_descence[1][:1000], color='red', lw=2) plt.xlabel('Steps (Iteration)', size=16) plt.ylabel('Sum of squared deviations', size=16) plt.show() print ' тДЦ7 "   -.  1000 "' plt.plot(range(len(list_parametres_stoch_gradient_descence[1][-1000:])), list_parametres_stoch_gradient_descence[1][-1000:], color='red', lw=2) plt.xlabel('Steps (Iteration)', size=16) plt.ylabel('Sum of squared deviations', size=16) plt.show() 


рдЕрдиреБрд╕реВрдЪреА рдирдВрдмрд░ 7 "SGD рдХреЗ рд╡рд┐рдЪрд▓рди рдХреЗ рд╡рд░реНрдЧреЛрдВ рдХрд╛ рдпреЛрдЧ (рдкрд╣рд▓реЗ 1000 рдХрджрдо)"



рдЧреНрд░рд╛рдл рдирдВрдмрд░ 8 "SGD рдХреЗ рд╡рд┐рдЪрд▓рди рдХреЗ рд╡рд░реНрдЧреЛрдВ рдХрд╛ рдпреЛрдЧ (рдЕрдВрддрд┐рдо 1000 рдХрджрдо)"



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

(рдФрд░ рд╣рдо рдЙрди рдкрддреНрдерд░реЛрдВ рдкрд░ рдареЛрдХрд░ рдирд╣реАрдВ рдЦрд╛рдПрдВрдЧреЗ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдордиреЗ рдкрд╣рд▓реЗ рдкрд╣рдЪрд╛рдирд╛ рдерд╛)

рд╕реНрдЯреЛрдХреЗрд╕реНрдЯрд┐рдХ рдЧреНрд░реЗрдбрд┐рдПрдВрдЯ рдбрд┐рд╕реЗрдВрдЯ (NumPy) рдХреЗ рд▓рд┐рдП рдХреЛрдб
 #       def stoch_grad_step_numpy(vector_init, X, ind, y, l): x = X[ind] y_pred = np.dot(x,vector_init) err = y_pred - y[ind] grad_a = err grad_b = x[1]*err return vector_init - l*np.array([grad_a, grad_b]) #      def stoch_grad_descent_numpy(X, y, l=0.1, steps = 800): vector_init = np.array([[np.random.randint(X.shape[0])], [np.random.randint(X.shape[0])]]) errors = [] for i in range(steps): ind = np.random.randint(X.shape[0]) new_vector = stoch_grad_step_numpy(vector_init, X, ind, y, l) vector_init = new_vector errors.append(error_square_numpy(vector_init,X,y)) return (vector_init), (errors) #    list_parametres_stoch_gradient_descence = stoch_grad_descent_numpy(x_np, y_np, l=0.001, steps = 80000) print '\033[1m' + '\033[4m' + "  a  b:" + '\033[0m' print 'a =', round(list_parametres_stoch_gradient_descence[0][0],3) print 'b =', round(list_parametres_stoch_gradient_descence[0][1],3) print print '\033[1m' + '\033[4m' + "  :" + '\033[0m' print round(list_parametres_stoch_gradient_descence[1][-1],3) print print '\033[1m' + '\033[4m' + "     :" + '\033[0m' print len(list_parametres_stoch_gradient_descence[1]) print 




рдореВрд▓рд╛рдВрдХ рдХреЗ рджреМрд░рд╛рди, NumPy рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдорд╛рди рд▓рдЧрднрдЧ рд╕рдорд╛рди рдереЗ ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рддрд░реНрдХрд╕рдВрдЧрдд рд╣реИред

рд╣рдо рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдПрдВрдЧреЗ рдХрд┐ рд╕реНрдЯреЛрдХреЗрд╕реНрдЯрд┐рдХ рдЧреНрд░реЗрдбрд┐рдПрдВрдЯ рдЕрд╡рд░реЛрд╣рд┐рдпреЛрдВ рдиреЗ рд╣рдореЗрдВ рдХрд┐рддрдирд╛ рд╕рдордп рджрд┐рдпрд╛ред

рдЕрдиреБрдХреВрд▓ рдЧрдгрдирд╛ рд╕рдордп (80 рд╣рдЬрд╛рд░ рдХрджрдо) рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб
 print '\033[1m' + '\033[4m' +\ "        NumPy:"\ + '\033[0m' %timeit list_parametres_stoch_gradient_descence = stoch_grad_descent_usual(x_us, y_us, l=0.001, steps = 80000) print '***************************************' print print '\033[1m' + '\033[4m' +\ "        NumPy:"\ + '\033[0m' %timeit list_parametres_stoch_gradient_descence = stoch_grad_descent_numpy(x_np, y_np, l=0.001, steps = 80000) 




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

рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛


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

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

рдФрд░ рдЕрдм рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╕рд╛рд░рд╛рдВрд╢ред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд▓реЗрдЦ рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рд╕рд╛рдордЧреНрд░реА рд╢реБрд░реБрдЖрддреА "рддрд┐рдерд┐ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХреЛрдВ" рдХреЛ рд╕рдордЭрдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧреА рдХрд┐ рд╕рд░рд▓ (рдФрд░ рди рдХреЗрд╡рд▓) рд░реЗрдЦреАрдп рдкреНрд░рддрд┐рдЧрдорди рдХреЗ рд╕рдореАрдХрд░рдгреЛрдВ рдХреЛ рдХреИрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПред

рджреВрд╕рд░реЗ, рд╣рдордиреЗ рд╕рдореАрдХрд░рдг рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХреАред рдЕрдм, рд╕реНрдерд┐рддрд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд╣рдо рдЙрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЙрдкрдпреБрдХреНрдд рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВред

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

рдЪреМрдерд╛, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, "рд╕реНрд╡-рд▓рд┐рдЦрд┐рдд" рдХрд╛рд░реНрдпреЛрдВ рдиреЗ рдЧрдгрдирд╛рдУрдВ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд▓реМрдХрд┐рдХ рдкрд░рд┐рдгрд╛рдо рджрд┐рдЦрд╛рдпрд╛ред рдпрд╣ рд╕рдВрднрд╡рддрдГ NumPy рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдкреЗрд╢реЗрд╡рд░ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░рдг рд╣реИред рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдирд┐рд╖реНрдХрд░реНрд╖ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИред рдПрдХ рдУрд░, рдХрднреА-рдХрднреА рдпрд╣ рд╕реНрдерд╛рдкрд┐рдд рд░рд╛рдп рдкрд░ рд╕рд╡рд╛рд▓ рдЙрдард╛рдиреЗ рд▓рд╛рдпрдХ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рджреВрд╕рд░реА рдУрд░, рдпрд╣ рд╣рдореЗрд╢рд╛ рдЬрдЯрд┐рд▓ рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд╛рдпрдХ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ - рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рдХрднреА-рдХрднреА рдХрд┐рд╕реА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╕рд░рд▓ рддрд░реАрдХрд╛ рдЕрдзрд┐рдХ рдкреНрд░рднрд╛рд╡реА рд╣реЛрддрд╛ рд╣реИред рдФрд░ рдЪреВрдВрдХрд┐ рд╣рдорд╛рд░рд╛ рд▓рдХреНрд╖реНрдп рд╕рд░рд▓ рд░реЗрдЦреАрдп рдкреНрд░рддрд┐рдЧрдорди рдХреЗ рд╕рдореАрдХрд░рдг рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рддреАрди рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдирд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП "рд╕реНрд╡-рд▓рд┐рдЦрд┐рдд" рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдХрд╛рдлреА рдкрд░реНрдпрд╛рдкреНрдд рдерд╛ред

тЖР рд▓реЗрдЦрдХ рдХреА рдкрд┐рдЫрд▓рд╛ рдХрд╛рдо - "рдШрд╛рддреАрдп рд╡рд┐рддрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдХреЗрдВрджреНрд░реАрдп рд╕реАрдорд╛ рдкреНрд░рдореЗрдп рдХреЗ рдмрдпрд╛рди рдХрд╛ рдЕрдзреНрдпрдпрди"
тЖТ рд▓реЗрдЦрдХ рдХрд╛ рдЕрдЧрд▓рд╛ рдХрд╛рдо - "рд╣рдо рд░реИрдЦрд┐рдХ рдкреНрд░рддрд┐рдЧрдорди рдХреЗ рд╕рдореАрдХрд░рдг рдХреЛ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд░реВрдк рдореЗрдВ рд▓рд╛рддреЗ рд╣реИрдВ"

рд╕рд╛рд╣рд┐рддреНрдп (рдпрд╛ рдРрд╕рд╛ рдХреБрдЫ)


1. рд░реИрдЦрд┐рдХ рдкреНрд░рддрд┐рдЧрдорди

http://statistica.ru/theory/osnovy-lineynoy-regressii/

2. рдХрдо рд╕реЗ рдХрдо рд╡рд░реНрдЧреЛрдВ рдХреА рд╡рд┐рдзрд┐

mathprofi.ru/metod_naimenshih_kvadratov.html

3. рд╡реНрдпреБрддреНрдкрдиреНрди

www.mathprofi.ru/chastnye_proizvodnye_primery.html

4. рдврд╛рд▓

mathprofi.ru /proizvodnaja_po_napravleniju_i_gradient.html

5. рд╕реНрдирд╛рддрдХ рд╡рдВрд╢рдЬ

habr.com/en/post/471458

habr.com/en/post/307312

artemarakcheev.com/-12-12-31/linear_regression

6. NumPy рд▓рд╛рдЗрдмреНрд░реЗрд░реА

рдбреЙрдХреНрд╕ред scipy.org/doc/ numpy-рез.резреж.рез / рд╕рдВрджрд░реНрдн / рдЬрдирд░реЗрдЯ /

numpy.linalg.solve.html

docs.scipy.org/doc/numpy-1.10.0/reference/generated/numpy.linalg.pinv.ythyworld.ru/numpy/2ред рдПрдЪрдЯреАрдПрдордПрд▓

Source: https://habr.com/ru/post/hi474602/


All Articles