2016-08-12 10 views
-4

현재 일부 데이터 (아래 표 참조)를 분석해야합니다. 데이터를 기반으로 예측 된 가치를 원합니다. 그래서, 나는 (scikit-learn에서) 데이터 분석의 알고리즘을 검색하지만 알고리즘을 찾지 못합니다. 내가 이진 값 (예 : 0 또는 1)으로 예측 값을 얻고 싶기 때문에 Linear, SVN 등 알고리즘은 값을 정수 (예 : 평균값)로 예측합니다. 아래 표는 더 자세히 설명되어 있습니다.분류에서 이진 값을 예측하는 방법

[훈련 - 데이터]

age | gender | education | result 
45 | 1 |  9  | Y 
23 | 2 |  12 | Y 
27 | 2 |  9  | N 
31 | 1 |  11 | Y 
45 | 1 |  9  | N 

[예측 - 데이터]

age | gender | education | result 
21 | 1 |  12 | ? 
32 | 2 |  11 | ? 
26 | 1 |  11 | ? 
54 | 1 |  9  | ? 
23 | 2 |  13 | ? 
난 그냥 Y 또는 내가 scikit가 배울 검색 N. ( http://scikit-learn.org/stable/)로 예측 값을 얻으려면

, 그러나 나는 최고의 알고리즘을 모른다. 누가 알았습니까? 감사!

+2

대상 변수'result'가 이진 값을 예측하기 때문에 이진 분류 문제입니다. 'sklearn'에있는 다양한 분류 알고리즘을 검색하여 목적에 맞는 분류 알고리즘을 찾을 수 있습니다. –

+1

아 .. 알겠습니다. 감사합니다 좋은 하루 되세요. – spritecodej

답변

3

sklearn은 all of these을 분류 기준으로 지원합니다.

해석 가능한 모델을 만드는 것이 아이디어라면 LogisticRegression이 최선의 방법 일 수 있습니다.

logit(Result) = b0+b1*age+b2*gender+b3*education의 모델을 만듭니다. 그것은 당신을 위해 b 계수를 추정하고 다음과 같이 해석 할 수 있습니다. 나이가 1 씩 증가하고 고정 된 값을 모두 유지하면 결과는 exp(b1)만큼 증가합니다. 더 많은 것을 here를보십시오.

또한 얼마나 강력한 지 테스트 할 수있는 통계 테스트가 있습니다. 그것은 꽤 멋진 모델이고 계량 경제학에서 널리 사용되지만 선형성을 가정합니다. 예를 들어, 귀하의 result 변수 (의미가 무엇이든)는 젊은 나이보다 노년기에 더 많이 증가 할 수 있습니다. 그래서, 당신은 당신의 나이를 그룹으로 모으고 싶을지도 모릅니다. 또한 비선형 성 때문에 일부 요인이 one-hot encoding 일 수 있습니다.

사용하기 쉬운 모델 인 해석 가능한 것은 DecisionTree입니다. 그러한 나무의 예를 보려면 링크를 참조하십시오. interpretabilitity이 문제가되지 않을 경우

SVM 또는 뭔가 nearest neighbors 같은 또는 neural network 갈 방법이 될 수 있습니다. 일반적으로 데이터 과학자는 nested cross-validation을 사용하여 일련의 매개 변수가있는 모델을 시험해 봅니다. 외부 교차 유효성 검사는 내부 파라미터를 테스트하는 내부 교차 유효성 검사와 함께 여러 모델을 테스트합니다.

아 - 잊어 버렸습니다. 의사 결정 트리와 관련하여 특별히 높은 매개 변수를 미세 조정해야합니다 (다른 매개 변수도 미세 조정해야합니다). 앙상블을 시험해 볼 수도 있습니다. 앙상블은 많은 모델을 만든 다음 모두 민주적으로 예측에 투표하는 것입니다. 대개 정확도가 향상됩니다. 의사 결정 나무의 경우 두 개의 매우 멋진 앙상블은 RandomForestGradient Boosting Trees입니다.

내가 명확히 할 다른 것이 있는지 알려주십시오. 어쨌든 미래에, 1. 지금까지 해보신 점, 2. 정확히하고 싶은 점을 말씀해주십시오. 분류는 데이터 과학에서 필드입니다. 이것은 내가 제공 한 정보로 할 수있는 최선의 방법입니다. :)