Đo độ tương đồng
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 2 trên 51.
Trong k-NN, gần nhất nghĩa là có khoảng cách nhỏ nhất. Để tìm các nhóm, bạn cần tính khoảng cách cho mọi cặp hàng: một bảng khoảng cách. Bốn người bạn chấm điểm cho hai bộ phim, từ 1 đến 10:
ratings = np.array([[9, 2], [8, 3], [2, 9], [3, 7]]) # Ana, Ben, Cy, Dee
n = len(ratings)
table = np.zeros((n, n))
for i in range(n):
table[i] = np.sqrt(((ratings - ratings[i]) ** 2).sum(axis=1))Hàng i lưu khoảng cách từ người bạn i đến mọi người. Đây là table, được minh họa dưới dạng lưới:
Bỏ qua đường chéo số 0, vì mỗi người bạn được so sánh với chính họ. Số nhỏ nhất còn lại là cặp giống nhau nhất, số lớn nhất là cặp khác nhau nhất. Khoảng cách nhỏ thì các hàng tương tự nhau.
Thử thách
DễQuầy nước ép thêm món sinh tố mới của đầu bếp, do chương trình đọc vào, vào thực đơn. Hai món nào giống nhau đến mức có thể bỏ một món? Hai món nào khác nhau nhất để phục vụ trong một lượt nếm thử?
- Lập bảng khoảng cách của
menu. - Tìm cặp giống nhau nhất và cặp khác nhau nhất: mỗi cặp chỉ xuất hiện một lần, không ghép một món sinh tố với chính nó.
- In cả hai cặp, tên theo thứ tự trong thực đơn, khoảng cách lấy 1 chữ số thập phân.
Với một thực đơn khác:
Most alike: Lemon Zing and Lime Twist (14.1 g apart)
Most different: Choco Shake and Cucumber Cool (212.6 g apart)Tự làm thử
import numpy as np
names = ["Berry Blast", "Green Glow", "Mango Lassi", "Kale Kick", "Tropical Sun", "Banana Oat", "Minty Melon"]
# Mỗi loại sinh tố chiếm một hàng, số gam trong mỗi cốc: trái cây, rau xanh, sữa chua
menu = np.array([[180, 0, 120],
[90, 110, 60],
[160, 0, 150],
[60, 150, 30],
[200, 20, 40],
[100, 0, 200],
[170, 40, 0]])
# Công thức mới của đầu bếp được thêm vào thực đơn ở hàng cuối
names.append(input())
new = [int(input()), int(input()), int(input())]
menu = np.concatenate([menu, [new]])
# 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