рдореБрдЦреНрдп рд╕рд╛рдордЧреНрд░реА рдкрд░ рдЬрд╛рдПрдБ

pandas рдореЗрдВ рдореВрд╡рд┐рдВрдЧ рдПрд╡рд░реЗрдЬ

рдЬрд╛рдиреЗрдВ рдХрд┐ рдореВрд╡рд┐рдВрдЧ рдпрд╛ рд░реЛрд▓рд┐рдВрдЧ рдПрд╡рд░реЗрдЬ рдХреА рдорджрдж рд╕реЗ рдЖрдк рд░реБрдЭрд╛рдиреЛрдВ рдХреЛ рдХреИрд╕реЗ рдкрдХрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЯрд╛рдЗрдо рд╕реАрд░реАрдЬрд╝ рдбреЗрдЯрд╛ рдХрд╛ рдЕрд░реНрде рдХреИрд╕реЗ рдирд┐рдХрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред
┬╖ 8 рдорд┐ре░ рдкрдврд╝реЗрдВ

AI рдХреЗ рд╕рд╛рде рдЦреЛрдЬреЗрдВ

рдкрд░рд┐рдЪрдп

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

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

рдореВрд╡рд┐рдВрдЧ рдПрд╡рд░реЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдзрд┐рдХрддрд░ рдЯрд╛рдЗрдо рд╕реАрд░реАрдЬрд╝ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЕрд▓реНрдкрдХрд╛рд▓рд┐рдХ рдЙрддрд╛рд░-рдЪрдврд╝рд╛рд╡ рдХреЛ рдХреИрдкреНрдЪрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ, рдЬрдмрдХрд┐ рджреАрд░реНрдШрдХрд╛рд▓рд┐рдХ рд░реБрдЭрд╛рдиреЛрдВ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдмрдирд╛ рд░рд╣реЗред

рдЯрд╛рдЗрдо рд╕реАрд░реАрдЬрд╝ рдбреЗрдЯрд╛ рдХреЗ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ: рд╢реЗрдпрд░ рдХреАрдорддреЗрдВ, рдореМрд╕рдо рд░рд┐рдкреЛрд░реНрдЯ, рд╡рд╛рдпреБ рдЧреБрдгрд╡рддреНрддрд╛, рд╕рдХрд▓ рдШрд░реЗрд▓реВ рдЙрддреНрдкрд╛рдж, рд░реЛрдЬрд╝рдЧрд╛рд░ рдЖрджрд┐ред

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдореВрд╡рд┐рдВрдЧ рдПрд╡рд░реЗрдЬ рдбреЗрдЯрд╛ рдХреЛ рд╕реНрдореВрдж рдХрд░рддрд╛ рд╣реИред

рдореВрд╡рд┐рдВрдЧ рдПрд╡рд░реЗрдЬ рдХрдИ рдПрд▓реНрдЧреЛрд░рд┐рджреНрдо рдХреА рд░реАрдврд╝ рд╣реИ, рдФрд░ рдРрд╕рд╛ рд╣реА рдПрдХ рдПрд▓реНрдЧреЛрд░рд┐рджреНрдо рд╣реИ рдСрдЯреЛрд░рд┐рдЧреНрд░реЗрд╕рд┐рд╡ рдЗрдВрдЯреАрдЧреНрд░реЗрдЯреЗрдб рдореВрд╡рд┐рдВрдЧ рдПрд╡рд░реЗрдЬ рдореЙрдбрд▓ (ARIMA), рдЬреЛ рдЯрд╛рдЗрдо рд╕реАрд░реАрдЬрд╝ рдбреЗрдЯрд╛ рдХреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореВрд╡рд┐рдВрдЧ рдПрд╡рд░реЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

