نحوه استفاده از پاندا برای تمیز کردن و پیش پردازش داده ها
![](https://khabarkaav.ir/wp-content/uploads/2024/01/Cream-Neutral-Minimalist-New-Business-Pitch-Deck-Presentation-1-.png)
![](https://www.freecodecamp.org/news/content/images/2024/01/Cream-Neutral-Minimalist-New-Business-Pitch-Deck-Presentation--1-.png)
استیو لور از نیویورک تایمز او میگوید : «دانشمندان داده، طبق مصاحبهها و برآوردهای کارشناسان، 50 تا 80 درصد از زمان خود را در کار دنیوی جمعآوری و آمادهسازی دادههای دیجیتالی سرکش میگذرانند، قبل از اینکه بتوان آنها را برای یافتن قطعات مفید کاوش کرد. "
این بیانیه 100٪ دقیق است، زیرا شامل یک سری مراحل است که تضمین می کند داده های مورد استفاده برای پروژه های علم داده، یادگیری ماشین و تجزیه و تحلیل کامل، دقیق، بی طرفانه و قابل اعتماد هستند.
کیفیت مجموعه داده شما نقش اساسی در موفقیت تحلیل یا مدل شما دارد. همانطور که گفته می شود، "زباله داخل، زباله بیرون"، کیفیت و قابلیت اطمینان مدل و تجزیه و تحلیل شما به شدت به کیفیت داده های شما بستگی دارد.
دادههای خام، جمعآوریشده از منابع مختلف، اغلب درهم و برهم هستند، حاوی خطاها، ناسازگاریها، مقادیر از دست رفته و موارد پرت هستند. پاکسازی و پیش پردازش داده ها با هدف شناسایی و اصلاح این مسائل برای اطمینان از نتایج دقیق، قابل اعتماد و معنی دار در طول ساخت مدل و تجزیه و تحلیل داده ها انجام می شود زیرا نتیجه گیری اشتباه می تواند پرهزینه باشد.
این جایی است که پانداها وارد بازی می شوند، این ابزار فوق العاده ای است که در دنیای داده برای تمیز کردن و پیش پردازش داده ها استفاده می شود. در این مقاله، مفاهیم اساسی پاکسازی و پیش پردازش داده ها با استفاده از کتابخانه قدرتمند پایتون، پانداها را تحلیل خواهیم کرد.
فهرست مطالب
نحوه وارد کردن کتابخانه های مورد نیاز
تجزیه و تحلیل داده های اکتشافی (EDA)
چگونه ارزش های گمشده را مدیریت کنیم
نحوه کدگذاری متغیرهای طبقه بندی شده
نحوه برخورد با موارد دور از دسترس
پیش نیازها
درک اولیه پایتون
درک اولیه از پاکسازی داده ها.
معرفی
Pandas یک کتابخانه دستکاری و تجزیه و تحلیل داده های منبع باز محبوب برای پایتون است. این توابع با استفاده آسان را فراهم می کند که برای کار با داده های ساختاریافته یکپارچه لازم است.
پانداها همچنین به طور یکپارچه با سایر کتابخانه های محبوب پایتون مانند NumPy برای محاسبات عددی و Matplotlib برای تجسم داده ها ادغام می شوند. این آن را به یک دارایی قدرتمند برای وظایف مبتنی بر داده تبدیل می کند.
پانداها در مدیریت داده های از دست رفته، تغییر شکل مجموعه داده ها، ادغام و پیوستن به مجموعه داده های متعدد، و انجام عملیات پیچیده بر روی داده ها برتری دارند که آن را برای تمیز کردن و دستکاری داده ها بسیار مفید می کند.
Pandas در هسته خود دو ساختار داده کلیدی را معرفی می کند: Series
و DataFrame
. یک Series
یک شیء آرایه مانند یک بعدی است که می تواند هر نوع داده ای را در خود جای دهد، در حالی که DataFrame
یک جدول دو بعدی با محورهای برچسب دار (ردیف ها و ستون ها) است. این ساختارها به کاربران اجازه می دهد تا مجموعه داده ها را به طور موثر دستکاری، پاکسازی و تجزیه و تحلیل کنند.
پاکسازی داده چیست؟
قبل از اینکه به ماجراجویی داده خود با پانداها بپردازیم، اجازه دهید لحظه ای را به توضیح اصطلاح "پاکسازی داده ها" اختصاص دهیم. به آن به عنوان سم زدایی دیجیتال برای مجموعه داده خود فکر کنید، جایی که ما آن را مرتب می کنیم، و دقت را بیش از هر چیز در اولویت قرار می دهیم.
پاکسازی داده ها شامل شناسایی و اصلاح خطاها، ناسازگاری ها و مقادیر از دست رفته در یک مجموعه داده است. مثل آماده کردن مواد اولیه قبل از پخت و پز است. شما همه چیز را می خواهید تا به تحلیل یا تجسم کامل برسید.
چرا با پاک کردن داده ها زحمت بکشید؟ خوب، تصور کنید زمانی که برخی از ورودیها وجود ندارند، سعی کنید روندهای فروش را تجزیه و تحلیل کنید، یا با مجموعه دادهای کار کنید که دارای رکوردهای تکراری است که محاسبات شما را از بین میبرد. ایده آل نیست، درست است؟
در این سم زدایی دیجیتال، ما از ابزارهایی مانند پانداها برای خلاص شدن از شر ناسازگاری ها، رفع خطاها و اجازه دادن به وضوح واقعی داده های شما استفاده می کنیم.
پردازش داده چیست؟
ممکن است این سوال برای شما پیش بیاید که "آیا پاکسازی داده ها و پیش پردازش داده ها به همین معناست؟" پاسخ منفی است - آنها این کار را نمی کنند.
این را تصور کنید: به یک صندوقچه گنج باستانی برخورد می کنید که در شن های دیجیتال مجموعه داده های شما مدفون شده است. تمیز کردن داده ها مانند بیرون آوردن دقیق قفسه سینه، پاک کردن گرد و غبار تار عنکبوت و اطمینان از معتبر و قابل اعتماد بودن آنچه در داخل است است.
در مورد پیش پردازش داده ها، می توانید آن را به عنوان گرفتن گنج کشف شده و آماده سازی محتوای آن برای نمایش عمومی در نظر بگیرید. فراتر از تمیز کردن است. این در مورد تبدیل و بهینه سازی داده ها برای تجزیه و تحلیل یا وظایف خاص است.
پاکسازی دادهها مرحله اولیه پالایش مجموعه داده شما است، و با تکنیکهایی مانند حذف موارد تکراری، مدیریت مقادیر از دست رفته و تبدیل نوع داده، قابل خواندن و قابل استفاده میشود، در حالی که پیشپردازش دادهها مشابه گرفتن این دادههای تصفیهشده و مقیاسبندی با تکنیکهای پیشرفتهتر مانند مهندسی ویژگی است. رمزگذاری متغیرهای طبقه بندی شده و و مدیریت مقادیر پرت برای دستیابی به نتایج بهتر و پیشرفته تر.
هدف این است که مجموعه داده خود را به یک شاهکار تصفیه شده، آماده برای تجزیه و تحلیل یا مدل سازی تبدیل کنید.
نحوه وارد کردن کتابخانه های مورد نیاز
قبل از شروع به پاکسازی و پیش پردازش داده ها، اجازه دهید کتابخانه Pandas
را وارد کنیم.
برای صرفه جویی در زمان و تایپ کردن، اغلب پانداها را به صورت pd
وارد می کنیم. این به ما امکان میدهد pd.read_csv()
کوتاهتر به جای pandas.read_csv()
برای خواندن فایلهای CSV استفاده کنیم و کد ما کارآمدتر و خواناتر شود.
import pandas as pd
نحوه بارگذاری مجموعه داده
با بارگیری مجموعه داده خود در Pandas DataFrame شروع کنید.
در این مثال، ما از یک مجموعه داده فرضی به نام your_dataset.csv استفاده خواهیم کرد. مجموعه داده را در متغیری به نام df
بارگذاری می کنیم.
#Replace 'your_dataset.csv' with the actual dataset name or file path df = pd.read_csv('your_dataset.csv')
تجزیه و تحلیل داده های اکتشافی (EDA)
EDA به شما کمک می کند ساختار و ویژگی های مجموعه داده خود را درک کنید. برخی از توابع Pandas به ما کمک می کنند تا بینشی در مورد مجموعه داده خود داشته باشیم. ما این توابع را با فراخوانی متغیر مجموعه داده به اضافه تابع فراخوانی می کنیم.
مثلا:
df.head()
5 ردیف اول مجموعه داده را فراخوانی می کند. می توانید تعداد سطرهایی که در پرانتز نمایش داده شوند را مشخص کنید.
df.describe()
برخی از داده های آماری مانند صدک، میانگین و انحراف استاندارد مقادیر عددی سری یا DataFrame را ارائه می دهد.
df.info()
تعداد ستونها، برچسبهای ستون، انواع دادههای ستون، میزان استفاده از حافظه، شاخص محدوده و تعداد سلولهای هر ستون (مقادیر غیر تهی) را نشان میدهد.
در اینجا یک نمونه کد در زیر آمده است:
#Display the first few rows of the dataset print(df.head()) #Summary statistics print(df.describe()) #Information about the dataset print(df.info())
چگونه ارزش های گمشده را مدیریت کنیم
به عنوان یک تازه کار در این زمینه، مقادیر از دست رفته استرس قابل توجهی ایجاد می کنند زیرا در قالب های مختلف ارائه می شوند و می توانند بر تحلیل یا مدل شما تأثیر منفی بگذارند.
مدلهای یادگیری ماشینی را نمیتوان با دادههایی که دارای مقادیر گمشده یا «NAN» هستند آموزش داد، زیرا میتوانند نتیجه نهایی شما را در طول تجزیه و تحلیل تغییر دهند. اما نگران نباشید، پانداها روش هایی را برای رسیدگی به این مشکل ارائه می دهند.
یکی از راه های انجام این کار حذف مقادیر از دست رفته به طور کلی است. قطعه کد زیر:
#Check for missing values print(df.isnull().sum()) #Drop rows with missing valiues and place it in a new variable "df_cleaned" df_cleaned = df.dropna() #Fill missing values with mean for numerical data and place it ina new variable called df_filled df_filled = df.fillna(df.mean())
اما اگر تعداد سطرهایی که مقادیر گمشده دارند زیاد باشد، این روش ناکافی خواهد بود.
برای دادههای عددی، میتوانید به سادگی میانگین را محاسبه کنید و آن را در ردیفهایی که مقادیر گمشده دارند وارد کنید. قطعه کد زیر:
#Replace missing values with the mean of each column df.fillna(df.mean(), inplace=True) #If you want to replace missing values in a specific column, you can do it this way: #Replace 'column_name' with the actual column name df['column_name'].fillna(df['column_name'].mean(), inplace=True) #Now, df contains no missing values, and NaNs have been replaced with column mean
نحوه حذف رکوردهای تکراری
سوابق تکراری می توانند تحلیل شما را با تأثیرگذاری بر نتایج به گونه ای که روندها و الگوهای زیربنایی را به طور دقیق نشان نمی دهند (با تولید مقادیر پرت) تحریف کنند.
Pandas به شناسایی و حذف مقادیر تکراری به روشی آسان با قرار دادن آنها در متغیرهای جدید کمک می کند.
قطعه کد زیر:
#Identify duplicates print(df.duplicated().sum()) #Remove duplicates df_no_duplicates = df.drop_duplicates()
انواع داده ها و تبدیل
تبدیل نوع داده در پانداها یک جنبه حیاتی از پیش پردازش داده است که به شما امکان می دهد مطمئن شوید که داده های شما در قالب مناسب برای تجزیه و تحلیل یا مدل سازی هستند.
دادههای منابع مختلف معمولاً نامرتب هستند و انواع دادههای برخی از مقادیر ممکن است در قالب اشتباه باشند، برای مثال برخی از مقادیر عددی ممکن است به جای قالب «integer» در قالب «float» یا «string» و ترکیبی از این قالبها باشند. منجر به خطا و نتایج اشتباه می شود.
با کد زیر می توانید یک ستون از نوع int
را به float
تبدیل کنید:
#Convert 'Column1' to float df['Column1'] = df['Column1'].astype(float) #Display updated data types print(df.dtypes)
برای چاپ انواع داده های ستونی می توانید از df.dtypes
استفاده کنید.
نحوه کدگذاری متغیرهای طبقه بندی شده
برای الگوریتمهای یادگیری ماشین، داشتن مقادیر طبقهبندی در مجموعه داده شما (مقادیر غیر عددی) برای اطمینان از بهترین مدل بسیار مهم است زیرا به همان اندازه مهم هستند.
اینها می توانند نام های تجاری خودرو در مجموعه داده خودروها برای پیش بینی قیمت خودرو باشند. اما الگوریتمهای یادگیری ماشینی نمیتوانند این نوع داده را پردازش کنند، پس باید قبل از استفاده به دادههای عددی تبدیل شوند.
Pandas تابع get_dummies
را ارائه میکند که مقادیر مقولهای را به فرمت عددی (فرمت باینری) تبدیل میکند به طوری که توسط الگوریتم بهعنوان مکاننما برای مقادیر شناسایی میشود و نه دادههای سلسله مراتبی که میتوانند تحت تحلیل عددی قرار گیرند. این فقط به این معنی است که اعدادی که نام برند به آنها تبدیل میشود بهعنوان 1 بزرگتر از 0 تفسیر نمیشود، اما به الگوریتم او میگوید که هم 1 و هم 0 مکانهایی برای دادههای دستهبندی هستند. قطعه کد در زیر نشان داده شده است:
#To convert categorical data from the column "Car_Brand" to numerical data df_encode = pd.get_dummies(df, columns=[Car_Brand]) #The categorical data is converted to binary format of Numerical data
نحوه برخورد با موارد دور از دسترس
نقاط پرت، نقاط داده ای هستند که به طور قابل توجهی با اکثر داده ها متفاوت هستند، آنها می توانند معیارهای آماری را تحریف کنند و بر عملکرد مدل های یادگیری ماشین تأثیر منفی بگذارند.
آنها ممکن است به دلیل خطای انسانی، از دست دادن مقادیر NaN، یا می توانند داده های دقیقی باشند که با بقیه داده ها مرتبط نیستند.
روش های مختلفی برای شناسایی و حذف نقاط پرت وجود دارد که عبارتند از:
مقادیر NaN را حذف کنید.
داده ها را قبل و بعد از حذف تجسم کنید.
روش Z-score (برای داده های توزیع شده عادی).
روش IQR (محدوده بین ربعی) برای داده های قوی تر.
IQR برای شناسایی نقاط پرت در یک مجموعه داده مفید است. بر اساس روش IQR، مقادیری که زیر Q1-1.5× IQR یا بالاتر از Q3+1.5×IQR قرار می گیرند، مقادیر پرت در نظر گرفته می شوند.
این قانون بر این فرض استوار است که بیشتر داده ها در یک توزیع نرمال باید در این محدوده قرار گیرند.
در اینجا یک قطعه کد برای روش IQR آمده است:
#Using median calculations and IQR, outliers are identified and these data points should be removed Q1 = df["column_name"].quantile(0.25) Q3 = df["column_name"].quantile(0.75) IQR = Q3 - Q1 lower_bound = Q1 - 1.5 * IQR upper_bound = Q3 + 1.5 * IQR df = df[df["column_name"].between(lower_bound, upper_bound)]
نتیجه
تمیز کردن و پیش پردازش داده ها اجزای جدایی ناپذیر هر پروژه تجزیه و تحلیل داده، علم یا یادگیری ماشین هستند. پانداها با عملکردهای همه کاره خود، این فرآیندها را به طور موثر تسهیل می کنند.
با پیروی از مفاهیم ذکر شده در این مقاله، می توانید اطمینان حاصل کنید که داده های شما به خوبی برای تجزیه و تحلیل و مدل سازی آماده شده است و در نهایت به نتایج دقیق تر و قابل اعتمادتری منجر می شود.
ارسال نظر