Ali Ahmed55 نشر 4 يونيو أرسل تقرير نشر 4 يونيو السلام عليكم في مكتبه sklearn هو الparameters (normalize) مش موجود في الmodel LinearRegression ؟ 2 اقتباس
0 Mohamed Farahat نشر 4 يونيو أرسل تقرير نشر 4 يونيو وعليكم السلام! In the scikit-learn library, the normalize parameter is not available in the LinearRegression model. The LinearRegression model is used to fit a linear model with coefficients w = (w1, ..., wp) to minimize the sum of squared residuals between observed targets in the dataset and the predicted targets from the linear approximation If you need to apply normalization to your data before using the LinearRegression model, you can use the normalize function from scikit-learn to normalize the data. This function helps standardize the data and avoids issues related to varying scales. 1 اقتباس
0 Mustafa Suleiman نشر 4 يونيو أرسل تقرير نشر 4 يونيو بالضبط، ففي مكتبة scikit-learn، باراميتر normalize لم يعد موجودًا في الإصدار 0.24.0 وما بعده من النموذج LinearRegression. في الإصدارات الأحدث من المكتبة، عليك استخدام StandardScaler أو Normalizer من مكتبة sklearn.preprocessing لتطبيع البيانات قبل تمريرها إلى النموذج. للتوضيح: from sklearn.linear_model import LinearRegression from sklearn.preprocessing import StandardScaler import numpy as np X = np.array([[1, 2], [3, 4], [5, 6], [7, 8]]) y = np.array([1, 2, 3, 4]) scaler = StandardScaler() X_scaled = scaler.fit_transform(X) model = LinearRegression() model.fit(X_scaled, y) predictions = model.predict(X_scaled) print(predictions) لاحظ تطبيع البيانات باستخدام StandardScaler قبل استخدامها في تدريب النموذج LinearRegression، وذلك يحقق نفس النتيجة التي كان يحققها استخدام الباراميتر normalize=True في الإصدارات الأقدم. 2 اقتباس
0 Ali Ahmed55 نشر 4 يونيو الكاتب أرسل تقرير نشر 4 يونيو بتاريخ 3 ساعة قال Mustafa Suleiman: بالضبط، ففي مكتبة scikit-learn، باراميتر normalize لم يعد موجودًا في الإصدار 0.24.0 وما بعده من النموذج LinearRegression. في الإصدارات الأحدث من المكتبة، عليك استخدام StandardScaler أو Normalizer من مكتبة sklearn.preprocessing لتطبيع البيانات قبل تمريرها إلى النموذج. للتوضيح: from sklearn.linear_model import LinearRegression from sklearn.preprocessing import StandardScaler import numpy as np X = np.array([[1, 2], [3, 4], [5, 6], [7, 8]]) y = np.array([1, 2, 3, 4]) scaler = StandardScaler() X_scaled = scaler.fit_transform(X) model = LinearRegression() model.fit(X_scaled, y) predictions = model.predict(X_scaled) print(predictions) لاحظ تطبيع البيانات باستخدام StandardScaler قبل استخدامها في تدريب النموذج LinearRegression، وذلك يحقق نفس النتيجة التي كان يحققها استخدام الباراميتر normalize=True في الإصدارات الأقدم. انا اول ما عملت كده يا أ.مصطفي فا حسابات الMSE فا كان ده النتجيه 87.53644204505163 مع العلم قبل ما اعمل كده فا كانت النتجيه 0.12410403813221675 فا اي السبيب ؟ وده الكود قبل import pandas as pd from sklearn.linear_model import LinearRegression from sklearn.model_selection import train_test_split from sklearn.metrics import mean_squared_error data = pd.read_csv("heart_disease.csv") feutures = data.drop(['target'] , axis=1 , inplace=False) outpnt = data['target'] x_traing , x_test , y_traing , y_test = train_test_split(feutures , outpnt , test_size=0.25, random_state=44 , shuffle=True) linearregression = LinearRegression(fit_intercept=True , copy_X=True , n_jobs=-1) fit = linearregression.fit(x_traing , y_traing) y_prodict = fit.predict(x_test) msevalue = mean_squared_error(y_test , y_prodict , multioutput="uniform_average") print(f"MSEvalue: {msevalue}") وده الكود بعد import pandas as pd from sklearn.linear_model import LinearRegression from sklearn.preprocessing import StandardScaler from sklearn.model_selection import train_test_split from sklearn.metrics import mean_squared_error data = pd.read_csv("heart_disease.csv") feutures = data.drop(['target'] , axis=1 , inplace=False) outpnt = data['target'] x_traing , x_test , y_traing , y_test = train_test_split(feutures , outpnt , test_size=0.25, random_state=44 , shuffle=True) scaler = StandardScaler() x_scaler_traing = scaler.fit_transform(x_traing) linearregression = LinearRegression(fit_intercept=True , copy_X=True , n_jobs=-1) fit = linearregression.fit(x_scaler_traing , y_traing) y_prodict = fit.predict(x_test) msevalue = mean_squared_error(y_test , y_prodict , multioutput="uniform_average") print(f"MSEvalue: {msevalue}") 1 اقتباس
0 Ali Ibrahim12 نشر 4 يونيو أرسل تقرير نشر 4 يونيو بتاريخ 47 دقائق مضت قال Ail Ahmed: انا اول ما عملت كده يا أ.مصطفي فا حسابات الMSE فا كان ده النتجيه 87.53644204505163 مع العلم قبل ما اعمل كده فا كانت النتجيه 0.12410403813221675 فا اي السبيب ؟ في الكود الثاني، قمت بتطبيق التحجيم القياسي (StandardScaler)فقط على بيانات التدريب (x_traing) ولكن لم تقم بتطبيق نفس التحجيم على بيانات الاختبار (x_test). هذا يؤدي إلى عدم توافق في توزيع البيانات بين التدريب والاختبار، مما يسبب زيادة كبيرة في الخطأ. يجب عليك أيضًا تطبيق التحجيم على بيانات الاختبار باستخدام نفس التحجيم الذي استخدمته لبيانات التدريب: import pandas as pd from sklearn.linear_model import LinearRegression from sklearn.preprocessing import StandardScaler from sklearn.model_selection import train_test_split from sklearn.metrics import mean_squared_error data = pd.read_csv("heart_disease.csv") feutures = data.drop(['target'], axis=1, inplace=False) outpnt = data['target'] x_traing, x_test, y_traing, y_test = train_test_split(feutures, outpnt, test_size=0.25, random_state=44, shuffle=True) scaler = StandardScaler() x_scaler_traing = scaler.fit_transform(x_traing) x_scaler_test = scaler.transform(x_test) # تطبيق نفس التحجيم على بيانات الاختبار linearregression = LinearRegression(fit_intercept=True, copy_X=True, n_jobs=-1) fit = linearregression.fit(x_scaler_traing, y_traing) y_prodict = fit.predict(x_scaler_test) msevalue = mean_squared_error(y_test, y_prodict, multioutput="uniform_average") print(f"MSEvalue: {msevalue}") وتأكد من أن البيانات في ملف heart_disease.csv لا تحتوي على قيم شاذة أو غير منطقية يمكن أن تؤثر على النتائج بعد التحجيم. بتطبيق التعديلات السابقة، يجب أن تحصل على نتائج أكثر منطقية لقيمة MSE. 1 اقتباس
0 Ali Ahmed55 نشر 4 يونيو الكاتب أرسل تقرير نشر 4 يونيو بتاريخ 4 دقائق مضت قال Ali Ibrahim12: في الكود الثاني، قمت بتطبيق التحجيم القياسي (StandardScaler)فقط على بيانات التدريب (x_traing) ولكن لم تقم بتطبيق نفس التحجيم على بيانات الاختبار (x_test). هذا يؤدي إلى عدم توافق في توزيع البيانات بين التدريب والاختبار، مما يسبب زيادة كبيرة في الخطأ. يجب عليك أيضًا تطبيق التحجيم على بيانات الاختبار باستخدام نفس التحجيم الذي استخدمته لبيانات التدريب: import pandas as pd from sklearn.linear_model import LinearRegression from sklearn.preprocessing import StandardScaler from sklearn.model_selection import train_test_split from sklearn.metrics import mean_squared_error data = pd.read_csv("heart_disease.csv") feutures = data.drop(['target'], axis=1, inplace=False) outpnt = data['target'] x_traing, x_test, y_traing, y_test = train_test_split(feutures, outpnt, test_size=0.25, random_state=44, shuffle=True) scaler = StandardScaler() x_scaler_traing = scaler.fit_transform(x_traing) x_scaler_test = scaler.transform(x_test) # تطبيق نفس التحجيم على بيانات الاختبار linearregression = LinearRegression(fit_intercept=True, copy_X=True, n_jobs=-1) fit = linearregression.fit(x_scaler_traing, y_traing) y_prodict = fit.predict(x_scaler_test) msevalue = mean_squared_error(y_test, y_prodict, multioutput="uniform_average") print(f"MSEvalue: {msevalue}") وتأكد من أن البيانات في ملف heart_disease.csv لا تحتوي على قيم شاذة أو غير منطقية يمكن أن تؤثر على النتائج بعد التحجيم. بتطبيق التعديلات السابقة، يجب أن تحصل على نتائج أكثر منطقية لقيمة MSE. شكراا جدا لحضرتك تمام 1 اقتباس
السؤال
Ali Ahmed55
السلام عليكم
في مكتبه sklearn
هو الparameters (normalize) مش موجود في الmodel LinearRegression ؟
6 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.