میانگین در حال اجرا ، همچنین به عنوان میانگین در حال حرکت یا میانگین نورد شناخته می شود ، می تواند به فیلتر کردن سر و صدا کمک کند و از داده های سری زمانی یک منحنی صاف ایجاد کند. همچنین می تواند به برجسته کردن چرخه های مختلف فصلی در داده های سری زمانی کمک کند. این ابزاری بسیار متداول است که در بسیاری از زمینه ها از فیزیک گرفته تا علوم محیط زیست و دارایی استفاده می شود.
در این مقاله ، ما توضیح می دهیم که میانگین در حال اجرا چیست و چگونه محاسبه می شود. ما همچنین به شما نشان می دهیم که چگونه می توانید نتایج را با استفاده از Matplotlib در پایتون تجسم کنید. ما بیشتر در مورد برخی موارد مهم برای درک در مورد میانگین های حرکت برای کمک به بالا بردن مهارت های تحلیل داده های شما بحث می کنیم.
این مقاله با هدف افرادی که کمی تجربه در تجزیه و تحلیل داده ها دارند ، انجام شده است. اگر به دنبال مقدمه ای برای علوم داده هستید ، ما یک دوره داریم که مهارت های بنیادی را ارائه می دهد. برای مطالب بیشتری که در بالای آن ساخته می شود ، به این مسیر علوم داده نگاهی بیندازید.
میانگین در حال اجرا چیست؟
برای تولید میانگین در حال اجرا ، باید در مورد اندازه پنجره تصمیم بگیریم که در آن مقادیر متوسط را محاسبه کنیم. این می تواند هر عدد از 2 تا N-1 باشد ، جایی که n تعداد نقاط داده در سری زمانی است. ما یک پنجره را تعریف می کنیم ، یک میانگین را در پنجره محاسبه می کنیم ، پنجره را با یک نقطه داده می کشیم و تا رسیدن به انتها تکرار می کنیم.
برای نشان دادن این موضوع ، بیایید برخی از داده ها را تعریف کنیم و میانگین در حال اجرا در پایتون را در یک حلقه محاسبه کنیم:
>>> import numpy as np>>> data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]>>> window = 2>>> average_data = []>>>برای IND در محدوده (LEN (DATA) - پنجره + 1) :. متوسط_داتا. اپند (np. mean (داده ها [Ind: Ind+Windows]))
در اینجا ، ما یک اندازه پنجره از 2 نقطه داده را تعریف می کنیم و از یک قطعه لیست برای به دست آوردن زیر مجموعه داده های مورد نظر خود استفاده می کنیم. سپس ، ما برای محاسبه مقدار میانگین از numpy استفاده می کنیم. سپس شاخص با یک حلقه پیشرفت می کند و ما تکرار می کنیم. توجه کنید که حلقه بیش از LEN (Data) است - پنجره + 1 ، به این معنی که داده های صاف ما فقط 9 نقطه داده دارند.
اگر می خواهید میانگین در حال اجرا را با داده های اصلی مقایسه کنید ، باید آنها را به درستی تراز کنید. یک روش مناسب برای انجام این کار با قرار دادن NAN در شروع لیست با استفاده از List. Insert () است. آن را برای خودتان امتحان کنید.
ترسیم میانگین در حال اجرا در Matplotlib
به عنوان یک نتیجه از این روش برای هموار سازی داده ها ، ویژگی ها (به عنوان مثال ، قله ها یا فرورفتگی) در یک نمودار از یک میانگین متحرک ویژگی های واقعی را در داده های اصلی تاخیر می کند. بزرگی مقادیر نیز با داده های واقعی متفاوت است. این مهم است که اگر می خواهید تشخیص دهید چه زمانی اوج داده ها اتفاق افتاده است و میزان آن چیست.
برای نشان دادن این موضوع ، ما می توانیم موج سینوسی ایجاد کنیم و میانگین در حال اجرا در پایتون را مانند گذشته که قبلاً انجام داده ایم محاسبه کنیم:
>>> x = np.linspace(0, 10, 50)>>> y = np.sin(x)>>> window = 5>>> average_y = []>>>برای IND در محدوده (لن (y) - پنجره + 1) :. متوسط_ y. append (np. mean (y [ind: ind+پنجره]))
در اینجا نحوه اضافه کردن NAN ها به شروع میانگین در حال اجرا برای اطمینان از این که لیست دارای طول داده های اصلی است:
>>>برای IND در محدوده (پنجره - 1) :. متوسط_ y. insert (0 ، np. nan)
اکنون ، ما می توانیم نتایج را با استفاده از matplotlib ترسیم کنیم:
>>> import matplotlib.pyplot as plt>>> plt.figure(figsize=(10, 5))>>> plt.plot(x, y, 'k.-', label='Original data')>>> plt.plot(x, average_y, 'r.-', label='Running average')>>> plt.yticks([-1, -0.5, 0, 0.5, 1])>>> plt.grid(linestyle=':')>>> plt.legend()>>>plt. show ()
اجرای کد فوق طرح زیر را در یک پنجره جدید تولید می کند:

