Cụm sao
Thuộc phần Học không giám sát trong hành trình Machine Learning của Coddy. Bài học 50 trên 51.
Một câu lạc bộ thiên văn đã chụp ảnh một vùng trời. Một số ngôi sao trong số 225 ngôi sao thuộc cùng một nhóm, được sinh ra trong cùng một đám mây; số còn lại là những ngôi sao xa lạ ở phía trước hoặc phía sau:
Cả hai vị trí đều tính bằng phút cung, cùng một đơn vị, nên eps là khoảng cách trên ảnh.
Câu lạc bộ muốn biết từng cụm và kích thước của chúng, không tính các ngôi sao đơn lẻ ngoài đồng. Liệu k-means có làm tốt như vậy không?
Thử thách
KhóChương trình đọc eps; phần code khởi đầu thiết lập hai bản đồ, left và right.
- Chạy DBSCAN với eps đó và
min_samples=5trên hai vị trí. In ra các cụm và các ngôi sao ngoài vùng (nhãn -1). - Khớp k-means với số cụm tương ứng (
n_init=10,random_state=0). In ra cụm lớn nhất và nhỏ nhất của mỗi phương pháp. - Trên
left, vẽ các cụm DBSCAN, vớicluster 1là cụm lớn nhất, sau đó vẽ cácfield starsmàu xám. Trênright, vẽ các cụm k-means, đánh số theo cùng cách. Hiển thị chú giải.
Với một bức ảnh khác và eps bằng 2.5:
DBSCAN: 3 clusters and 29 field stars
Biggest cluster: 63 stars by DBSCAN, 77 by k-means
Smallest cluster: 41 stars by DBSCAN, 48 by k-meansvà các bản đồ của ảnh đó:
Sau đó Coddy mô tả kết quả của bạn. Bạn tin tưởng phương pháp nào hơn khi xử lý các ngôi sao ngoài vùng?
Tự làm thử
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.cluster import DBSCAN, KMeans
# Mỗi ngôi sao trong ảnh chiếm một hàng: vị trí (phút cung) và độ sáng (cấp sao)
field = pd.read_csv("field.csv")
eps = float(input())
# Hai biểu đồ đặt cạnh nhau: DBSCAN bên trái, k-means bên phải
fig, axs = plt.subplots(1, 2, figsize=(10, 4))
left = axs[0]
right = axs[1]
left.set_title("DBSCAN")
right.set_title("k-means")
for ax in axs:
ax.set_xlabel("x (arcmin)")
ax.set_ylabel("y (arcmin)")
# Viết code của bạn bên dưới
Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Học không giám sát
1Tìm các nhóm
Học không cần nhãnĐo độ tương đồngTự thực hiện K-MeansK-Means trong scikit-learnÔn tập: thành viên phòng gym7PCA trong thực tế
Quan sát 64 chiềuCác thành phần như mẫu hìnhNén và dựng lạiPCA trước khi xây dựng mô hìnhÔn tập: máy quét khuôn mặt10Dự án: Khám phá chữ số
Quan sát các chữ sốThu gọn bằng PCAPhân cụm chữ sốĐặt tên cho các cụmTìm những chữ số khác biệt2Chọn k
Quán tínhPhương pháp khuỷu tayĐiểm số SilhouetteChuẩn hóa thang đo trước khi phân cụmÔn tập: Các vùng giao hàngTự luyện tập: Trình biên dịch Python online