Python tính toán khoảng cách như thế nào?

Chúng cung cấp nền tảng cho nhiều thuật toán học máy phổ biến và hiệu quả như k-hàng xóm gần nhất cho học có giám sát và phân cụm k-mean cho học không giám sát

Các biện pháp khoảng cách khác nhau phải được chọn và sử dụng tùy thuộc vào loại dữ liệu. Như vậy, điều quan trọng là phải biết cách thực hiện và tính toán một loạt các thước đo khoảng cách phổ biến khác nhau và trực giác cho điểm số thu được.

Trong hướng dẫn này, bạn sẽ khám phá các phép đo khoảng cách trong học máy

Sau khi hoàn thành hướng dẫn này, bạn sẽ biết

  • Vai trò và tầm quan trọng của thước đo khoảng cách trong thuật toán học máy
  • Cách thực hiện và tính toán các phép đo khoảng cách Hamming, Euclidean và Manhattan
  • Cách thực hiện và tính toán khoảng cách Minkowski tổng quát hóa các phép đo khoảng cách Euclide và Manhattan

Bắt đầu dự án của bạn với cuốn sách mới của tôi Machine Learning Mastery With Python, bao gồm các hướng dẫn từng bước và các tệp mã nguồn Python cho tất cả các ví dụ

Bắt đầu nào

Đo khoảng cách cho máy học
Ảnh của Hoàng tử Roy, bảo lưu một số quyền.

Hướng dẫn tổng quan

Hướng dẫn này được chia thành năm phần;

  1. Vai trò của thước đo khoảng cách
  2. Khoảng cách hamming
  3. Khoảng cách Euclide
  4. Khoảng cách Manhattan [Taxicab hoặc City Block]
  5. Khoảng cách Minkowski

Vai trò của thước đo khoảng cách

Các biện pháp khoảng cách đóng một vai trò quan trọng trong học máy

Thước đo khoảng cách là điểm số khách quan tóm tắt sự khác biệt tương đối giữa hai đối tượng trong một miền vấn đề

Thông thường nhất, hai đối tượng là các hàng dữ liệu mô tả một chủ đề [chẳng hạn như người, ô tô hoặc nhà] hoặc một sự kiện [chẳng hạn như mua hàng, khiếu nại hoặc chẩn đoán]

Có lẽ cách có nhiều khả năng nhất mà bạn sẽ gặp phải các phép đo khoảng cách là khi bạn đang sử dụng một thuật toán học máy cụ thể sử dụng các phép đo khoảng cách làm cốt lõi của nó. Thuật toán nổi tiếng nhất thuộc loại này là thuật toán k-láng giềng gần nhất, viết tắt là KNN

Trong thuật toán KNN, dự đoán phân loại hoặc hồi quy được thực hiện cho các ví dụ mới bằng cách tính khoảng cách giữa ví dụ mới [hàng] và tất cả các ví dụ [hàng] trong tập dữ liệu huấn luyện. Các ví dụ k trong tập dữ liệu huấn luyện có khoảng cách nhỏ nhất sau đó được chọn và dự đoán được đưa ra bằng cách lấy trung bình kết quả [chế độ của nhãn lớp hoặc giá trị trung bình của giá trị thực cho hồi quy]

KNN thuộc về một lĩnh vực thuật toán rộng lớn hơn được gọi là học tập dựa trên trường hợp hoặc trường hợp, hầu hết trong số đó sử dụng các phép đo khoảng cách theo cách tương tự. Một thuật toán dựa trên trường hợp phổ biến khác sử dụng các phép đo khoảng cách là lượng tử hóa vectơ học tập, hay LVQ, thuật toán cũng có thể được coi là một loại mạng thần kinh

Liên quan là thuật toán bản đồ tự tổ chức, hay SOM, cũng sử dụng các phép đo khoảng cách và có thể được sử dụng cho học tập có giám sát hoặc không giám sát. Một thuật toán học tập không giám sát khác sử dụng các phép đo khoảng cách làm cốt lõi của nó là thuật toán phân cụm K-means

