Я выполняю задачу классификации текста. Теперь я хочу использовать ensemble.AdaBoostClassifier
с LinearSVC
как base_estimator
. Однако, когда я пытаюсь запустить код
clf = AdaBoostClassifier(svm.LinearSVC(),n_estimators=50, learning_rate=1.0, algorithm='SAMME.R')
clf.fit(X, y)
Произошла ошибка. TypeError: AdaBoostClassifier with algorithm='SAMME.R' requires that the weak learner supports the calculation of class probabilities with a predict_proba method
Первый вопрос Не может ли svm.LinearSVC()
вычислить вероятности классов? Как подсчитать вероятности?
Затем меняем параметр algorithm
и снова запускаем код.
clf = AdaBoostClassifier(svm.LinearSVC(),n_estimators=50, learning_rate=1.0, algorithm='SAMME')
clf.fit(X, y)
На этот раз TypeError: fit() got an unexpected keyword argument 'sample_weight'
. Как сказано в AdaBoostClassifier, Sample weights. If None, the sample weights are initialized to 1 / n_samples.
Даже если я назначу целое число n_samples
, также возникла ошибка.
Второй вопрос: Что означает n_samples
? Как решить эту проблему?
Надеюсь, что кто-нибудь сможет мне помочь.
Согласно комментарию @jme, однако, после попытки
clf = AdaBoostClassifier(svm.SVC(kernel='linear',probability=True),n_estimators=10, learning_rate=1.0, algorithm='SAMME.R')
clf.fit(X, y)
Программа не может получить результат, и память, используемая на сервере, не изменяется.
Третий вопрос:, как я могу сделать AdaBoostClassifier
работать с SVC
как base_estimator?