Advanced Analytics from Spark #3 協調フィルタリング #3

2つ前のブログの続きだが、AUCの計算をspark-shellから行うようにする。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
Advanced Analytics with Sparkで注意すべきは、RunRecommenderのScalaコードは、第1版と改訂第2版では異なることに注意が必要(日本語版は、第1版に基づいて翻訳されている)。
念の為、明示的にMLlibの交互最小二乗法アルゴリズムALSをインポート

次に、

https://github.com/sryza/aas/blob/1st-edition/ch03-recommender/src/main/scala/com/cloudera/datascience/recommender/RunRecommender.scala
はじめにbuildRatings()関数を入力し、

そして、areaUnderCurve()関数を入力

続いて、

そして、

で、aucがおよそ0.96として算定された!
次に、全ユーザーによって最も再生されたアーティストのノンパーソナライズ・レコメンデーションについて、predictMostListened()関数を入力し、AUCを求めると、

0.93 と算定された。
もうひと踏ん張り、ハイパーパラメータの選択のアルゴリズムを試すと、

これはたいへんな時間がかかったが、

と出力結果が得られた。
最後に、100人のユーザーに対するレコメンデーションは、