Meezo ML نشر 24 يونيو 2021 أرسل تقرير نشر 24 يونيو 2021 لدي كود بالشكل التالي: data = pd.read_csv('D:\\house.csv'); X = data['size'] y = data['price'] lr = LinearRegression() lr.fit(X,y) لكنه يعطيني الخطأ التالي: ValueError: Found input variables with inconsistent numbers of samples: [1, 1000] ما السبب؟ وما الحل؟ اقتباس
1 Ali Haidar Ahmad نشر 24 يونيو 2021 أرسل تقرير نشر 24 يونيو 2021 (معدل) قد يظهر هذا الخطأ في أي نموذج آخر في Sklearn بشكل مشابه تماماً. المشكلة تظهر في التابع fit ، حيث أن التابع يتوقع أبعاد X بالشكل: [n_samples,n_features] لكنك تعطيه مصفوفة من الشكل: [n_samples,] لحل المشكلة قم بإعادة تعيين الأبعاد: X=X.reshape(-1,1) lr.fit(X ,y) تم التعديل في 24 يونيو 2021 بواسطة Ali Haidar Ahmad 1 اقتباس
1 ريم المهدي نشر 24 يونيو 2021 أرسل تقرير نشر 24 يونيو 2021 مثلما تم التوضيح في المثال السابق، فإن مشكلة النموذج تكمن في عدم توافقية شكل المدخلات مع المخرجات X,y. لذلك لابد من التأكد من شكل المدخل X.shape, y.shape قبل تطبيق النموذج في البيانات. مثلاً للقيام بعملية تدريب نموذج بالإعتماد على عمودين من بيانات بوسطن (أحد البيانات المتوفرة في مكتبة sklearn)، نقوم بالتالي: import pandas as pd from sklearn.linear_model import LinearRegression from sklearn.datasets import load_boston boston = load_boston() X = pd.DataFrame(boston.data[:,-4]) y = pd.DataFrame(boston.target) lr = LinearRegression() lr.fit(X,y) في البدء قمنا بإستدعاء الدوال اللازمة، ثم حملنا مجموعة بيانات بوسطن، منها قمنا بإختيار عمودين، عمود feature من بيانات المدخلات X وهو الرابع من أخر الأعمدة (-4) و عمود المخرجات وهو يمثل الأسعار target، إن قمت بطباعة شكل البيانات: print(X.shape, y.shape) (506, 1) (506, 1) فإنك تحصل على عدد مطابق للصفوف و الأعمدة في كل من X,y حيث القيمة الأولى تشير لعدد العينات samples و القيمة الثانية تشير لعدد الخصائص المستخدمة للوصول للسعر feature وهي واحدة. لاحظ أنك إن لم تقم بعملية التحويل ل dataframe لبيانات X فإن النموذج لن يعرف عدد الخصائص المراد تدريبه عليها و ينتج خطأ. كما يمكنك أيضاً تحويل فقط بيانات المدخلات X و ترك y كما هي في شكل عدد من الصفوف بدون تحديد الأعمدة كالتالي: import pandas as pd from sklearn.linear_model import LinearRegression from sklearn.datasets import load_boston boston = load_boston() X = pd.DataFrame(boston.data[:,-4]) y = boston.target lr = LinearRegression() lr.fit(X,y) و بذلك تدخل البيانات حسب الشكل المطلوب للنموذج، يمكنك مراجعة موقع sklearn لمزيد من التفاصيل. اقتباس
السؤال
Meezo ML
لدي كود بالشكل التالي:
لكنه يعطيني الخطأ التالي:
ValueError: Found input variables with inconsistent numbers of samples: [1, 1000]
ما السبب؟ وما الحل؟
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.