2016-09-21 2 views
1

트랜잭션 데이터에서 MLlib의 FPGrowth를 사용하여 기본 시장 바구니 분석을 수행하려고합니다. 거래 같은 형식이어야하는 나는 코딩 한 : 배열의 개별 번호가 내 제품 ID의 문자열 (같은, 68113132893, 7976503128 등)로 촬영Spark MLlib FPGrowth가 실행 중이지만 자주 항목 집합이 표시되지 않음

transactions.take(3) 
    res632: Array[Array[String]] = Array(Array(7976503128), Array(68113132893, 1800000725, 3120027015, 4850030414, 2100061223, 5150055538, 60538871457), Array(68113174202)) 

. 나는 FPGrowth 모델을 실행하고 때 이제

, 오류없이 실행 :

val fpg = new FPGrowth() 
     .setMinSupport(0.5) 
     .setNumPartitions(10) 
    val modelBuild = fpg.run(transactions) 

    fpg: org.apache.spark.mllib.fpm.FPGrowth = [email protected] 
    modelBuild: org.apache.spark.mllib.fpm.FPGrowthModel[String] = [email protected] 

그러나을 나는 자주 itemsets를 얻기 위해 노력하고 있어요 때, 그것은 빈 배열을 보여주고있다

modelBuild.freqItemsets.collect().foreach { itemset => 
    println(itemset.freq) 
    } 

    res660: Array[org.apache.spark.mllib.fpm.FPGrowth.FreqItemset[String]] = Array() 

무엇이 잘못되었는지를 알 수 없습니다. 도와주세요!

답변

2

minSupport를 0.00001로 줄이면 모든 세트가 인쇄됩니다. Spark 설명서에서 :

minSupport : 항목 집합이 자주 식별되도록 최소 지원. 예를 들어 항목이 5 개의 트랜잭션 중 3 개가 나타나면 3/5 = 0.6을 지원합니다.

관련 문제