Trong học tập dựa trên cá thể, các ví dụ đào tạo được lưu trữ nguyên văn và một hàm khoảng cách được sử dụng để xác định thành viên nào của tập huấn luyện gần nhất với một cá thể thử nghiệm chưa biết. Khi phiên bản đào tạo gần nhất đã được định vị, lớp của nó được dự đoán cho phiên bản thử nghiệm

— Trang 135, Khai thác dữ liệu. Công cụ và kỹ thuật học máy thực hành, tái bản lần thứ 4, 2016

Dưới đây là danh sách ngắn về một số thuật toán học máy phổ biến sử dụng thước đo khoảng cách làm cốt lõi

  • K-Hàng xóm gần nhất
  • Học lượng tử hóa véc tơ [LVQ]
  • Bản đồ tự tổ chức [SOM]
  • Phân cụm K-Means

Có nhiều phương pháp dựa trên kernel cũng có thể được coi là thuật toán dựa trên khoảng cách. Có lẽ phương pháp kernel được biết đến rộng rãi nhất là thuật toán máy vector hỗ trợ, viết tắt là SVM.

Bạn có biết thêm các thuật toán sử dụng thước đo khoảng cách không?
Hãy cho tôi biết trong phần nhận xét bên dưới.

Khi tính toán khoảng cách giữa hai ví dụ hoặc hàng dữ liệu, có thể các loại dữ liệu khác nhau được sử dụng cho các cột khác nhau của ví dụ. Một ví dụ có thể có giá trị thực, giá trị boolean, giá trị phân loại và giá trị thứ tự. Các phép đo khoảng cách khác nhau có thể được yêu cầu cho mỗi phép đo được tổng hợp thành một điểm khoảng cách duy nhất

Các giá trị số có thể có các tỷ lệ khác nhau. Điều này có thể ảnh hưởng lớn đến việc tính toán thước đo khoảng cách và thông thường nên bình thường hóa hoặc chuẩn hóa các giá trị số trước khi tính toán thước đo khoảng cách

Lỗi số trong các bài toán hồi quy cũng có thể được coi là một khoảng cách. Ví dụ: sai số giữa giá trị dự kiến ​​và giá trị dự đoán là thước đo khoảng cách một chiều có thể được tính tổng hoặc lấy trung bình trên tất cả các ví dụ trong tập kiểm tra để đưa ra khoảng cách tổng giữa kết quả dự kiến ​​và kết quả dự đoán trong tập dữ liệu. Việc tính toán sai số, chẳng hạn như sai số bình phương trung bình hoặc sai số tuyệt đối trung bình, có thể giống với phép đo khoảng cách tiêu chuẩn

Như chúng ta có thể thấy, các phép đo khoảng cách đóng một vai trò quan trọng trong học máy. Có lẽ bốn trong số các thước đo khoảng cách được sử dụng phổ biến nhất trong học máy như sau

  • Khoảng cách hamming
  • Khoảng cách Euclide
  • Khoảng cách Manhattan
  • Khoảng cách Minkowski

Một số thước đo khoảng cách khác mà bạn đã sử dụng hoặc đã nghe nói đến là gì?
Hãy cho tôi biết trong phần nhận xét bên dưới.

Bạn cần biết cách tính toán từng thước đo khoảng cách này khi triển khai các thuật toán từ đầu và trực giác về những gì đang được tính toán khi sử dụng các thuật toán sử dụng các thước đo khoảng cách này

Chúng ta hãy lần lượt xem xét kỹ hơn từng

Khoảng cách hamming

Khoảng cách Hamming tính toán khoảng cách giữa hai vectơ nhị phân, còn được gọi tắt là chuỗi nhị phân hoặc chuỗi bit

