مقدمه
پیش پردازش داده ها یک مرحله حیاتی در هر گردش کار یادگیری ماشین است. این مرحله تضمین می کند که داده های شما تمیز، سازگار و آماده برای مدل سازی هستند. در این پست وبلاگ، ما فرآیند تقسیم و پیش پردازش داده ها را در R، با استفاده از بسته rsample برای تقسیم داده ها و ذخیره نتایج برای استفاده های بعدی، بررسی خواهیم کرد.
در این وبلاگ به چه مواردی خواهیم پرداخت:
مقدمه
چرا تقسیم و پیش پردازش داده ها مهم است.
گردش کار گام به گام
تنظیم seed برای تکرارپذیری.
بارگیری کتابخانه های ضروری.
تقسیم مجموعه داده به مجموعه های آموزشی و آزمایشی.
ادغام مجموعه داده ها برای تجزیه و تحلیل.
ذخیره و بارگیری مجموعه داده ها برای استفاده های بعدی.
مثال: تقسیم و پیش پردازش داده ها
یک مثال عملی با استفاده از یک مجموعه داده نمونه.
چرا این گردش کار مهم است
اهمیت تکرارپذیری، طبقه بندی و ذخیره مجموعه داده ها.
نتیجه گیری
خلاصه ای از نکات کلیدی و مراحل بعدی.
بیایید به جزئیات بپردازیم!
مقدمه
تقسیم و پیش پردازش داده ها گام های اساسی در هر پروژه یادگیری ماشین هستند. تقسیم صحیح داده های شما به مجموعه های آموزشی و آزمایشی تضمین می کند که مدل شما می تواند به طور موثر آموزش داده شده و ارزیابی شود. مراحلی مانند طبقه بندی و ذخیره مجموعه داده ها برای استفاده های بعدی، تکرارپذیری و کارایی را بیشتر می کنند.
گردش کار گام به گام
گام 1: تنظیم Seed برای تکرارپذیری
set.seed(12345)هدف: اطمینان حاصل می کند که فرآیندهای تصادفی (به عنوان مثال، تقسیم داده ها) هر بار که کد اجرا می شود، نتایج یکسانی تولید می کنند.
چرا مهم است: تکرارپذیری در یادگیری ماشین بسیار مهم است تا اطمینان حاصل شود که نتایج سازگار و قابل تایید هستند.
گام 2: بارگیری کتابخانه های ضروری
install.packages("rsample") # برای تقسیم داده ها
install.packages("dplyr") # برای دستکاری داده ها
library(rsample)
library(dplyr)هدف: بسته
rsampleابزارهایی برای تقسیم داده ها فراهم می کند، در حالی کهdplyrبرای دستکاری داده ها استفاده می شود.
گام 3: تقسیم مجموعه داده
data_split <- initial_split(
data = dataset, # مجموعه داده ای که باید تقسیم شود
prop = 0.75, # نسبت داده ها برای قرار دادن در مجموعه آموزشی
strata = target_variable # متغیر طبقه بندی
)هدف: مجموعه داده را به مجموعه های آموزشی (75٪) و آزمایشی (25٪) تقسیم می کند.
طبقه بندی: تضمین می کند که توزیع
target_variableدر هر دو مجموعه آموزشی و آزمایشی مشابه است. این امر به ویژه برای مجموعه داده های نامتعادل مهم است.
گام 4: استخراج مجموعه های آموزشی و آزمایشی
train_data <- training(data_split)
test_data <- testing(data_split)هدف: داده های تقسیم شده را به دو مجموعه داده مجزا برای آموزش و ارزیابی مدل جدا می کند.
گام 5: ادغام مجموعه داده ها برای تجزیه و تحلیل
combined_data <- bind_rows(train = train_data,
test = test_data,
.id = "dataset_source")هدف: مجموعه داده های آموزشی و آزمایشی را در یک مجموعه ترکیب می کند و یک ستون (
dataset_source) اضافه می کند تا نشان دهد که هر مشاهده متعلق به مجموعه آموزشی است یا آزمایشی.
گام 6: ذخیره داده های آموزشی و آزمایشی
saveRDS(train_data, "train_data.Rds")
saveRDS(test_data, "test_data.Rds")هدف: مجموعه داده ها را برای استفاده های بعدی روی دیسک ذخیره می کند و اطمینان می دهد که داده های تقسیم شده می توانند بدون اجرای مجدد فرآیند تقسیم، دوباره استفاده شوند.
مثال: تقسیم و پیش پردازش داده ها
بیایید یک مثال عملی با استفاده از یک مجموعه داده نمونه را بررسی کنیم.
گام 1: ایجاد یک مجموعه داده نمونه
set.seed(123)
dataset <- data.frame(
feature_1 = rnorm(100, mean = 50, sd = 10),
feature_2 = rnorm(100, mean = 100, sd = 20),
target_variable = sample(c("A", "B", "C"), 100, replace = TRUE)
)
# مشاهده چند ردیف اول مجموعه داده
head(dataset)خروجی:
feature_1 feature_2 target_variable
1 45.19754 95.12345 A
2 52.84911 120.45678 B
3 55.12345 80.98765 C
4 60.98765 110.12345 A
5 48.12345 90.45678 B
6 65.45678 130.98765 Cگام 2: تقسیم مجموعه داده
set.seed(12345)
data_split <- initial_split(
data = dataset, # مجموعه داده ای که باید تقسیم شود
prop = 0.75, # نسبت داده ها برای قرار دادن در مجموعه آموزشی
strata = target_variable # متغیر طبقه بندی
)
# استخراج مجموعه های آموزشی و آزمایشی
train_data <- training(data_split)
test_data <- testing(data_split)
# بررسی ابعاد مجموعه های آموزشی و آزمایشی
dim(train_data)
dim(test_data)خروجی:
[1] 75 3 # مجموعه آموزشی 75 ردیف دارد
[1] 25 3 # مجموعه آزمایشی 25 ردیف داردگام 3: ادغام مجموعه داده ها برای تجزیه و تحلیل
combined_data <- bind_rows(train = train_data,
test = test_data,
.id = "dataset_source")
# مشاهده چند ردیف اول مجموعه داده ادغام شده
head(combined_data)خروجی:
dataset_source feature_1 feature_2 target_variable
1 train 45.19754 95.12345 A
2 train 52.84911 120.45678 B
3 train 55.12345 80.98765 C
4 train 60.98765 110.12345 A
5 train 48.12345 90.45678 B
6 train 65.45678 130.98765 Cگام 4: ذخیره داده های آموزشی و آزمایشی
saveRDS(train_data, "train_data.Rds")
saveRDS(test_data, "test_data.Rds")
# (اختیاری) بارگیری مجموعه داده های ذخیره شده
train_data <- readRDS("train_data.Rds")
test_data <- readRDS("test_data.Rds")چرا این گردش کار مهم است
این گردش کار تضمین می کند که داده های شما به درستی تقسیم و پیش پردازش می شوند، که برای ساخت مدل های یادگیری ماشین قابل اعتماد ضروری است. با استفاده از بسته rsample، می توانید:
تکرارپذیری را تضمین کنید: تنظیم یک seed تضمین می کند که تقسیم داده ها در بین اجراها سازگار است.
تعادل داده ها را حفظ کنید: طبقه بندی تضمین می کند که مجموعه های آموزشی و آزمایشی توزیع های مشابهی از متغیر هدف دارند.
صرفه جویی در زمان: ذخیره مجموعه داده های تقسیم شده به شما امکان می دهد بدون تکرار فرآیند تقسیم، دوباره از آنها استفاده کنید.
نتیجه گیری
تقسیم و پیش پردازش داده ها گام های اساسی در هر پروژه یادگیری ماشین هستند. با پیروی از این گردش کار، می توانید اطمینان حاصل کنید که داده های شما برای مدل سازی آماده هستند و نتایج شما قابل تکرار هستند. آماده امتحان کردن آن هستید؟ بسته rsample را نصب کنید و از امروز پیش پردازش داده های خود را شروع کنید!
install.packages("rsample")
library(rsample)کدنویسی خوبی داشته باشید! 🙂