2014-10-08 3 views
2

기계 학습을 처음 사용합니다. MLlib의 의사 결정 트리를 사용하려고합니다.mllib 입력 파일 형식

누군가가 멀티 카테고리 분류를 위해 mllib 결정 트리에 대한 입력 파일을 준비하는 방법을 알려줄 수 있습니까? 입력 mllib에 필요한 내 CSV 파일의이

라벨의 형식은

, 텍스트

label_1, text of label 1 
label_2, text of label 2 
label_3, text of label 3 

형식 libsvm, 또는 labeledpoint이다.
fileformat에 허용 된 텍스트가 없습니다. 질문은 mllib에 필요한 숫자 기반의 파일 형식으로 텍스트를 매핑하고 나중에 결과를 해석하는 방법입니다. 구현을 위해 java를 사용하고 있습니다.

안부

+1

MLLib의 TFIDF 변환을 고려 했습니까? – Anas

답변

0

당신은 csv 파일

public class TokensToLabeledPoints implements Function<String[], LabeledPoint> { 
int responseIndex; 

TokensToLabeledPoints(int index) { 
    this.responseIndex = index; 
} 

@Override 
public LabeledPoint call(String[] tokens) throws Exception { 
    double y = Double.parseDouble(tokens[responseIndex]); 
    double[] x = new double[tokens.length]; 
    for (int i = 0; i < tokens.length; ++i) { 
     if (responseIndex != i) { 
      x[i] = Double.parseDouble(tokens[i]); 
     } 
    } 
    return new LabeledPoint(y, Vectors.dense(x)); 
} 

} 숫자에

0

텍스트 bag of words, tf-idf의 광범위하고 복잡한 주제를 분석하기 위해이 같은 매퍼를 작성해야합니다. 일반적으로 , 당신이 필요합니다

  1. 새로운 어떤 클래스 ID없이 파일 작성 (원본 파일 - 클래스 정보)
  2. 이 어휘를 작성 (세트 단어의 각 기사에 대한 주파수)
  3. 을 원본 파일, 어휘를 기반으로 : 당신은 당신이 일반적으로 더 나은 결과를 제공 기능 공간을 (만들 수 있습니다 TfxIdf 뒤에 주파수와 수학을 기반으로

    label_1, word1, word2,... 
    label_2, word1, word2,... 
    label_3, word1, word2,... 
    
  4. 또한
  5. , 단어의 단지 가방 초 이상)

    label_1, feature1, feature2,... 
    label_2, feature1, feature2,... 
    label_3, feature1, feature2,... 
    
  6. 스파크에서

는보고 : http://spark.apache.org/docs/latest/mllib-feature-extraction.html#tf-idf하거나 word2vec

행운 같은 도구를 사용 할 수 있습니다!