Menu
CoddyTech

振り返り:街の灯り

CoddyのMachine Learningジャーニー「教師なし学習」セクションの一部。レッスン 23/51。

challenge icon

チャレンジ

中級

DBSCANの谷の地図を覚えていますか?今度は自分で作ってみましょう。衛星が夜の谷を撮影しました。その明かりを町ごとにグループ分けし、単独の明かり(農場、灯台、キャンピングカー)を見つけましょう。プログラムはepsをkm単位で読み込みます。

  1. そのepsとmin_samples=5を使ってDBSCANを実行します。
  2. 町の数、単独の明かりの数、最大の町の規模を出力します。
  3. それらを地図に表示します。各町はそれぞれ別の散布図にして、town of N lightsというラベルを付けます。単独の明かりは灰色のx印で示し、lone lightsというラベルを付け、凡例を表示します。地図を表示しましょう。

別の谷でepsを1.3にした場合:

Towns: 3
Lone lights: 10
Biggest town: 77 lights

Valley at Nightというタイトルのグラフ。77個の明かりがある長く曲がった町、47個の明かりがある丸い町、20個の明かりがある村がそれぞれ別の色で示され、10個の単独の明かりが灰色のx印で示されている。凡例付き。

Coddyがあなたの地図を説明します。次にepsを5にしてみましょう。どの町が合併しますか?

自分で試してみよう

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.cluster import DBSCAN

# 衛星が撮影した谷の夜間写真:光1つにつき1行、位置はkm単位
lights = pd.read_csv("lights.csv")
X = np.column_stack([lights["east_km"], lights["north_km"]])
eps = float(input())

fig, ax = plt.subplots()
ax.set_title("Valley at Night")
ax.set_xlabel("East (km)")
ax.set_ylabel("North (km)")

# 以下にコードを書いてください

教師なし学習のすべてのレッスン

自分で練習してみよう: Pythonオンラインコンパイラ