ট্রেন_স্টেস্ট_স্প্লিট () ত্রুটি: নমুনার অসঙ্গত সংখ্যার সাথে ইনপুট ভেরিয়েবলগুলি পাওয়া গেছে


21

পাইথনে মোটামুটি নতুন তবে কিছু শ্রেণিবিন্যাসের তথ্যের ভিত্তিতে আমার প্রথম আরএফ মডেল তৈরি করছে। আমি সমস্ত লেবেলগুলিকে int64 সংখ্যাসূচক ডেটাতে রূপান্তর করেছি এবং একটি অদ্ভুত অ্যারে হিসাবে এক্স এবং ওয়াইতে লোড করেছি, তবে আমি যখন মডেলগুলি প্রশিক্ষণের চেষ্টা করছি তখন আমি একটি ত্রুটি মারছি।

আমার অ্যারেগুলি দেখতে এখানে কী:

>>> X = np.array([[df.tran_cityname, df.tran_signupos, df.tran_signupchannel, df.tran_vmake, df.tran_vmodel, df.tran_vyear]])

>>> Y = np.array(df['completed_trip_status'].values.tolist())

>>> X
array([[[   1,    1,    2,    3,    1,    1,    1,    1,    1,    3,    1,
            3,    1,    1,    1,    1,    2,    1,    3,    1,    3,    3,
            2,    3,    3,    1,    1,    1,    1],
        [   0,    5,    5,    1,    1,    1,    2,    2,    0,    2,    2,
            3,    1,    2,    5,    5,    2,    1,    2,    2,    2,    2,
            2,    4,    3,    5,    1,    0,    1],
        [   2,    2,    1,    3,    3,    3,    2,    3,    3,    2,    3,
            2,    3,    2,    2,    3,    2,    2,    1,    1,    2,    1,
            2,    2,    1,    2,    3,    1,    1],
        [   0,    0,    0,   42,   17,    8,   42,    0,    0,    0,   22,
            0,   22,    0,    0,   42,    0,    0,    0,    0,   11,    0,
            0,    0,    0,    0,   28,   17,   18],
        [   0,    0,    0,   70,  291,   88,  234,    0,    0,    0,  222,
            0,  222,    0,    0,  234,    0,    0,    0,    0,   89,    0,
            0,    0,    0,    0,   40,  291,  131],
        [   0,    0,    0, 2016, 2016, 2006, 2014,    0,    0,    0, 2015,
            0, 2015,    0,    0, 2015,    0,    0,    0,    0, 2015,    0,
            0,    0,    0,    0, 2016, 2016, 2010]]])

>>> Y
array(['NO', 'NO', 'NO', 'YES', 'NO', 'NO', 'YES', 'NO', 'NO', 'NO', 'NO',
       'NO', 'YES', 'NO', 'NO', 'YES', 'NO', 'NO', 'NO', 'NO', 'NO', 'NO',
       'NO', 'NO', 'NO', 'NO', 'NO', 'NO', 'NO'], 
      dtype='|S3')

>>> X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.3)

ট্রেসব্যাক (সবচেয়ে সাম্প্রতিকতম কল সর্বশেষ):

  File "<stdin>", line 1, in <module>
  File "/Library/Python/2.7/site-packages/sklearn/cross_validation.py", line

2039, ট্রেন_েস্ট_স্প্লিট অ্যারে = ইনডেক্সযোগ্য (* অ্যারে) ফাইল "/ লাইব্রেরি / পাইথন/2.7/site-packages/sklearn/utils/ লাডিয়ালিটি.পি", লাইন 206, ইনডেক্সযোগ্য চেক_সংশ্লিষ্ট_ দৈর্ঘ্য (* ফলাফল) ফাইল "/ গ্রন্থাগার / পাইথন / ২.7 / সাইট-প্যাকেজ / স্ক্লেয়ার্ন / ইউটিস / বৈধতা.পি ", লাইন 181, চেক_সংশ্লিষ্ট_ দৈর্ঘ্যের" নমুনাগুলিতে:% আর "% [ইনট্রি (এল) দৈর্ঘ্যের জন্য ল]]

ValueError: Found input variables with inconsistent numbers of samples: [1, 29]

ভবিষ্যতে, পোস্ট করুন প্রশ্নের প্রোগ্রামিং করার Stackoverflow । এই প্রশ্নোত্তর প্রোগ্রামিং নয়, ডেটা সায়েন্স সম্পর্কে।
রিকার্ডো ক্রুজ 21

উত্তর:


15

আপনি সেই ত্রুটির মধ্যে চলেছেন কারণ আপনার Xএবং Yএকই দৈর্ঘ্য নেই (যার train_test_splitপ্রয়োজন এটি), অর্থাৎ X.shape[0] != Y.shape[0]। আপনার বর্তমান কোড দেওয়া:

>>> X.shape
(1, 6, 29)
>>> Y.shape
(29,)

এই ত্রুটিটি ঠিক করতে:

  1. এর ভিতর থেকে অতিরিক্ত তালিকা সরান np.array()যখন সংজ্ঞা Xবা নিম্নলিখিত কমান্ডের সাহায্যে পরে অতিরিক্ত মাত্রা সরান: X = X.reshape(X.shape[1:])। এখন, আকারটি X(6, 29) হবে।
  2. TRANSPOSE Xচালিয়ে X = X.transpose()মধ্যে নমুনা সমান নম্বর পেতে Xএবং Y। এখন, এর আকার Xহবে (29, 6) এবং এর আকার Yহবে (29,)।

1
আশ্চর্যজনক এটি আমার জন্য কাজ করেছে! ধন্যবাদ টুওমাস্টিক! আমি গাইডেন্সের সত্যই প্রশংসা করছি :)
জোশ_ গ্রে

2

ট্রেন_স্টেস্ট_স্প্লিট উভয়ই প্রত্যাশা করে না Xএবং Yএকই দৈর্ঘ্যের একটি তালিকা হতে পারে? আপনার এক্স এর দৈর্ঘ্য 6 এবং ওয়াই এর দৈর্ঘ্য 29% that

আপনার ডেটা দেওয়া, দেখে মনে হচ্ছে আপনার 6 টি বৈশিষ্ট্য রয়েছে। সেক্ষেত্রে আপনার X29 টি সারি এবং 6 টি কলাম রূপান্তর করার চেষ্টা করুন । তারপরে সেই ডেটাফ্রেমে পাস করুন train_test_split। আপনি আপনার তালিকাটি ডেটাফ্রেমে ব্যবহার করে রূপান্তর করতে পারেন pd.DataFrame.from_records


সাহায্যের জন্য ধন্যবাদ সাল! আপনি ঠিক বলেছেন, আমাকে এটিকে একই দৈর্ঘ্যে রূপান্তর করতে হয়েছিল। আমার এক্স.শ্যাপটি ছিল (1, 6, 29) এবং ওয়াই.শ্যাপটি ছিল (29,)। আমি কেবল তাদের পুনরায় আকার দিতে হয়েছিল এবং এটি আমার পক্ষে ভাল কাজ করেছে :)
জোশ_ গ্রে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.