#python #jupyter-notebook #decision-tree
#python #jupyter-notebook #дерево решений
Вопрос:
Я создаю дерево решений с помощью JuPyter notebook, и когда я начал создавать решение и вводить функции и целевой класс, jupyter выдал мне эту ошибку, которая находится в этой ячейке для дерева решений. dt = c.fit(X_train, y_train)
Это ошибка.
TypeError
Traceback (most recent call last)
<ipython-input-10-0f9186b7935c> in <module>()
----> 1 dt = c.fit(X_train, y_train)
~Anaconda3libsite-packagessklearntreetree.py in fit(self, X, y, sample_weight, check_input, X_idx_sorted)
788 sample_weight=sample_weight,
789 check_input=check_input,
--> 790 X_idx_sorted=X_idx_sorted)
791 return self
792
~Anaconda3libsite-packagessklearntreetree.py in fit(self, X, y, sample_weight, check_input, X_idx_sorted)
138
139 if is_classification:
--> 140 check_classification_targets(y)
141 y = np.copy(y)
142
~Anaconda3libsite-packagessklearnutilsmulticlass.py in check_classification_targets(y)
167 y : array-like
168 """
--> 169 y_type = type_of_target(y)
170 if y_type not in ['binary', 'multiclass', 'multiclass-multioutput',
171 'multilabel-indicator', 'multilabel-sequences']:
~Anaconda3libsite-packagessklearnutilsmulticlass.py in type_of_target(y)
286 return 'continuous' suffix
287
--> 288 if (len(np.unique(y)) > 2) or (y.ndim >= 2 and len(y[0]) > 1):
289 return 'multiclass' suffix # [1, 2, 3] or [[1., 2., 3]] or [[1, 2]]
290 else:
~Anaconda3libsite-packagesnumpylibarraysetops.py in unique(ar, return_index, return_inverse, return_counts, axis)
221 ar = np.asanyarray(ar)
222 if axis is None:
--> 223 return _unique1d(ar, return_index, return_inverse, return_counts)
224 if not (-ar.ndim <= axis < ar.ndim):
225 raise ValueError('Invalid axis kwarg specified for unique')
~Anaconda3libsite-packagesnumpylibarraysetops.py in _unique1d(ar, return_index, return_inverse, return_counts)
281 aux = ar[perm]
282 else:
--> 283 ar.sort()
284 aux = ar
285 flag = np.concatenate(([True], aux[1:] != aux[:-1]))
TypeError: '<' not supported between instances of 'str' and 'float'
Я в замешательстве, потому что моя функция набора данных чистая, это все Int и целевой класс в единственной категории.
Может кто-нибудь сказать мне, что происходит и что сделать, чтобы dt = c.fit(X_train, y_train)
это сработало? c = DecisionTreeClassifier(min_samples_split=100)
c — это классификатор дерева решений.
Комментарии:
1. Попробуйте использовать кодировщик меток в столбце Courses, а затем подогнать дерево.
2. Я столкнулся с ситуацией, когда подгонка к DecisionTreeClassifier успешно выполнялась в Jupyter, затем, когда я экспортировал код Python и запустил его, я получил вышеупомянутую ошибку только с str и int.