هرچه اندازه پنجره بزرگتر باشد ، تاخیر قله ها و فرورفتگی ها بیشتر می شود اما داده ها را نرم تر می کند. برای تعیین بهترین تعادل برای مورد استفاده خاص ، باید چند مقدار را آزمایش کنید.
یک تمرین خوب برای به دست آوردن این احساس ، گرفتن مثال کد در بالا و اضافه کردن برخی از سر و صدا به موج سینوسی است. نویز می تواند اعداد تصادفی بین ، به عنوان مثال ، 0 و 1 باشد. سپس ، داده ها را با محاسبه میانگین در حال اجرا صاف کرده و سپس دو منحنی را ترسیم کنید.
پاندا چطور؟
کتابخانه Pandas به ستون فقرات تجزیه و تحلیل داده ها در پایتون تبدیل شده است. ساختار داده اصلی آن سری است.
پاندا با بسیاری از توابع داخلی برای کمک به آسانتر پردازش داده ها ، از جمله توابع برای محاسبه میانگین های در حال اجرا ، همراه است. همچنین برای تمیز کردن داده ها ، که در این مقاله بحث می کنیم بسیار مفید است.
در بیشتر موارد ، شما داده های خود را در پرونده ای دارید که می توانید در یک قاب داده بخوانید. ما دو مقاله مفید داریم: نحوه خواندن پرونده های CSV و نحوه خواندن پرونده های اکسل در پایتون. تمرکز این مقاله بر نحوه بارگذاری داده ها با استفاده از پاندا نیست ، بنابراین فرض می کنیم که داده های خود را قبلاً بارگذاری کرده اید و برای شروع پردازش و نقشه برداری آماده هستید. اگر می خواهید اطلاعاتی در مورد کار با فریم های داده در پاندا داشته باشید ، این مقاله را بررسی کنید.
برای این مثال ، ما حدود 7 ماه اندازه گیری دمای روزانه از برلین داریم که از ژانویه 2021 تا پایان ژوئیه 2021 می گذرد. میانگین در حال اجرا برای یک هفته توسط:
>>> temperature = df['temp']>>>t_aVean = دما. رول زدن (پنجره = 7) . mean ()
این بسیار راحت است ، زیرا به سرعت و به راحتی میانگین نورد (یعنی میانگین متحرک) را بر روی پنجره ای که در نورد تعریف می کنید () محاسبه می کند. علاوه بر این ، به طور خودکار داده ها را به درستی تراز می کند و داده های گمشده را با NAN پر می کند. اکنون ، ما می توانیم از matplotlib برای ترسیم نتایج استفاده کنیم:
>>> plt.figure(figsize=(10, 5))>>> plt.plot(temperature, 'k-', label='Original')>>> plt.plot(t_average, 'r-', label='Running average')>>> plt.ylabel('Temperature (deg C)')>>> plt.xlabel('Date')>>> plt.grid(linestyle=':')>>> plt.fill_between(t_average.index, 0, t_average, color='r', alpha=0.1)>>> plt.legend(loc='upper left')>>>plt. show ()این شکل زیر را در یک پنجره جدید باز می کند:

شما باید در اینجا توجه کنید که ما فقط مقادیر y را هنگام استفاده از طرح () مشخص کردیم. این امر به این دلیل است که شاخص قاب داده شامل تاریخ ها است و این به رسمیت شناخته شده و به طور خودکار توسط پاندا اداره می شود.
در این طرح ، می توانید روند افزایش درجه حرارت از زمستان تا تابستان را مشاهده کنید. همچنین در مقیاس های زمانی کوچک تنوع وجود دارد که از داده های هموار تولید شده از میانگین 7 روزه در حال اجرا مشهود است. افزودن شبکه های شبکه به هدایت چشم به مقادیر تاریخ و دما مربوطه کمک می کند. سایه زدن در زیر میانگین در حال اجرا ، بر مقدار آن بالاتر یا زیر درجه صفر تأکید می کند.
میانگین های دویدن را در پایتون به سطح بعدی برسانید
در این مقاله ، ما به شما نشان دادیم که چگونه می توانید میانگین در حال اجرا را در پایتون محاسبه کرده و نتایج را با استفاده از Matplotlib ترسیم کنید. ترسیم یک مهارت مهم برای درک داده ها است. برای نمایش در استفاده از Matplotlib برای تجسم داده های صوتی ، به این مقاله نگاهی بیندازید.
اگر با داده های جدولی زیاد کار می کنید ، ارائه جداول به روشی جذاب از نظر بصری مهم است. ما یک مقاله در مورد جداول چاپ زیبا در پایتون داریم.
برای این مقاله ، هر نقطه داده در پنجره میانگین به طور مساوی به میانگین کمک می کند. با این حال ، این لزوماً نیازی به اینگونه نیست. به عنوان مثال ، میانگین متحرک نمایی ، وزن بیشتری را بر روی داده های اخیر قرار می دهد ، که به رفع مشکل با تاخیر کمک می کند.
ما می خواهیم شما را تشویق کنیم تا از آنچه در اینجا آموخته اید استفاده کنید و کمی با آن بازی کنید. سعی کنید یک میانگین متحرک نمایی را اجرا کنید و ببینید که چگونه در صاف کردن یک موج سینوسی پر سر و صدا انجام می شود. با کمی تمرین ، مهارت های پایتون خود را به سطح بعدی می برید.
آموزش تحلیل گری...
ما را در سایت آموزش تحلیل گری دنبال می کنید
برچسب :
نویسنده : ملیکا زارعی
بازدید : 56
تاريخ : دوشنبه
13 شهريور
1402 ساعت: 16:17