Ali Ahmed55 نشر 22 يونيو أرسل تقرير نشر 22 يونيو السلام عليكم ده الكود categorical_cols = data_train[['orientation', 'behavior', 'phase', 'gesture']] encoded_df = pd.DataFrame( encoded.toarray().astype(int), columns=encoder.get_feature_names_out(categorical_cols.columns) ) data_encoded = pd.concat([data_train.drop(categorical_cols.columns, axis=1).reset_index(drop=True), encoded_df.reset_index(drop=True)], axis=1) 1 اقتباس
0 محمد_عاطف نشر 22 يونيو أرسل تقرير نشر 22 يونيو وعليكم السلام ورحمة الله وبركاته. بتاريخ 7 دقائق مضت قال Ali Ahmed55: categorical_cols = data_train[['orientation', 'behavior', 'phase', 'gesture']] في هذا السطر نقوم بإستخراج الأعمدة ذات القيم الفئوية (categorical) من البيانات الأصلية data_train وتلك الأعمدة هي: orientation و behavior و phase و gesture. بتاريخ 15 دقائق مضت قال Ali Ahmed55: encoded_df = pd.DataFrame( encoded.toarray().astype(int), columns=encoder.get_feature_names_out(categorical_cols.columns) ) هنا المتغير encode غير واضح لأنه لا يظهر في الكود المرفق ولكن غالبا هو ناتج من تحويل الأعمدة الفئوية إلى تمثيل رقمي باستخدام أداة ك OneHotEncoder ومن ثم يتم تحويل الناتج إلى مصفوفة NumPy من خلال toarray() ثم إلى أعداد صحيحة من خلال astype(int) . وهنا يتم إنشاء DataFrame جديد في المتغير encoded_df من هذه البيانات المشفرة في المتغير encoded ومن ثم تحديد أسماء الأعمدة الناتجة باستخدام encoder.get_feature_names_out . بتاريخ 20 دقائق مضت قال Ali Ahmed55: data_encoded = pd.concat([data_train.drop(categorical_cols.columns, axis=1).reset_index(drop=True), encoded_df.reset_index(drop=True)], axis=1) وأخيرا يتم حذف الأعمدة الأصلية الفئوية من data_train وهي الأعمدة التي حددناها في المتغير categorical_cols . ومن ثم يتم دمج الأعمدة الجديدة المشفرة encoded_df مع باقي البيانات.و يتم استخدام reset_index(drop=True) لضمان تناسق الفهارس بين DataFrames قبل الدمج. إذا الكود بإختصار يقوم بإستخراج الأعمدة الفئوية من البيانات ومن ثم تشفير هذه الأعمدة وأخيرا دمج الأعمدة المشفرة مع بقية البيانات بعد حذف الأعمدة الأصلية. أما بخصوص تحسينه فلو قصدت جعل الكود أسهل في القراءة فإليك التالي : # استخراج الأعمدة الفئوية categorical_cols = ['orientation', 'behavior', 'phase', 'gesture'] X_cat = data_train[categorical_cols] # تشفير البيانات الفئوية encoded_array = encoder.transform(X_cat).toarray() encoded_columns = encoder.get_feature_names_out(categorical_cols) encoded_df = pd.DataFrame(encoded_array.astype(int), columns=encoded_columns) # حذف الأعمدة الفئوية من البيانات الأصلية X_num = data_train.drop(columns=categorical_cols).reset_index(drop=True) # دمج البيانات الرقمية مع البيانات المشفرة data_encoded = pd.concat([X_num, encoded_df], axis=1) 1 اقتباس
0 Ali Ahmed55 نشر 22 يونيو الكاتب أرسل تقرير نشر 22 يونيو الف شكراا جدا جدا لحضرتك جزاك الله كل خير 1 اقتباس
السؤال
Ali Ahmed55
السلام عليكم
ده الكود
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.