تجسم داده های خود را با خطوط روند در پایتون بالا ببرید

ساخت وبلاگ

با استفاده از کتابخانه plotly برای تجسم روندها در داده های خود

منتشر شده در

به سمت علم داده

7 دقیقه بخوانید 1 اکتبر 2021

تجسم داده ها بخش مهمی از تجزیه و تحلیل داده ها است. تجسم داده ها درک افراد در یک مجموعه داده را برای افراد آسان تر می کند در مقایسه با نگاه کردن به شماره های موجود در یک جدول. بخشی از این شامل انتخاب انواع نمودار مناسب برای رفتن به نوع مناسب داده هایی است که می خواهید به نمایش بگذارید ، مانند استفاده از نمودار خط برای داده های سری زمانی.

شما می توانید با اضافه کردن برخی از تغییرات آرایشی مانند رنگ و قلم ، فراتر از این بروید تا نقاط مهم داده ها پاپ شود. علاوه بر این ، خطوط روند مفید هستند تا به وضوح جهت کلی یک مجموعه داده را در تمام نقاط داده خود ترسیم کنند. همچنین می توانید خطوط روند استاتیک را برای داشتن مقداری که انتخاب می کنید یک خط افقی یا عمودی بر روی نمودار باشد که به راحتی می توانید ببینید که آیا مقادیر موجود در مجموعه داده شما بالاتر یا پایین تر از خط استاتیک است ، پیاده سازی کنید.

در این قطعه ، ما به اجرای هر دو شکل خطوط روند با استفاده از کتابخانه Plotly در پایتون برای تجسم داده ها می پردازیم. ما همچنین از پاندا برای برخی از داده های اولیه پیش پردازش استفاده خواهیم کرد ، بنابراین مطمئن شوید که این دو بسته را از قبل نصب کرده اید. سپس موارد زیر را وارد کرده و آماده پیگیری شوید!

واردات پاندا به عنوان PDوارد کردن plotly. express as pxوارد کردن

ایجاد یک نمودار خط با یک خط روند متوسط با طرح ریزی

بیایید ابتدا برخی از داده های نمونه تولید کنیم. برای انجام این کار ، کد زیر را اجرا کنید.

EXPESSE_DATA = "شخص": تصادفی."مقدار": تصادفی. نمونه (دامنه (100 ، 200) ، 10) + تصادفی. نمونه (دامنه (0 ، 99) ، 10) ،"دسته": ["مواد غذایی"] * 10 + ["رستوران"] * 10 ،"تاریخ": pd. to_datetime (pd. date_range ('2020-01-01' ، '2020-10-01' ، freq = 'ms'). tolist () * 2)>df = pd. dataframe (داده = هزینه_داتا)

داده هایی که می خواهیم تجسم کنیم بر اساس برخی از داده های هزینه شخصی به طور تصادفی تولید می شود. در بالا می توانید ببینید که ما فقط به طور تصادفی داده های هزینه را به مدت 10 ماه ایجاد می کنیم و آن را در یک Pandas Dataframe بارگذاری می کنیم. کد فوق باید 20 خط ارزش داده را خروجی کند.

در این قطعه ، اولین هدف از تجزیه و تحلیل داده های ما مقایسه میانگین هزینه های ماهانه در هر گروه با هزینه های هر ماه در آن دسته است.

به همین ترتیب ، بیایید از برخی پاندا ها برای گروه بندی کل هزینه ها در هر ماه در هر گروه استفاده کنیم.

df_grouped = df. groupby (توسط = [pd. grouper (key = "date" ، freq = "1m") ، "دسته"]) ["مقدار"]df_grouped = df_grouped. sum (). reset_index ()

اکنون می توانیم به ایجاد نمودارها برسیم.

از آنجا که ما می خواهیم برای هر دسته از هزینه ها با هر یک از نقاط داده ماهانه خود و یک خط متوسط روند استاتیک ، یک نمودار ایجاد کنیم ، می توانیم با ایجاد لیستی از دسته ها در DataFrame خود شروع کنیم.

رده ها = df ["دسته"]. منحصر به فرد (). tolist ()

سپس ، ما همه دسته ها را حلقه خواهیم کرد و با استفاده از کد زیر یک نمودار برای هر یک ایجاد می کنیم.

برای دسته در دسته ها:df_categor = df_grouped. loc [df_grouped ["دسته"] == دسته] . copy ()df_categor ["متوسط هزینه"] = دور (df_categor ["مقدار"]. میانگین () ، 2)رده_ graph = px. line (df_category ،x = "تاریخ" ،y = ["مقدار" ، "متوسط هزینه"] ،عنوان = F "هزینه با خط روند متوسط") رده_ graph. show ()

این کد ابتدا یک DataFrame جدید را با ردیف هایی که در هر حلقه دسته مورد نظر دارند ، ایجاد می کند. سپس ، ما یک ستون جدید "متوسط هزینه" ایجاد می کنیم که به سادگی از روش میانگین در ستون "مقدار" در DataFrame استفاده می کند تا یک ستون را تنها با میانگین مقادیر هزینه بازگرداند.

سرانجام ، ما از کتابخانه Plotly Express برای ایجاد یک نمودار خط با DataFrame جدید استفاده می کنیم. متوجه خواهید شد که ما لیستی را به پارامتر Y منتقل کردیم که دو خط در نمودار خط به ما می دهد. نتیجه این کد نمودارهای زیر است.

با استفاده از این نمودارها ، به راحتی می توانید ببینید که ماهها بیش از میانگین هزینه برای این گروه کاهش می یابد و کدام یک از آنها در زیر است. این امر برای کسی که به دنبال مدیریت امور مالی خود به مرور زمان باشد ، مفید خواهد بود تا بتوانند هر ماه بر این اساس بودجه کنند و بررسی کنند که آیا آنها هر ماه برنامه های خود را برآورده می کنند یا خیر.