Rất có thể bạn sẽ gặp phải các chuỗi bit khi bạn mã hóa một lần nóng các cột dữ liệu phân loại

Ví dụ: nếu một cột có các danh mục 'đỏ', 'xanh lá cây' và 'xanh dương', bạn có thể mã hóa nóng từng ví dụ dưới dạng chuỗi bit với một bit cho mỗi cột

  • đỏ = [1, 0, 0]
  • xanh lục = [0, 1, 0]
  • màu xanh = [0, 0, 1]

Khoảng cách giữa màu đỏ và màu xanh lá cây có thể được tính bằng tổng hoặc số chênh lệch bit trung bình giữa hai chuỗi bit. Đây là khoảng cách Hamming

Đối với chuỗi được mã hóa một lần, có thể hợp lý hơn khi tóm tắt thành tổng chênh lệch bit giữa các chuỗi, giá trị này sẽ luôn là 0 hoặc 1

  • HammingDistance = tổng cho i đến N abs[v1[i] – v2[i]]

Đối với các chuỗi bit có thể có nhiều bit 1, thông thường sẽ tính toán số chênh lệch bit trung bình để cho điểm khoảng cách hamming giữa 0 [giống hệt nhau] và 1 [tất cả đều khác nhau]

  • HammingDistance = [tổng của i đến N abs[v1[i] – v2[i]]] / N

Chúng ta có thể chứng minh điều này bằng một ví dụ tính toán khoảng cách Hamming giữa hai chuỗi bit, được liệt kê bên dưới

1

2

3

4

5

6

7

8

9

10

11

12

# tính khoảng cách hamming giữa các chuỗi bit

 

# tính khoảng cách hamming

def hamming_ distance[a, b]:

return sum[abs[e1 - e2] for e1, e2 in zip[a, b]] / len[a]

 

# xác định dữ liệu

row1 = [0, 0, 0, 0, 0, 1]

row2 = [0, 0, 0, 0, 1, 0]

# tính khoảng cách

dist = hamming_ distance[row1, row2]

in[dist]

Chạy ví dụ báo cáo khoảng cách Hamming giữa hai bitstrings

Chúng ta có thể thấy rằng có 2 sự khác biệt giữa các chuỗi hoặc 2 trong số 6 vị trí bit khác nhau, tính trung bình [2/6] là khoảng 1/3 hoặc 0. 333

1

0. 3333333333333333

Chúng ta cũng có thể thực hiện phép tính tương tự bằng cách sử dụng hàm minkowski_ distance[] từ SciPy. Ví dụ đầy đủ được liệt kê dưới đây

Làm thế nào để Python tính toán số dặm?

Mã để tính Dặm trên mỗi gallon bằng chương trình Python .
dặm = đầu vào ["Nhập số dặm lái xe. "]
dặm = float[dặm]
gallon = input["Nhập gallon đã sử dụng. "]
gallon = phao [gallon]
mile_per_gallon = dặm / gallon
print["Dặm trên gallon. ", các hình ảnh được nhìn thấy là đại diện duy nhất]

Làm cách nào để tính khoảng cách giữa hai tọa độ trong Python?

phương thức dist[] trong Python được sử dụng cho khoảng cách Euclide giữa hai điểm p và q, mỗi điểm được cung cấp dưới dạng một chuỗi tọa độ [hoặc có thể lặp lại]. Hai điểm phải có cùng chiều. Phương pháp này là mới trong Python phiên bản 3. 8. trả lại. khoảng cách Euclide được tính toán giữa các điểm đã cho.

Công thức tính quãng đường là gì?

Tìm hiểu cách tìm khoảng cách giữa hai điểm bằng cách sử dụng công thức khoảng cách, đây là một ứng dụng của định lý Pythagore. Chúng ta có thể viết lại định lý Pytago dưới dạng d=√[[x_2-x_1]²+[y_2-y_1]²] để tìm khoảng cách giữa hai .

Chủ Đề