Sparkling Water: Spark+H2O #1

Mastering Machine Learning with Spark 2.xを学習する。
———————————————————

———————————————————
まずはサンプルコードを以下のGitHubサイトからダウンロード。
https://github.com/PacktPublishing/Mastering-Machine-Learning-with-Spark-2.x
記載の通り、gradleでビルド

Ch02: ヒッグス粒子(Higgs-Boson Particle)の解析:
まずは、datasetをUCIの機械学習サイトからダウンロード:
https://archive.ics.uci.edu/ml/datasets/HIGGS
8Gの巨大なHIIGGS.csvを得る。
このファイルは、データが0-background noiseなのか、1-Higgs-Bosonのシグナルなのかを1千100万個、記録することを含む29フィールドで構成される。
Field #1: Class label(0-background noiseなのか、1-Higgs-Boson)
Field #2-#22: “low-level” feastures 衝突検知器からのシグナル
Field #23-29: 7つの”high-level features” 素粒子物理学者による0-background noiseなのか、1-Higgs-Bosonのシグナルなのかを分類するもの。

このファイルをHDFSへコピーする

Buildしたサンプルコードから、utils/build/libs/astering-ml-w-spark-utils_*.jarファイル3つを/opt/spark-2.3.1-bin-hadoop2.7/jarsにコピーしておく。
注:理由はcom.packtpub:mastering-sml-w-spark-utils:1.0.0がパッケージロードできないことと、import org.apache.spark.uilts.Tabulizer._も使えないため。

HDFSに保存したHIGGS.csvデータをRDD rawDataへ収める。

rawDataのデータ数をカウントしておく。1千百万個!

rawDataの始めの2つを表示させると:

RDD[Array[Double]]として、各データをArrayに収める。

フィールド#1のデータを整数として、RDD responseへ収め、フィールド#2以下をRDD Vectorとしてfeaturesへ収める

featuresの統計学的データを求めるために、RowMatirx()とcomputeColumnSummaryStatistics()を用いて:

ビルドしたutilsのjarライブラリーをインポートして、Table形式表示機能を使う:

featuresの平均値、分散を求める。

ゼロデータのフィールドをカウントする:

行数、列数を確認:

sparsity希薄さ、まばらさの評価:ゼロのない頻度

responseには、0か1か、頻度チェック: