始める無料で始める

K-means の学習

RDD の学習準備ができたので、この第2部では計算時間を節約するために k を 13 から 16 まで試し、elbow 法で適切な k を選びます。elbow 法の考え方は、異なる k の値で K-means クラスタリングを実行し、Within Set Sum of Squared Error(WSSSE)を計算して、WSSSE が急に減少する、つまり「肘」が現れる地点に基づいて最適な k を選ぶことです。次に、その最適な k でモデルを再学習し、最後にセントロイド(クラスタ中心)を取得します。

作業スペースには、SparkContext scrdd_split_int RDD がすでに用意されています。

この演習はコースの一部です

PySparkで学ぶBig Data入門

コースを見る

演習の手順

  • k を 13 から 16 として KMeans モデルを学習し、各クラスタの WSSSE を出力します。
  • 最適な k で KMeans モデルを再学習します。
  • 最適な k で学習した KMeans モデルのクラスタ中心(セントロイド)を取得します。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Train the model with clusters from 13 to 16 and compute WSSSE
for clst in range(13, 17):
    model = KMeans.____(rdd_split_int, clst, seed=1)
    WSSSE = rdd_split_int.____(lambda point: error(point)).reduce(lambda x, y: x + y)
    print("The cluster {} has Within Set Sum of Squared Error {}".format(clst, ____))

# Train the model again with the best k
model = KMeans.train(rdd_split_int, k=____, seed=1)

# Get cluster centers
cluster_centers = model.____
コードを編集して実行