рдореВрд╡рд┐рдВрдЧ рдПрд╡рд░реЗрдЬ рдХреЗ рдХрдИ рдкреНрд░рдХрд╛рд░ рд╣реЛрддреЗ рд╣реИрдВ:

  • рд╕рд┐рдВрдкрд▓ рдореВрд╡рд┐рдВрдЧ рдПрд╡рд░реЗрдЬ (SMA): рд╕рд┐рдВрдкрд▓ рдореВрд╡рд┐рдВрдЧ рдПрд╡рд░реЗрдЬ (SMA) рдПрдХ рд╕реНрд▓рд╛рдЗрдбрд┐рдВрдЧ рд╡рд┐рдВрдбреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдВрдЦреНрдпрд╛ рдХреА рд╕рдордп рдЕрд╡рдзрд┐рдпреЛрдВ рдкрд░ рдФрд╕рдд рд▓реЗрддрд╛ рд╣реИред рдпрд╣ рдкрд┐рдЫрд▓реЗ n рдбреЗрдЯрд╛ рдХрд╛ рд╕рдорд╛рди-рднрд╛рд░рд┐рдд рдореАрди рд╣реЛрддрд╛ рд╣реИред

    SMA рдХреЛ рдФрд░ рдмреЗрд╣рддрд░ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП n рдорд╛рдиреЛрдВ рдХрд╛ рдПрдХ рдЕрдиреБрдХреНрд░рдо рд▓реЗрдВ:

    n рдорд╛рдиреЛрдВ рдХрд╛ рдЕрдиреБрдХреНрд░рдо

    рддреЛ n рдбреЗрдЯрд╛ рдкреЙрдЗрдВрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди-рднрд╛рд░рд┐рдд рд░реЛрд▓рд┐рдВрдЧ рдПрд╡рд░реЗрдЬ рдореВрд▓рддрдГ рдкрд┐рдЫрд▓реЗ M рдбреЗрдЯрд╛-рдкреЙрдЗрдВрдЯреНрд╕ рдХрд╛ рдФрд╕рдд рд╣реЛрдЧрд╛, рдЬрд╣рд╛рдВ M рд╕реНрд▓рд╛рдЗрдбрд┐рдВрдЧ рд╡рд┐рдВрдбреЛ рдХрд╛ рдЖрдХрд╛рд░ рд╣реИ:

    рд╕рд┐рдВрдкрд▓ рдореВрд╡рд┐рдВрдЧ рдПрд╡рд░реЗрдЬ рдЧрдгрдирд╛ 1

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

    рд╕рд┐рдВрдкрд▓ рдореВрд╡рд┐рдВрдЧ рдПрд╡рд░реЗрдЬ рдЧрдгрдирд╛ 2
  • рдХреНрдпреВрдореНрдпреБрд▓реЗрдЯрд┐рд╡ рдореВрд╡рд┐рдВрдЧ рдПрд╡рд░реЗрдЬ (CMA): рд╕рд┐рдВрдкрд▓ рдореВрд╡рд┐рдВрдЧ рдПрд╡рд░реЗрдЬ, рдЬрд┐рд╕рдореЗрдВ рдирдпрд╛ рдорд╛рди рдЬреБрдбрд╝рддреЗ рд╣реА рд╕рдмрд╕реЗ рдкреБрд░рд╛рдирд╛ рдСрдмреНрдЬрд╝рд░реНрд╡реЗрд╢рди рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреЗ рд╡рд┐рдкрд░реАрдд, рдХреНрдпреВрдореНрдпреБрд▓реЗрдЯрд┐рд╡ рдореВрд╡рд┐рдВрдЧ рдПрд╡рд░реЗрдЬ рд╕рднреА рдкреВрд░реНрд╡рд╡рд░реНрддреА рдСрдмреНрдЬрд╝рд░реНрд╡реЗрд╢рдиреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддрд╛ рд╣реИред рдкреНрд░рд╡реГрддреНрддрд┐рдпреЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдФрд░ рдбреЗрдЯрд╛ рдХреЛ рд╕реНрдореВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП CMA рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрдХрдиреАрдХ рдирд╣реАрдВ рд╣реИред рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд░реНрддрдорд╛рди рдбреЗрдЯрд╛ рдкреЙрдЗрдВрдЯ рддрдХ рдХреЗ рд╕рднреА рдкрд┐рдЫрд▓реЗ рдбреЗрдЯрд╛ рдХрд╛ рдФрд╕рдд рд▓реЗрддрд╛ рд╣реИ, рдпрд╛рдиреА n рдорд╛рдиреЛрдВ рдХреЗ рдЕрдиреБрдХреНрд░рдо рдХрд╛ рд╕рдорд╛рди-рднрд╛рд░рд┐рдд рдФрд╕рдд:
    n рдорд╛рдиреЛрдВ рдХрд╛ рдЕрдиреБрдХреНрд░рдо 2
    рд╡рд░реНрддрдорд╛рди рд╕рдордп рддрдХ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:
    рдХреНрдпреВрдореНрдпреБрд▓реЗрдЯрд┐рд╡ рдореВрд╡рд┐рдВрдЧ рдПрд╡рд░реЗрдЬ 1
    рдЗрд╕реА рддрд░рд╣, рд╣рд░ рдирдП рдорд╛рди рдХреЗ рдЖрдиреЗ рдкрд░ рдХреНрдпреВрдореНрдпреБрд▓реЗрдЯрд┐рд╡ рдПрд╡рд░реЗрдЬ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рд╕реВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
    рдХреНрдпреВрдореНрдпреБрд▓реЗрдЯрд┐рд╡ рдореВрд╡рд┐рдВрдЧ рдПрд╡рд░реЗрдЬ 2
  • рдПрдХреНрд╕рдкреЛрдиреЗрдВрд╢рд┐рдпрд▓ рдореВрд╡рд┐рдВрдЧ рдПрд╡рд░реЗрдЬ (EMA): SMA рдФрд░ CMA рдХреЗ рд╡рд┐рдкрд░реАрдд, рдПрдХреНрд╕рдкреЛрдиреЗрдВрд╢рд┐рдпрд▓ рдореВрд╡рд┐рдВрдЧ рдПрд╡рд░реЗрдЬ рд╣рд╛рд▓ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдЕрдзрд┐рдХ рд╡реЗрдЯ рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдпрд╣ рдЯреНрд░реЗрдВрдб рдХреА рдореВрд╡рдореЗрдВрдЯ рдХреЛ рддреЗрдЬрд╝реА рд╕реЗ рдФрд░ рдмреЗрд╣рддрд░ рддрд░реАрдХреЗ рд╕реЗ рдХреИрдкреНрдЪрд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИред EMA рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдбреЗрдЯрд╛ рдХреЗ рдкреИрдЯрд░реНрди рдХреЗ рд╕реАрдзреЗ рдЕрдиреБрдкрд╛рдд рдореЗрдВ рд╣реЛрддреА рд╣реИред

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

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

