2015-02-06 2 views
1

나는 spark.ml 라이브러리와 파이프 라인 기능을 실험 중이다. (기차 및 시험 예) 분할로 SQL 사용에 제한이있는 것 같습니다 : spark.ml 스키마 RDD 떨어져 작동스파크로 SQL과 가중치 사용하기 LogisticRegressionModel

  • 그것은 좋은,하지만 무작위로 분할 스키마에 RDD하는 쉬운 방법이 없습니다 테스트 및 기차 세트. randomSplit (0.6,0.4)를 사용할 수는 있지만 스키마를 잃어 버리는 RDD 어레이가 반환됩니다. 내가 케이스 클래스를 강제로 그것을 RDD 스키마로 변환 할 수는 있지만 많은 기능을 가지고있다. 필터를 사용하고 내 아이디 기능 중 하나를 기반으로 몇 가지 기본 파티션 조건을 사용했습니다. 그 밖의 무엇을 할 수있는 제안?

    • 는 어떻게 모델 가중치를 액세스합니까 : 생성 된 모델에 관해서는

    ? lr 최적화 프로그램과 lr 모델에는 내부적으로 가중치가 있지만 우리에게 어떻게 사용되는지는 분명하지 않습니다.

  • (존재하지 않는 스칼라 지식) 라이브러리의 소스를 통과 한 후
    How do I access the model weights? The lr optimizer and lr model internally has weights but it is unclear how to use them 
    

    ,

    LogisticRegressionModel (spark.ml의 질문의 2의 경우,

+0

합리적인 한 쌍의 질문처럼 보입니다. 저는 mllib에서 작업하고 이해합니다 (아직 답변이 없지만). 가까운 표가 주어진다면 다른 사람들이 동의 할 수 있는지보기 위해 질문을 편집 할 것입니다. – javadba

답변

2

확인)에는 (벡터 유형의) 속성 가중치가 있습니다.

사례 1

당신은 (spark.ml에) LogisticRegressionModel이있는 경우

LogisticRegression lr = new LogisticRegression(); 
LogisticRegressionModel lr1 = lr.fit(df_train); 
System.out.println("The weights are " + lr1.weights()) 

사례 2

당신이 파이프 라인 모델이있는 경우, 먼저 LogisticRegressionModel (변압기)에 의해 사용 얻을 getModel

LogisticRegression lr = new LogisticRegression().setMaxIter(10).setRegParam(0.01); 
    Pipeline pipeline = new Pipeline().setStages(new PipelineStage[] { lr }); 

    PipelineModel model = pipeline.fit(train_df); 
    LogisticRegressionModel lrModel =model.getModel(lr); 
    System.out.println("The model is {}", lrm.weights()); 

정확하지 않거나 나 한테 알려줘.

+0

감사합니다. 내가 물어 본 질문은 Spark 버전 1.2.0에있었습니다. 최신 버전 (1.3.1)부터 모델의 가중치를 설명하는 것은 상당히 쉽습니다. – charmee