始める無料で始める

支配的な色を表示する

matplotlibimage クラスの imread() 関数を使って、次の画像を読み込み済みです。

支配的な色を表示するには、クラスタ中心の色を生の値に戻し、その後次の式を使って 0〜1 の範囲に変換します。 converted_pixel = standardized_pixel * pixel_std / 255

RGB 値は DataFrame batman_df に格納されています。スケーリング後の RGB 値は scaled_redscaled_bluescaled_green の各列に入っています。クラスタ中心は変数 cluster_centers に保存されており、kmeans() 関数でクラスタ数 3 として算出しています。

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

Pythonで学ぶクラスタ分析

コースを見る

演習の手順

  • DataFrame から各色の標準偏差を取得し、r_stdg_stdb_std に格納します。
  • 各クラスタ中心について、標準化済みの RGB 値を 0〜1 の範囲のスケール値に変換します。
  • クラスタ中心の色を表示します。

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

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

# Get standard deviations of each color
____, ____, ____ = batman_df[['red', 'green', 'blue']].___()

for cluster_center in cluster_centers:
    scaled_r, scaled_g, scaled_b = cluster_center
    # Convert each standardized value to scaled value
    colors.append((
        scaled_r * ____ / ____,
        scaled_g * ____ / ____,
        scaled_b * ____ / ____
    ))

# Display colors of cluster centers
plt.____(____)
plt.show()
コードを編集して実行