рдЯрд╛рдЗрдо рд╕реАрд░реАрдЬрд╝ рдбреЗрдЯрд╛ рдкрд░ рдореВрд╡рд┐рдВрдЧ рдПрд╡рд░реЗрдЬ рд▓рд╛рдЧреВ рдХрд░рдирд╛

рд╕рд┐рдВрдкрд▓ рдореВрд╡рд┐рдВрдЧ рдПрд╡рд░реЗрдЬ (SMA)

рдкрд╣рд▓реЗ, рдЖрдЗрдП рдбрдореА рдЯрд╛рдЗрдо рд╕реАрд░реАрдЬрд╝ рдбреЗрдЯрд╛ рдмрдирд╛рдПрдВ рдФрд░ рдХреЗрд╡рд▓ Python рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ SMA рдЗрдореНрдкреНрд▓реАрдореЗрдВрдЯ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВред

рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐рд╕реА рдЙрддреНрдкрд╛рдж рдХреА рдорд╛рдВрдЧ 12 рдорд╣реАрдиреЛрдВ (1 рд╡рд░реНрд╖) рддрдХ рджреЗрдЦреА рдЧрдИ рд╣реИ, рдФрд░ рдЖрдкрдХреЛ 3 рдФрд░ 4 рдорд╣реАрдиреЗ рдХреА рд╡рд┐рдВрдбреЛ рдЕрд╡рдзрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдореВрд╡рд┐рдВрдЧ рдПрд╡рд░реЗрдЬ рдирд┐рдХрд╛рд▓рдиреЗ рд╣реИрдВред

