🔸 برای تحلیل دو متغیره، correlation وجود دارد. به ما این قابلیت رو میده که بتونیم بفهمیم کدوم دوتا متغیر با همدیگه رابطه خطی مستقیم دارن. correlation مثبت یعنی با زیاد شدن یک متغیر، یک متغیر دیگه نیز زیاد بشه و بالعکس. correlation عددی بین مثبت یک و منفی یک میباشد. correlation رابطه خطی را نشان میدهد.
اگر مقدار corr صفر باشد، یعنی دو ستون مد نظر هیچ ارتباطی با یکدیگر ندارند.
🔴 رسم correlation روی مجموعه داده:
———————————————————————-
🔷 بخش Data Visualization
یکی از کتابخانه هایی که در این بخش استفاده میکنیم، Matplotlib میباشد.
🔻 رسم نمودار histogram:
🔸 مشخص کردن لیبل برای X و Y، و مشخص کردن noscript:
🟢 استفاده از subplot:
▫️ رسم boxplot (نمایش کمینه و بیشینه، چارک اول و چارک سوم، median یا چارک دوم ستون مورد نظر):
🔸 چارک اول: یک چهارم داده ها کمتر از اون هستند.
🔹 چارک دوم (میانه): نصف داده ها کمتر و نصف داده ها بیشتر از اون هستند.
🔺 چارک سوم: سه چهارم داده ها کمتر از اون هستند.
🟨 با استفاده از چارک اول و چارک سوم میتونیم متوجه بشیم تکرار داده ها کجا متمرکز شده است. معمولا تعداد تکرار بین چارک اول و سوم خیلی زیاد میباشد.
اگر مقدار corr صفر باشد، یعنی دو ستون مد نظر هیچ ارتباطی با یکدیگر ندارند.
🔴 رسم correlation روی مجموعه داده:
data.corr()
———————————————————————-
🔷 بخش Data Visualization
یکی از کتابخانه هایی که در این بخش استفاده میکنیم، Matplotlib میباشد.
import matplotlib.pyplot as plt
🔻 رسم نمودار histogram:
plt.hist(df["comb08"])
🔸 مشخص کردن لیبل برای X و Y، و مشخص کردن noscript:
plt.xlabel("Test X")
plt.ylabel("Test Y")
plt.noscript("Test Title")
plt.show()🟢 استفاده از subplot:
fig, ax = plt.subplots()
ax.hist(df["comb08"], range=(10, 50), bins=5)
▫️ رسم boxplot (نمایش کمینه و بیشینه، چارک اول و چارک سوم، median یا چارک دوم ستون مورد نظر):
fig, ax = plt.subplots()
ax.boxplot(df["comb08"], label=["All"])
ax.set(noscript="MPG Distribution", ylabel="MPG for vehicles")
برای حذف نویزها از نمودار میتونیم showfliers رو فالس بزاریم:
ax.boxplot(df["comb08"], label=["All"], showfliers=False)
🔸 چارک اول: یک چهارم داده ها کمتر از اون هستند.
🔹 چارک دوم (میانه): نصف داده ها کمتر و نصف داده ها بیشتر از اون هستند.
🔺 چارک سوم: سه چهارم داده ها کمتر از اون هستند.
🟨 با استفاده از چارک اول و چارک سوم میتونیم متوجه بشیم تکرار داده ها کجا متمرکز شده است. معمولا تعداد تکرار بین چارک اول و سوم خیلی زیاد میباشد.
🔸 رسم نمودار خطی ساده:
🔻 چند نمونه رسم نمودار با pandas:
🟢 کتابخانه دیگری برای بصری سازی داده ها به نام Seaborn وجود دارد. seaborn مبتنی بر matplotlib میباشد. از لحاظ شکل و شمایل و هارمونی رنگی، seaborn به نسبت بقیه بهتر عمل کرده.
✔️ رسم catplot در seaborn:
🔔 رسم چند نمونه نمودار با seaborn:
avg_by_year = df.groupby(["year"], as_index=False).agg({'comb08': 'mean'}).round(2)
fig, ax1 = plt.subplots()
ax1.plot(avg_by_year["year"], avg_by_year["comb08"])🔻 چند نمونه رسم نمودار با pandas:
avg_by_year.plot(kind="box", noscript="Gas Mileage")
avg_by_year.plot(kind="line", noscript="Gas Mileage")
avg_by_year.plot(kind="bar", noscript="Gas Mileage")
avg_by_year.plot(kind="area", noscript="Gas Mileage")
🟢 کتابخانه دیگری برای بصری سازی داده ها به نام Seaborn وجود دارد. seaborn مبتنی بر matplotlib میباشد. از لحاظ شکل و شمایل و هارمونی رنگی، seaborn به نسبت بقیه بهتر عمل کرده.
import seaborn as sns
sns.set_style("darkgrid")
✔️ رسم catplot در seaborn:
sns.catplot(data=df,
y='comb08',
x='cylinders',
kind='bar');
🔔 رسم چند نمونه نمودار با seaborn:
sns.displot(data=df, x='fuelCost08', hue='year', aspect=2.5);
sns.displot(data=df, x='fuelCost08', hue='date_range', aspect=2.5);
sns.displot(data=df, x='fuelCost08', col='date_range')
sns.catplot(data=df,
x='date_range',
y='comb08',
kind='box',
showfliers=False);
sns.relplot(data=df,
x='cylinders',
y='comb08',
col='date_range',
hue='drive',
kind='scatter');
🟣 برای مقایسه اعداد در یک جدول، میتونیم از heatmap استفاده بکنیم.
🟠 نوع دیگری از heatmap با پالت رنگی متفاوت:
🔴 رسم نمودار با مشخص کردن چند سطر و ستون:
🗯 نیاز نیست همهی این نمودارها رو حفظ کنیم. فقط دونستن Base نمودارها و این که هرکدوم چه کاری انجام میدن کافیه. برای باقی مراحل میتونیم با سرچ یا استفاده از GPT کد مربوطه رو بنویسیم.
fuel_class = pd.crosstab(df['class_summary'],
df['fuel_type_summary'],
values=df['comb08'],
aggfunc='mean')
sns.heatmap(fuel_class)
🟠 نوع دیگری از heatmap با پالت رنگی متفاوت:
sns.heatmap(fuel_class,
annot=True,
fmt='.0f',
cmap="YlGnBu");
🔴 رسم نمودار با مشخص کردن چند سطر و ستون:
sns.pairplot(df,
x_vars=['cylinders', 'displ', 'barrels08'],
y_vars=['cylinders', 'displ', 'barrels08'],
hue='date_range')
🗯 نیاز نیست همهی این نمودارها رو حفظ کنیم. فقط دونستن Base نمودارها و این که هرکدوم چه کاری انجام میدن کافیه. برای باقی مراحل میتونیم با سرچ یا استفاده از GPT کد مربوطه رو بنویسیم.