2017-03-28 2 views
0

바이너리 분류에 Spark mlib를 사용하고 있습니다. 나는 3000 장의 사진을 찍은 모형을 훈련 시켰고 그것이 남성이나 여성 1/0이라고 예측할 수 있습니다.바이너리 분류 예측 정확도

final NaiveBayesModel model = NaiveBayes.train(training.rdd(), 1.0); 
JavaRDD predictions = test.map(new Function<Vector, Double>() { 
      @Override 
      public Double call(Vector p) { 
       return model.predict(p); 
      } 
     }); 

나는 사진이 어떤 사람도 포함되지 않는 경우 어떤 질문을해야합니다. 예를 들어 꽃의 그림. 어쨌든 나는 결과를 남성이나 여성에게 줄 것이다. 현재 결정의 정확성을 볼 수있는 방법이 있습니까? 예를 들어, 꽃 그림을 예측하려고하면 Vector는 30 %입니다. 또는 남성/여성/기타와 같이 여러 분류를 사용해야합니까?

답변

0

질문에 진술 한대로, 현재 이진 분류를 수행하도록 모델을 훈련했다면 그게 전부입니다.

  1. 당신이 제안으로, 세 개의 클래스 (male, female, other)을 예측하는 모델을 훈련 : 당신은 적어도 두 개의 서로 다른 일을 할 수 있습니다.
  2. human present/not present 사이에서 예측 한 다음 human present 결과 만 별도의 male/female 분류 자로 전달하는 두 가지 이진 모델을 사용합니다.

이 더 효과적 일 것이다 선행 이야기하기는 어렵습니다,하지만 당신은 mllib을 사용하고 있기 때문에, 그것은 그들에게 모두 아웃을 시도하고 잘 작동하는 하나의 볼 꽤 정직해야한다. 비교할 때 train/validation/test 스플릿을 사용해야합니다.

+0

당신은 '인간 존재/존재하지 않음'과 같은 2 진 분류를하기 위해 모델을 훈련시킨 다음 예측이 '인간 존재'라면 '남성/여성'에 대한 다른 훈련 된 모델을 예측합니까? –

+0

@RuslanLomov 예, 옵션 2의 올바른 해석입니다. – dantiston

관련 문제