рдореЙрдбреНрдпреВрд▓ рдЖрдпрд╛рдд рдХрд░реЗрдВ

import pandas as pd
import numpy as np
 
product = {'month' : [1,2,3,4,5,6,7,8,9,10,11,12],'demand':[290,260,288,300,310,303,329,340,316,330,308,310]}
df = pd.DataFrame(product)
df.head()
┬а

рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХрд╛ рдХреЛрдб рдСрдирд▓рд╛рдЗрди рдЪрд▓рд╛рдПрдВ рдФрд░ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ

рдХреЛрдб рдЪрд▓рд╛рдПрдВ
┬аmonthdemand
01290
12260
23288
34300
45310

рдЖрдЗрдП 3 рдХреА рд╡рд┐рдВрдбреЛ рд╕рд╛рдЗрдЬ рдХреЗ рд▓рд┐рдП SMA рдХреА рдЧрдгрдирд╛ рдХрд░реЗрдВ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЖрдк рд╣рд░ рдмрд╛рд░ рддреАрди рдорд╛рдиреЛрдВ рдХреЛ рд▓реЗрдХрд░ рдореВрд╡рд┐рдВрдЧ рдПрд╡рд░реЗрдЬ рдирд┐рдХрд╛рд▓реЗрдВрдЧреЗ, рдФрд░ рд╣рд░ рдирдП рдорд╛рди рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдкреБрд░рд╛рдирд╛ рдорд╛рди рдирдЬрд╝рд░рдЕрдВрджрд╛рдЬрд╝ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк pandas рдХреЗ iloc рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдЪреВрдВрдХрд┐ рдЖрдкрдХреЛ demand рдХреЙрд▓рдо рдЪрд╛рд╣рд┐рдП, рдЖрдк iloc рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдЙрд╕рдХреА рдкреЛрдЬреАрд╢рди рдлрд┐рдХреНрд╕ рдХрд░реЗрдВрдЧреЗ, рдЬрдмрдХрд┐ рдкрдВрдХреНрддрд┐ рдПрдХ рдЪрд░ i рд╣реЛрдЧреА рдЬрд┐рд╕реЗ рдЖрдк рдбреЗрдЯрд╛рдлреНрд░реЗрдо рдХреЗ рдЕрдВрдд рддрдХ рдЗрдЯрд░реЗрдЯ рдХрд░рддреЗ рд░рд╣реЗрдВрдЧреЗред

for i in range(0,df.shape[0]-2):
    df.loc[df.index[i+2],'SMA_3'] = np.round(((df.iloc[i,1]+ df.iloc[i+1,1] +df.iloc[i+2,1])/3),1)
┬аmonthdemandSMA_3
01290NaN
12260NaN
23288279.3
34300282.7
45310299.3

рдПрдХ рд╕реИрдиреАрдЯреА рдЪреЗрдХ рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП pandas рдХреА рдЗрди-рдмрд┐рд▓реНрдЯ rolling рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рд╣рдорд╛рд░реЗ рдХрд╕реНрдЯрдо Python-рдЖрдзрд╛рд░рд┐рдд рд╕рд┐рдВрдкрд▓ рдореВрд╡рд┐рдВрдЧ рдПрд╡рд░реЗрдЬ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред

df['pandas_SMA_3'] = df.iloc[:,1].rolling(window=3).mean()
df.head()
┬аmonthdemandSMA_3pandas_SMA_3
01290NaNNaN
12260NaNNaN
23288279.3279.333333
34300282.7282.666667
45310299.3299.333333

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

рдЖрдЗрдП window_size 4 рдХреЗ рд▓рд┐рдП рднреА рд╕рд┐рдВрдкрд▓ рдореВрд╡рд┐рдВрдЧ рдПрд╡рд░реЗрдЬ рдЬрд▓реНрджреА рд╕реЗ рдЧрдгрдирд╛ рдХрд░реЗрдВред