اجرای خطوط روند خطی و غیر خطی در نمودارها با طرح ریزی

در مرحله بعد ، بیایید نگاهی به استفاده از Plotly برای ایجاد خطوط روند برای کل هزینه های ماهانه در مجموعه داده بیندازیم. برای انجام این کار ، ما یک گروه جدید گروهی ایجاد خواهیم کرد ، فقط این بار فقط باید آن را تا ماه گروه بندی کنیم.

df_sum = df. groupby (توسط = [pd. grouper (key = "date" ، freq = "1m")])] ["مقدار"]df_sum = df_sum. sum (). reset_index ()

Plotly به شما امکان می دهد هر دو خط روند خطی یا غیر خطی را ایجاد کنید. شما می توانید از رگرسیون خطی حداقل مربعات معمولی (OLS) یا خطوط روند صاف کننده پراکندگی محلی (غیر خطی) استفاده کنید.

مشابه نحوه ایجاد نمودارها برای بخش های قبلی ، اکنون لیستی از خطوط روند ممکن ایجاد خواهیم کرد و توطئه های پراکندگی را با استفاده از طرح دیگر برای حلقه دیگر ایجاد می کنیم.

trend_lines = ["ols" ، "lowess"]برای trend_line در trend_lines:fig = px. scatter (df_sum ،x = "تاریخ" ،y = "مقدار" ،trendline = trend_line ،عنوان = f "خط روند") fig. show ()

کد کم و بیش مانند گذشته است ، جایی که ما در DataFrame و ستون های مناسب را به Plotly Express ScatterPlot منتقل می کنیم. برای افزودن خطوط روند ، ما در هر مقدار خط روند از لیستی که در آرگومان Trendline تعریف کردیم عبور می کنیم. اجرای کد فوق نمودارهای زیر را به شما می دهد.

بسته به مجموعه داده شما ، یک خط روند خطی یا غیر خطی می تواند بهتر از نقاط داده متناسب باشد. به همین دلیل مفید است که خطوط مختلف را امتحان کنید تا ببینید کدام یک از داده ها بهتر است. همچنین ، فقط به این دلیل که یک خط روند وجود دارد ، لزوماً به معنای این نیست که یک روند واقعاً وجود دارد (به همان روشی که همبستگی با علیت برابر نیست). همچنین می توانید با استفاده از کد زیر به پارامترهای مدل (برای نمودارهایی با خط روند OLS) دسترسی پیدا کنید.

نتایج = px. get_trendline_results (شکل)نتیجه . px_fit_results. iloc [0] . Summary ()

توجه داشته باشید که شیء FIG فوق به طور خاص شکل ایجاد شده است که در آن آرگومان روند در پراکندگی Plotly Express روی "OLS" تنظیم شده است. نتیجه خلاصه می تواند توضیحی در مورد پارامترهای مورد استفاده برای ایجاد خط روند که در نمودار مشاهده می کنید ، ارائه دهد که می تواند به شما در درک اهمیت خط روند کمک کند.

در مورد ما با داده های تولید شده به طور تصادفی ، دیدن یک روند قابل توجه کمی دشوار است. مقدار بسیار کم R-Squared و اندازه نمونه کمتر از 20 همبستگی کم (در صورت وجود) را مشاهده خواهید کرد.

با این حال ، برای داده های هزینه یک شخص معمولی ، بسیار خوب است که وقتی به هزینه ها نگاه می کنید ، یک خط روند را ببینید که بیشتر مسطح است. اگر متوجه یک خط روند مثبت بسیار شیب دار با ارزش مربع R بالاتر در هزینه های ماهانه خود هستید ، می دانید که ممکن است هزینه های خود را با گذشت زمان افزایش داده باشید و بنابراین بیشتر از تخصیص بودجه ماهانه خود هزینه می کنید (مگر اینکه شاید افزایش یافته باشیدو تصمیم گرفت که به عمد چلپ چلوپ کند).

امیدوارم که شما این مقدمه بسیار سریع را برای خطوط روند با طرح در پایتون برای تجزیه و تحلیل داده های خود مفید واقع کنید. کتابخانه Plotly ، به خصوص هنگامی که از Platly Express استفاده می کنید ، فقط می توانید یک DataFrame Pandas را وصل کنید و مستقیماً به تجسم داده های خود بپیوندید. این فقط مهم است که به یاد داشته باشید که نحوه انتخاب داده ها بر نحوه درک دیگران تأثیر می گذارد ، بنابراین اطمینان حاصل کنید که وقتی تغییراتی مانند اضافه کردن خطوط روند را انجام می دهید به گونه ای که واقعاً نمایانگر داده های اساسی است ، و شما در حال ایجاد تغییراتی هستید. نه فقط انجام این کار برای بیان یک نکته دلخواه.

با تشکر از یک دسته دوباره برای خواندن! اگر به فکر عضویت در متوسط هستید ، اگر با استفاده از لینک ارجاع من در زیر ثبت نام کنید ، واقعاً از آن قدردانی می کنم! این امر به طور مستقیم بخشی از هزینه های عضویت شما را دریافت می کند ، بنابراین این یک کمک بزرگ خواهد بود.

فارکس را از کجا شروع کنیم...
ما را در سایت فارکس را از کجا شروع کنیم دنبال می کنید

برچسب : نویسنده : لیما اصغرپورسازونی بازدید : 38 تاريخ : دوشنبه 13 شهريور 1402 ساعت: 3:00