स्केलर के स्ट्रैटिफाइड केल्ड फ़ंक्शन का उपयोग करके, बहुत से इंडेक्स, क्या कोई मुझे त्रुटि को समझने में मदद कर सकता है?स्ट्रैटिफाइडफॉल्ड: इंडेक्स एरर: सरणी
मेरा अनुमान है कि लेबल के मेरे इनपुट सरणी के साथ इसका कुछ संबंध है, मुझे लगता है कि जब मैं उन्हें प्रिंट करता हूं (इस उदाहरण में पहला 16) इंडेक्सिंग 0 से 15 तक जाता है, लेकिन एक अतिरिक्त 0 ऊपर से मुद्रित होता है मैं उम्मीद नहीं कर रहा था। शायद मैं सिर्फ एक अजगर नोब हूँ, लेकिन यह अजीब लग रहा है।
कोई भी यहां गुम-अप देखता है?
प्रलेखन: http://scikit-learn.org...StratifiedKFold.html
कोड:
import nltk
import sklearn
print('The nltk version is {}.'.format(nltk.__version__))
print('The scikit-learn version is {}.'.format(sklearn.__version__))
print type(skew_gendata_targets.values), skew_gendata_targets.values.shape
print skew_gendata_targets.head(16)
skew_sfold10 = cross_validation.StratifiedKFold(skew_gendata_targets.values, n_folds=10, shuffle=True, random_state=20160121)
परिणाम
The nltk version is 3.1.
The scikit-learn version is 0.17.
<type 'numpy.ndarray'> (500L, 1L)
0
0 0
1 0
2 0
3 0
4 0
5 0
6 0
7 0
8 0
9 0
10 0
11 0
12 0
13 0
14 1
15 0
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-373-653b6010b806> in <module>()
8 print skew_gendata_targets.head(16)
9
---> 10 skew_sfold10 = cross_validation.StratifiedKFold(skew_gendata_targets.values, n_folds=10, shuffle=True, random_state=20160121)
11
12 #print '\nSkewed Generated Dataset (', len(skew_gendata_data), ')'
d:\Program Files\Anaconda2\lib\site-packages\sklearn\cross_validation.pyc in __init__(self, y, n_folds, shuffle, random_state)
531 for test_fold_idx, per_label_splits in enumerate(zip(*per_label_cvs)):
532 for label, (_, test_split) in zip(unique_labels, per_label_splits):
--> 533 label_test_folds = test_folds[y == label]
534 # the test split can be too big because we used
535 # KFold(max(c, self.n_folds), self.n_folds) instead of
IndexError: too many indices for array
प्रिंटआउट आउटपुट में आउटपुट में है: प्रिंट प्रकार (skew_gendata_targets.values), skew_gendata_targets.values.shape, यह एक (500,1) numpy array है। मैं एक मैटलैब जुंकी पाइथन के गड्ढे में फेंक रहा हूं और 500x1 और 500xnada मैट्रिक्स/सरणी/चीज़ी के बीच का अंतर नहीं जानता। कम से कम एक matlab दुनिया में कोई फर्क नहीं पड़ता है। –
हाँ - यह दुर्भाग्यपूर्ण और कुछ हद तक भ्रमित है। '*' जैसे ऑपरेशन करते समय अंतर महत्वपूर्ण है। एक मामले में, पांडस/numpy तत्व-वार गुणा करेगा, जबकि यह दूसरे पर एक मैट्रिक्स गुणा करेगा। आशा है कि StratifiedKFold ऑपरेशन इसे एक (500,) सरणी के साथ coercing के बाद काम किया। – Brian
मैं देखता हूं, मैट्रिक्स को दोबारा बदलना एक matlaber समझ सकता है, ऐसा लगता है कि यह तय किया गया है: np.reshape (skew_gendata_targets.values, [500,]), धन्यवाद !! –