for i in range(0,df.shape[0]-3):
    df.loc[df.index[i+3],'SMA_4'] = np.round(((df.iloc[i,1]+ df.iloc[i+1,1] +df.iloc[i+2,1]+df.iloc[i+3,1])/4),1)
df.head()
┬аmonthdemandSMA_3pandas_SMA_3SMA_4
01290NaNNaNNaN
12260NaNNaNNaN
23288279.3279.333333NaN
34300282.7282.666667284.5
45310299.3299.333333289.5
df['pandas_SMA_4'] = df.iloc[:,1].rolling(window=4).mean()
df.head()
┬аmonthdemandSMA_3pandas_SMA_3SMA_4pandas_SMA_4
01290NaNNaNNaNNaN
12260NaNNaNNaNNaN
23288279.3279.333333NaNNaN
34300282.7282.666667284.5284.5
45310299.3299.333333289.5289.5

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

import matplotlib.pyplot as plt
%matplotlib inline
plt.figure(figsize=[15,10])
plt.grid(True)
plt.plot(df['demand'],label='data')
plt.plot(df['SMA_3'],label='SMA 3 Months')
plt.plot(df['SMA_4'],label='SMA 4 Months')
plt.legend(loc=2)
<matplotlib.legend.Legend at 0x11fe15080>
рдЧрдгрдирд╛ рдХрд┐рдП рдЧрдП рдореВрд╡рд┐рдВрдЧ рдПрд╡рд░реЗрдЬ рдХрд╛ рд▓рд╛рдЗрди рдЧреНрд░рд╛рдл

рдХреНрдпреВрдореНрдпреБрд▓реЗрдЯрд┐рд╡ рдореВрд╡рд┐рдВрдЧ рдПрд╡рд░реЗрдЬ

рдореЗрд░рд╛ рдорд╛рдирдирд╛ рд╣реИ рдХрд┐ рдЕрдм рд╣рдо рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбреЗрдЯрд╛рд╕реЗрдЯ рдкрд░ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВред

рдХреНрдпреВрдореНрдпреБрд▓реЗрдЯрд┐рд╡ рдореВрд╡рд┐рдВрдЧ рдПрд╡рд░реЗрдЬ рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП рдПрдХ air quality dataset рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдЬрд┐рд╕реЗ рдЗрд╕ рд▓рд┐рдВрдХ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

df = pd.read_csv("AirQualityUCI/AirQualityUCI.csv", sep = ";", decimal = ",")
df = df.iloc[ : , 0:14]
df.head()
┬аDateTimeCO(GT)PT08.S1(CO)NMHC(GT)C6H6(GT)PT08.S2(NMHC)NOx(GT)PT08.S3(NOx)NO2(GT)PT08.S4(NO2)PT08.S5(O3)TRH
010/03/200418.00.002.61360.0150.011.91046.0166.01056.0113.01692.01268.013.648.9
110/03/200419.00.002.01292.0112.09.4955.0103.01174.092.01559.0972.013.347.7
210/03/200420.00.002.21402.088.09.0939.0131.01140.0114.01555.01074.011.954.0
310/03/200421.00.002.21376.080.09.2948.0172.01092.0122.01584.01203.011.060.0
410/03/200422.00.001.61272.051.06.5836.0131.01205.0116.01490.01110.011.259.6

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

df.isna().sum()
Date             114
Time             114
CO(GT)           114
PT08.S1(CO)      114
NMHC(GT)         114
C6H6(GT)         114
PT08.S2(NMHC)    114
NOx(GT)          114
PT08.S3(NOx)     114
NO2(GT)          114
PT08.S4(NO2)     114
PT08.S5(O3)      114
T                114
RH               114
dtype: int64

