바이너리 분류 문제에 대해 scikit learn (LinearSVC)의 선형 SVM을 사용합니다. LinearSVC는 예측 된 레이블과 의사 결정 점수를 줄 수 있지만 확률 추정치 (레이블 신뢰도)를 원했습니다. 선형 커널을 사용하는 sklearn.svm.SVC와 비교하여 속도 때문에 LinearSVC를 계속 사용하고자합니다. 의사 결정 점수를 확률로 변환하는 데 Logistic 함수를 사용하는 것이 합리적입니까?LinearSVC의 결정 함수를 확률로 변환하기 (Scikit learn python)
import sklearn.svm as suppmach
# Fit model:
svmmodel=suppmach.LinearSVC(penalty='l1',C=1)
predicted_test= svmmodel.predict(x_test)
predicted_test_scores= svmmodel.decision_function(x_test)
는 I는 확률 추정치를 획득하는 것이 합리적 있는지 확인하고자 단순히 [1/(1 + EXP (-x))] X가 결정 점수이다.
다른 방법으로는이 작업을 효율적으로 수행하는 데 사용할 수있는 분류 기준이 있습니까?
감사합니다.
는 응답을 @greeness 감사드립니다. 당신이 위에서 말한 모든 것은 완전한 의미를 갖습니다. 나는 그것을 대답으로 받아 들였습니다. 그러나 다른 분류 기준을 사용하지 않는 이유는 속도가 일반적으로 sklearn.svm.LinearSVC보다 훨씬 적기 때문입니다. 나는 더 많은 것을 계속 찾고있을 것이고, 무언가를 찾으면 여기에서 업데이트 할 것이다. – chet
'LinearSVC'를 구현하는 Liblinear에 내장되어 있지 않고 또한'LogisticRegression'이 이미 사용 가능하기 때문에 사용할 수 없다. SVM + 플래트 스케일링은 직선적 인 LR에 비해 몇 가지 이점을 가질 수 있습니다. 'SVC'의 Platt 스케일링은 LibSVM에서 나옵니다. –
@larsmans 주석에 감사드립니다. – greeness