Ali Ahmed55 نشر 30 نوفمبر 2024 أرسل تقرير نشر 30 نوفمبر 2024 باستخدم الكود ده correlations = diabetes.corr()['Outcome'].sort_values(ascending=False) top_features = correlations[1:] plt.figure(figsize=(12,8)) top_features.plot(kind='bar' , color='skyblue' , edgecolor='black') plt.title("Top Features Correlated With Outcome" , fontsize=14) plt.xlabel('Features' , fontsize=14) plt.ylabel("Correlation with Outcome" , fontsize=14) plt.xticks(rotation=45 , fontsize=12) plt.grid(axis='y' , linestyle='--' , alpha=0.7) plt.tight_layout() plt.show() plt.savefig("Top-Features-Correlated-With-Outcome.png" , bbox_inches='tight') ظهر ان االرسم ده بس وانا بتدرب النموذج ظهارت حاجه غريب هو ان في ترتيب الميزات اختلف فا اي يعني الكلام ده ؟ وده الكود modle_diabetes_randomforestregressor = RandomForestRegressor(n_estimators=10000 , max_depth=4 , random_state=33) train = modle_diabetes_randomforestregressor.fit(x_train_scaled , y_train) y_predict = train.predict(x_test_scaled) importances = permutation_importance(modle_diabetes_randomforestregressor , x_test_scaled , y_test , n_repeats=10 , random_state=42) importance_scores = importances.importances_mean print(importance_scores) sorted_features = np.argsort(importance_scores)[::-1] print(sorted_features) ودي رسمت الكود ده plt.figure(figsize=(12,8)) plt.bar(range(len(sorted_features)) , sorted_features) plt.xticks(range(len(sorted_features)), diabetes.columns[sorted_features], rotation=45) plt.title("Feature Importance Using Permutation Importance" , fontsize=14) plt.xlabel('Features' , fontsize=14) plt.ylabel("Importance Scores" , fontsize=14) plt.grid(axis='y' , linestyle='--' , alpha=0.7) plt.tight_layout() #plt.show() plt.savefig("Importance-Scores.png" , bbox_inches='tight') ودي الرسم فا انا عاوز اعرف ازي اقبل ما اتدريب النموذج يكون الترتيب الGlucose وبعد كده الHOMA_IR وب هعد كده الInsulin واتناء تدريب النموذج يكون الترتيب الGlucose وبعد كده الBMI و بعد كده الAge وطبعان الOutcome مش هنحسبو فا ازي كده ؟ 1 اقتباس
0 Mustafa Suleiman نشر 30 نوفمبر 2024 أرسل تقرير نشر 30 نوفمبر 2024 بسبب طريقة حساب الأهمية في كل منهما، ففي الرسم الأول، الذي يظهر الترتيب حسب قيمة الارتباط مع Outcome، تقوم بحساب الارتباط باستخدام معامل الارتباط بين كل ميزة و Outcome، أي أن الميزات التي لها قيمة ارتباط أعلى تكون أكثر ارتباطًا مع Outcome. في الرسم الثاني، يظهر الترتيب حسب الأهمية باستخدام Permutation Importance، وتقوم بحساب الأهمية من خلال تقييم تأثير كل ميزة على دقة النموذج من خلال تغيير قيمة كل ميزة بشكل عشوائي وتقييم التغيير في دقة النموذج، والميزات التي لها تأثير أكبر على دقة النموذج تكون أكثر أهمية. بالتالي الفرق بين الطريقتين هو أن الارتباط لا يعتبر تأثير الميزة على دقة النموذج، بينما الأهمية تعتبر تأثير الميزة على دقة النموذج. ولتعديل الترتيب، استخدم تقنية Feature Engineering لتحسين الأهمية للميزات التي تريدها، وأحد الطرق هي Feature Scaling والتي تقوم بتوسيم الميزات وتصبح جميعها بنفس النطاق، مما يمنع الميزات ذات القيم الأكبر من التأثير بشكل أكبر على النموذج. أي لو ميزة Glucose تتراوح بين 0 و 300، بينما ميزة Insulin تتراوح بين 0 و 10، فإن Glucose ستكون لها تأثير أكبر على النموذج، وتستطيع استخدام StandardScaler أو MinMaxScaler لتوسيم الميزات إلى نطاق موحد. كالتالي: from sklearn.preprocessing import StandardScaler scaler = StandardScaler() x_train_scaled = scaler.fit_transform(x_train) x_test_scaled = scaler.transform(x_test) modle_diabetes_randomforestregressor = RandomForestRegressor(n_estimators=10000 , max_depth=4 , random_state=33) train = modle_diabetes_randomforestregressor.fit(x_train_scaled , y_train) importances = permutation_importance(modle_diabetes_randomforestregressor , x_test_scaled , y_test , n_repeats=10 , random_state=42) importance_scores = importances.importances_mean 1 اقتباس
0 Ali Ahmed55 نشر 30 نوفمبر 2024 الكاتب أرسل تقرير نشر 30 نوفمبر 2024 بتاريخ 4 ساعة قال Mustafa Suleiman: بسبب طريقة حساب الأهمية في كل منهما، ففي الرسم الأول، الذي يظهر الترتيب حسب قيمة الارتباط مع Outcome، تقوم بحساب الارتباط باستخدام معامل الارتباط بين كل ميزة و Outcome، أي أن الميزات التي لها قيمة ارتباط أعلى تكون أكثر ارتباطًا مع Outcome. في الرسم الثاني، يظهر الترتيب حسب الأهمية باستخدام Permutation Importance، وتقوم بحساب الأهمية من خلال تقييم تأثير كل ميزة على دقة النموذج من خلال تغيير قيمة كل ميزة بشكل عشوائي وتقييم التغيير في دقة النموذج، والميزات التي لها تأثير أكبر على دقة النموذج تكون أكثر أهمية. بالتالي الفرق بين الطريقتين هو أن الارتباط لا يعتبر تأثير الميزة على دقة النموذج، بينما الأهمية تعتبر تأثير الميزة على دقة النموذج. ولتعديل الترتيب، استخدم تقنية Feature Engineering لتحسين الأهمية للميزات التي تريدها، وأحد الطرق هي Feature Scaling والتي تقوم بتوسيم الميزات وتصبح جميعها بنفس النطاق، مما يمنع الميزات ذات القيم الأكبر من التأثير بشكل أكبر على النموذج. أي لو ميزة Glucose تتراوح بين 0 و 300، بينما ميزة Insulin تتراوح بين 0 و 10، فإن Glucose ستكون لها تأثير أكبر على النموذج، وتستطيع استخدام StandardScaler أو MinMaxScaler لتوسيم الميزات إلى نطاق موحد. كالتالي: from sklearn.preprocessing import StandardScaler scaler = StandardScaler() x_train_scaled = scaler.fit_transform(x_train) x_test_scaled = scaler.transform(x_test) modle_diabetes_randomforestregressor = RandomForestRegressor(n_estimators=10000 , max_depth=4 , random_state=33) train = modle_diabetes_randomforestregressor.fit(x_train_scaled , y_train) importances = permutation_importance(modle_diabetes_randomforestregressor , x_test_scaled , y_test , n_repeats=10 , random_state=42) importance_scores = importances.importances_mean اه يعني معين كده النموذج مش فاهم البيانات بشكل افضل الان كمان دي بتكون نتجيه الmean_squared_error مش افضل حاجه خالص Mean Squared Error: 0.14112711572071124 الف شكرااا لحضرتك جد ولكن انا اصلان مستخدم الStandardScaler ؟ اقتباس
السؤال
Ali Ahmed55
باستخدم الكود ده
ظهر ان االرسم ده
بس وانا بتدرب النموذج ظهارت حاجه غريب هو ان في ترتيب الميزات اختلف فا اي يعني الكلام ده ؟
وده الكود
ودي رسمت الكود ده
ودي الرسم
فا انا عاوز اعرف ازي اقبل ما اتدريب النموذج يكون الترتيب الGlucose وبعد كده الHOMA_IR وب هعد كده الInsulin
واتناء تدريب النموذج يكون الترتيب الGlucose وبعد كده الBMI و بعد كده الAge وطبعان الOutcome مش هنحسبو فا ازي كده ؟
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.