рдКрдкрд░ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рд╕реЗ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕рднреА рдХреЙрд▓рдореНрд╕ рдореЗрдВ рд▓рдЧрднрдЧ 114 NaN рдорд╛рди рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЖрдк рдкрд╛рдПрдВрдЧреЗ рдХрд┐ рд╡реЗ рд╕рднреА рдЯрд╛рдЗрдо-рд╕реАрд░реАрдЬрд╝ рдХреЗ рдЕрдВрдд рдореЗрдВ рд╣реИрдВ, рддреЛ рдЖрдЗрдП рдЙрдиреНрд╣реЗрдВ рдЬрд▓реНрджреА рд╕реЗ рд╣рдЯрд╛ рджреЗрддреЗ рд╣реИрдВред

df.dropna(inplace=True)
df.isna().sum()
Date             0
Time             0
CO(GT)           0
PT08.S1(CO)      0
NMHC(GT)         0
C6H6(GT)         0
PT08.S2(NMHC)    0
NOx(GT)          0
PT08.S3(NOx)     0
NO2(GT)          0
PT08.S4(NO2)     0
PT08.S5(O3)      0
T                0
RH               0
dtype: int64

рдЖрдк Temperature рдХреЙрд▓рдо (T) рдкрд░ рдХреНрдпреВрдореНрдпреБрд▓реЗрдЯрд┐рд╡ рдореВрд╡рд┐рдВрдЧ рдПрд╡рд░реЗрдЬ рд▓рд╛рдЧреВ рдХрд░реЗрдВрдЧреЗ, рдЗрд╕рд▓рд┐рдП рдЖрдЗрдП рдЙрд╕ рдХреЙрд▓рдо рдХреЛ рдкреВрд░реЗ рдбреЗрдЯрд╛ рд╕реЗ рдЕрд▓рдЧ рдХрд░ рд▓реЗрддреЗ рд╣реИрдВред

df_T = pd.DataFrame(df.iloc[:,-2])
df_T.head()
┬аT
013.6
113.3
211.9
311.0
411.2

рдЕрдм, рдЖрдк pandas рдХреЗ expanding рдореЗрдердб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдКрдкрд░ рджрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдХрд╛ рдХреНрдпреВрдореНрдпреБрд▓реЗрдЯрд┐рд╡ рдФрд╕рдд рдирд┐рдХрд╛рд▓реЗрдВрдЧреЗред рдпрджрд┐ рдЖрдкрдХреЛ рдкрд░рд┐рдЪрдп рднрд╛рдЧ рд╕реЗ рдпрд╛рдж рд╣реЛ, рддреЛ рд╕рд┐рдВрдкрд▓ рдореВрд╡рд┐рдВрдЧ рдПрд╡рд░реЗрдЬ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдХреНрдпреВрдореНрдпреБрд▓реЗрдЯрд┐рд╡ рдореВрд╡рд┐рдВрдЧ рдПрд╡рд░реЗрдЬ рдФрд╕рдд рдирд┐рдХрд╛рд▓рддреЗ рд╕рдордп рд╕рднреА рдкреВрд░реНрд╡рд╡рд░реНрддреА рдорд╛рдиреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддрд╛ рд╣реИред

df_T['CMA_4'] = df_T.expanding(min_periods=4).mean()
df_T.head(10)
┬аTCMA_4
013.6NaN
113.3NaN
211.9NaN
311.012.450000
411.212.200000
511.212.033333
611.311.928571
710.711.775000
810.711.655556
910.311.520000

рдЯрд╛рдЗрдо рд╕реАрд░реАрдЬрд╝ рдбреЗрдЯрд╛ рдХреЛ рд╕рдордп рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдкреНрд▓реЙрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдЗрдП рддрд╛рд░реАрдЦ рдФрд░ рд╕рдордп рдХреЙрд▓рдо рдХреЛ рдорд┐рд▓рд╛рдХрд░ рдПрдХ datetime рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдмрджрд▓рддреЗ рд╣реИрдВред рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк Python рдХреЗ datetime рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ (рд╕реНрд░реЛрдд: Time Series Tutorial)ред

import datetime

