का उपयोग कर डेट वैरिएबल के साथ रिग्रेशन मेरे पास date
कॉलम (उदाहरण: 2013-04-01
) के साथके साथ एक पांडस डेटाफ्रेम है। जब मैं X_train
में उस कॉलम को शामिल करता हूं और रिग्रेशन मॉडल को फिट करने का प्रयास करता हूं, तो मुझे त्रुटि float() argument must be a string or a number
मिलती है। date
कॉलम को हटाने से इस त्रुटि से परहेज किया गया।साइकिट-सीखने
date
को रिग्रेशन मॉडल में खाते में लेने का उचित तरीका क्या है?
कोड
data = sql.read_frame(...)
X_train = data.drop('y', axis=1)
y_train = data.y
rf = RandomForestRegressor().fit(X_train, y_train)
त्रुटि
TypeError Traceback (most recent call last)
<ipython-input-35-8bf6fc450402> in <module>()
----> 2 rf = RandomForestRegressor().fit(X_train, y_train)
C:\Python27\lib\site-packages\sklearn\ensemble\forest.pyc in fit(self, X, y, sample_weight)
292 X.ndim != 2 or
293 not X.flags.fortran):
--> 294 X = array2d(X, dtype=DTYPE, order="F")
295
296 n_samples, self.n_features_ = X.shape
C:\Python27\lib\site-packages\sklearn\utils\validation.pyc in array2d(X, dtype, order, copy)
78 raise TypeError('A sparse matrix was passed, but dense data '
79 'is required. Use X.toarray() to convert to dense.')
---> 80 X_2d = np.asarray(np.atleast_2d(X), dtype=dtype, order=order)
81 _assert_all_finite(X_2d)
82 if X is X_2d and copy:
C:\Python27\lib\site-packages\numpy\core\numeric.pyc in asarray(a, dtype, order)
318
319 """
--> 320 return array(a, dtype, copy=False, order=order)
321
322 def asanyarray(a, dtype=None, order=None):
TypeError: float() argument must be a string or a number
मुझे विज्ञान के साथ सीधा समाधान नहीं मिल रहा है-तिथि (स्ट्रिंग प्रारूप) को कई विशेषताओं में कनवर्ट करना सीखें, इसलिए मैंने इसे मैन्युअल रूप से date_object = datetime.strptime ('2016-25-05', '% Y /% डी /% एम ') प्रिंट' सप्ताह का दिन ', date_object.strftime ('% w ') – Spl2nky
आपका उत्तर बहुत अच्छा है। लेकिन, मुझे लगता है कि कुछ मामलों में आदेश बनाए रखना महत्वपूर्ण है, उदाहरण के लिए: दिनों का आदेश, या सप्ताह के दिनों में। मुझे लगता है कि यह समस्या पर निर्भर करता है और विभिन्न तरीकों से प्रयास करता है। – Barto