回顾:城市灯光
本课属于 Coddy Machine Learning 学习旅程的“无监督学习”单元。第 23 课,共 51 课。
挑战
中等还记得 DBSCAN 的山谷地图吗?现在由你来制作一张。卫星拍摄了夜晚的山谷照片;把灯光分成城镇,并找出零散的灯光:农场、灯塔和露营车。程序会读取以 km 为单位的 eps。
- 使用该 eps 和
min_samples=5运行 DBSCAN。 - 输出城镇数量、零散灯光数量,以及最大城镇的规模。
- 绘制地图:每个城镇单独绘制散点,并标记为
town of N lights;零散灯光用灰色的x标记,并标记为lone lights;添加图例并显示地图。
换一个山谷,并将 eps 设为 1.3:
Towns: 3
Lone lights: 10
Biggest town: 77 lightsCoddy 会描述你的地图。然后试试 eps 5:哪些城镇会合并?
亲手试试
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.cluster import DBSCAN
# 卫星拍摄的山谷夜景照片:每个光点占一行,位置单位为 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 在线编译器