df['DateTime'] = (df.Date) + ' ' + (df.Time)
df.DateTime = df.DateTime.apply(lambda x: datetime.datetime.strptime(x, '%d/%m/%Y %H.%M.%S'))

рдЖрдЗрдП temperature рдбреЗрдЯрд╛рдлреНрд░реЗрдо рдХрд╛ рдЗрдВрдбреЗрдХреНрд╕ datetime рд╕реЗ рдмрджрд▓рддреЗ рд╣реИрдВред

df_T.index = df.DateTime

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

plt.figure(figsize=[15,10])
plt.grid(True)
plt.plot(df_T['T'],label='temperature')
plt.plot(df_T['CMA_4'],label='CMA_4')
plt.legend(loc=2)
<matplotlib.legend.Legend at 0x1210a2d30>
рдЯрд╛рдЗрдо рд╕реАрд░реАрдЬрд╝ рдбреЗрдЯрд╛ рдЧреНрд░рд╛рдл

рдПрдХреНрд╕рдкреЛрдиреЗрдВрд╢рд┐рдпрд▓ рдореВрд╡рд┐рдВрдЧ рдПрд╡рд░реЗрдЬ

df_T['EMA'] = df_T.iloc[:,0].ewm(span=40,adjust=False).mean()
df_T.head()
┬аTCMA_4EMA
DateTime┬а┬а┬а
2004-03-10 18:00:0013.6NaN13.600000
2004-03-10 19:00:0013.3NaN13.585366
2004-03-10 20:00:0011.9NaN13.503153
2004-03-10 21:00:0011.012.4513.381048
2004-03-10 22:00:0011.212.2013.274655
plt.figure(figsize=[15,10])
plt.grid(True)
plt.plot(df_T['T'],label='temperature')
plt.plot(df_T['CMA_4'],label='CMA_4')
plt.plot(df_T['EMA'],label='EMA')
plt.legend(loc=2)
<matplotlib.legend.Legend at 0x14b2a41d0>
рдЯрд╛рдЗрдо рд╕реАрд░реАрдЬрд╝ рдбреЗрдЯрд╛ рдЧреНрд░рд╛рдл 2

рд╡рд╛рд╣! рддреЛ рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдКрдкрд░ рджрд┐рдП рдЧрдП рдЧреНрд░рд╛рдл рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдПрдХреНрд╕рдкреЛрдиреЗрдВрд╢рд┐рдпрд▓ рдореВрд╡рд┐рдВрдЧ рдПрд╡рд░реЗрдЬ (EMA) рдбреЗрдЯрд╛ рдХреЗ рдкреИрдЯрд░реНрди рдХреЛ рдХреИрдкреНрдЪрд░ рдХрд░рдиреЗ рдореЗрдВ рдмреЗрд╣рддрд░реАрди рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдХреНрдпреВрдореНрдпреБрд▓реЗрдЯрд┐рд╡ рдореВрд╡рд┐рдВрдЧ рдПрд╡рд░реЗрдЬ (CMA) рдХрд╛рдлреА рд╣рдж рддрдХ рдкреАрдЫреЗ рд░рд╣ рдЬрд╛рддрд╛ рд╣реИред

рдФрд░ рдЖрдЧреЗ рдмрдврд╝реЗрдВ!

рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдкреВрд░рд╛ рдХрд░рдиреЗ рдкрд░ рдмрдзрд╛рдИред

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

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

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

рдпрджрд┐ рдЖрдк pandas рдореЗрдВ DataFrames рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рд╕реАрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ DataCamp рдХрд╛ pandas Foundations рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдХреЛрд░реНрд╕ рд▓реЗрдВред

рд╕рдВрджрд░реНрдн:

рдХреГрдкрдпрд╛ рдиреАрдЪреЗ рдЯрд┐рдкреНрдкрдгреА рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХреЛрдИ рднреА рдкреНрд░рд╢реНрди рдирд┐рдГрд╕рдВрдХреЛрдЪ рдкреВрдЫреЗрдВред

рд╡рд┐рд╖рдп