Menu
CoddyTech
flag Ar iconالعربيةdown icon

جهّز البيانات

جزء من قسم التعلّم الخاضع للإشراف في رحلة Machine Learning على Coddy. الدرس 51 من 58.

لا يقرأ النموذج إلا الصفوف الكاملة من الأرقام. لدى طيور البطريق قيم مفقودة وعمودان نصيان، لذا يسلك كل عمود مسارًا:

مخطط لبطريق واحد في بيانات التدريب. تسلك قياساته الأربعة مسارًا أزرق، وتُملأ بالقيمة الوسيطة ثم تُقيّس، لتخرج بالقيم -0.79 و0.00 و-0.05 و-0.90. وتسلك جزيرته Biscoe وجنسه المفقود مسارًا برتقاليًا، وتُملآن بقيمة unknown ثم تُحوّلان إلى ترميز one-hot، لتخرجا في ستة أعمدة بقيم 0 أو 1

تُملأ القيم النصية المفقودة بالكلمة "unknown": فالبطريق الذي لم يُسجَّل جنسه يحصل على عمود خاص به بدلًا من التخمين.

text_steps = make_pipeline(
    SimpleImputer(strategy="constant", fill_value="unknown"),
    OneHotEncoder())

قم بملاءمة المسارات على صفوف التدريب فقط. فالوسيط الذي اطّلع على طيور البطريق في مجموعة الاختبار سيسرّب بياناتها إلى التدريب.

challenge icon

التحدي

متوسط

تحتاج طيور البطريق إلى المسارات الموضحة في الصورة. يقسم البرنامج المبدئي البيانات ويقرأ رقم صف.

  1. أنشئ prep، وهو ColumnTransformer يوجّه numbers عبر مسار الأرقام وtext عبر مسار النصوص.
  2. قم بملاءمته على صفوف التدريب وحوّلها باستدعاء واحد.
  3. اطبع الحجم وعدد القيم المفقودة قبل التحويل، ثم الحجم بعده، ثم ذلك الصف بعد تجهيزه، مع التقريب إلى منزلتين عشريتين.

لمستعمرة أخرى والصف 3:

Before: 180 penguins, 6 columns, 9 gaps
After: 180 penguins, 10 columns
Penguin 3: [-1.12  0.47 -0.83 -0.6   0.    1.    0.    0.    1.    0.  ]

الصف 14 لطائر بطريق لم يستطع أحد قياسه. إلى ماذا ستتحول بياناته؟

جرّب بنفسك

import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.compose import ColumnTransformer
from sklearn.pipeline import make_pipeline
from sklearn.impute import SimpleImputer
from sklearn.preprocessing import StandardScaler, OneHotEncoder

# مستعمرة البطاريق من Meet the Penguins، وسماتها وتسميتها
penguins = pd.read_csv("penguins.csv")
numbers = ["bill_length_mm", "bill_depth_mm", "flipper_length_mm", "body_mass_g"]
text = ["island", "sex"]
X = penguins[numbers + text]
y = penguins["species"]

# قسّم البيانات أولًا: تبقى بطاريق الاختبار معزولة حتى Ship the Model
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, stratify=y, random_state=0)
row = int(input())

# اكتب الكود الخاص بك أدناه
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس التعلّم الخاضع للإشراف

تدرّب بنفسك: مترجم Python عبر الإنترنت