تقسیم بندی داده ها به دو گروه مجموعه های یادگیری و آموزش (Train set) و ارزیابی (Validation set) یکی از مراحل بسیار مهم در ساخت مدل های ماشین لرنینگ است. در این مطلب ساخت مجموعه های training و validation با استفاده از sklearn را بررسی می کنیم.
در این ساختار، داده ها به گونه ای تقسیم بندی می شوند که یک گروه برای یادگیری و ساخت مدل است که با نام Training data شناخته می شود و یک گروه دیگر به نام Validation data برای ارزیابی عملکرد مدل مورد استفاده قرار می گیرد.
نسبت مجموعه داده فاز آموزش و یادگیری (Training) به مجموعه داده فاز ارزیابی (Validation) اغلب 80 به 20 است. برای مثال اگر اطلاعات 1.000.000 خانه را در اختیار داشته باشیم، 800.000 را برای ساخت و آموزش مدل استفاده می کنیم و سپس ارزیابی را بر روی 200.000 خانه ای انجام می دهیم که مدل قبلا آن ها را مشاهده نکرده است.
اگرچه جداسازی داده ها و ایجاد مجموعه های Train set و Validation set به صورت دستی نیز امکان پذیر است، اما با استفاده از sklearn می توان به راحتی این کار را به صورت داینامیک انجام داد.
قطعه کد زیر، کدهای کلی است که با استفاده از sklearn تقسیم بندی داده ها انجام می شود.
همانطور که در خط سوم مشاهده می کنید، ما داده ها را به 4 گروه تقسیم می کنیم. فرض کنید تعداد 100 اطلاعات 100 خانه شامل متراژ، تعداد اتاق خواب و قیمت را داریم. هدف نیز محاصبه قیمت است. داده ها با نسبت 80 به 20 تقسیم کرده ایم، در این صورت:
from sklearn.model_selection import train_test_split train_X, val_X, train_y, val_y = train_test_split(X, y, random_state=1) splitted_model = DecisionTreeRegressor(random_state=1) splitted_model.fit(train_X, train_y) val_predictions = splitted_model.predict(val_X)
در پایان می توانیم برای مشخص کردن چگونگی عملکرد مدل، قیمت های پیش بینی شده برای آن 20 خانه را با قیمت های اصلی همان 20 خانه مقایسه کنیم.
برای ارزیابی مدل از معیار MAE استفاده می کنیم. فرمول خطای میانگین مطلق یا MAE نیز به صورت زیر است.
from sklearn.metrics import mean_absolute_error splitted_MAE = mean_absolute_error(val_predictions, val_y) print("\n MAE =", splitted_MAE)
در خط اول چهارم، خطای MAE بر اساس val_y یعنی قیمت های اصلی آن 20 خانه، و val_predictions یعنی قیمت های پیش بینی شده برای آن 20 خانه است.
فایل های مرتبط:
تمام کدهای مربوط به این قسمت که در فایل ویدیویی استفاده شده از لینک زیر قابل دسترس هستند: