Làm thế nào để triển khai thuật toán Find-S trong học máy?



Bài viết này đề cập đến khái niệm thuật toán tìm-s trong học máy. Nó xoay quanh các thuật ngữ giả thuyết khác nhau bằng cách sử dụng một trường hợp sử dụng làm ví dụ.

Trong , học khái niệm có thể được gọi là “ một vấn đề tìm kiếm thông qua một không gian xác định trước của giả thuyết tiềm năng cho giả thuyết phù hợp nhất với các ví dụ đào tạo ”- Tom Mitchell. Trong bài viết này, chúng ta sẽ đi qua một thuật toán học khái niệm được gọi là thuật toán Find-S. Các chủ đề sau đây được thảo luận trong bài viết này.

Thuật toán Find-S trong Học máy là gì?

Để hiểu thuật toán Find-S, bạn cũng cần phải có ý tưởng cơ bản về các khái niệm sau:





  1. Học khái niệm
  2. Giả thuyết chung
  3. Giả thuyết cụ thể

1. Học Khái niệm

Hãy cố gắng hiểu khái niệm học bằng một ví dụ thực tế. Hầu hết việc học tập của con người đều dựa trên những kinh nghiệm hoặc trường hợp đã qua. Ví dụ: chúng tôi có thể xác định bất kỳ loại xe nào dựa trên một tập hợp các đặc điểm nhất định như kiểu dáng, kiểu xe, v.v., được xác định trên một tập hợp lớn các tính năng.



Những tính năng đặc biệt này giúp phân biệt bộ ô tô, xe tải, v.v. với bộ xe lớn hơn. Những tính năng xác định nhóm ô tô, xe tải, v.v. được gọi là khái niệm.

Tương tự như vậy, máy móc cũng có thể học hỏi từ các khái niệm để xác định xem một đối tượng có thuộc một danh mục cụ thể hay không. Bất kì hỗ trợ học khái niệm yêu cầu những điều sau:

  • Dữ liệu đào tạo
  • Khái niệm mục tiêu
  • Đối tượng dữ liệu thực tế

2. Giả thuyết chung



Giả thuyết, nói chung, là một lời giải thích cho một cái gì đó. Giả thuyết tổng quát về cơ bản nói lên mối quan hệ chung giữa các biến chính. Ví dụ, một giả thuyết chung cho việc đặt đồ ăn sẽ là Tôi muốn một cái bánh mì kẹp thịt.

G = {‘?’, ‘?’, ‘?’,… .. ’?’}

3. Giả thuyết cụ thể

Giả thuyết cụ thể điền vào tất cả các chi tiết quan trọng về các biến được đưa ra trong giả thuyết chung. Các chi tiết cụ thể hơn trong ví dụ được đưa ra ở trên sẽ là Tôi muốn một chiếc bánh mì kẹp phô mai với nhân gà pepperoni với nhiều rau diếp.

S = {‘&Phi’,’&Phi’,’&Phi’, ……,’&Phi’}

Bây giờ, hãy nói về Thuật toán Find-S trong Học máy.

Thuật toán Find-S thực hiện theo các bước được viết dưới đây:

  1. Khởi tạo ‘h’ cho giả thuyết cụ thể nhất.
  2. Thuật toán Find-S chỉ xem xét các ví dụ tích cực và loại bỏ các ví dụ tiêu cực. Đối với mỗi ví dụ tích cực, thuật toán sẽ kiểm tra từng thuộc tính trong ví dụ. Nếu giá trị thuộc tính giống với giá trị giả thuyết, thuật toán sẽ tiếp tục mà không có bất kỳ thay đổi nào. Nhưng nếu giá trị thuộc tính khác với giá trị giả thuyết, thuật toán sẽ thay đổi nó thành ‘?’.

Bây giờ chúng ta đã hoàn thành phần giải thích cơ bản về thuật toán Find-S, chúng ta hãy xem cách hoạt động của nó.

Làm thế nào nó hoạt động?

thuật toán lưu đồ-tìm-s trong học máy - edureka

java chuyển đổi nhị phân sang thập phân
  1. Quá trình bắt đầu với việc khởi tạo ‘h’ với giả thuyết cụ thể nhất, nói chung, nó là ví dụ tích cực đầu tiên trong tập dữ liệu.
  2. Chúng tôi kiểm tra từng ví dụ tích cực. Nếu ví dụ là tiêu cực, chúng tôi sẽ chuyển sang ví dụ tiếp theo nhưng nếu là ví dụ tích cực, chúng tôi sẽ xem xét nó cho bước tiếp theo.
  3. Chúng tôi sẽ kiểm tra xem mỗi thuộc tính trong ví dụ có bằng với giá trị giả thuyết hay không.
  4. Nếu giá trị khớp thì không có thay đổi nào được thực hiện.
  5. Nếu giá trị không khớp, giá trị được thay đổi thành ‘?’.
  6. Chúng tôi làm điều này cho đến khi chúng tôi đạt được ví dụ tích cực cuối cùng trong tập dữ liệu.

Hạn chế của thuật toán Find-S

Có một số hạn chế của thuật toán Find-S được liệt kê bên dưới:

  1. Không có cách nào để xác định xem giả thuyết có nhất quán trong toàn bộ dữ liệu hay không.
  2. Các tập huấn luyện không nhất quán thực sự có thể gây hiểu lầm cho thuật toán Find-S, vì nó bỏ qua các ví dụ phủ định.
  3. Thuật toán Find-S không cung cấp kỹ thuật quay lui để xác định những thay đổi tốt nhất có thể có thể được thực hiện để cải thiện giả thuyết kết quả.

Bây giờ chúng ta đã nhận thức được những hạn chế của thuật toán Find-S, chúng ta hãy xem cách triển khai thực tế của Thuật toán Find-S.

Triển khai thuật toán Find-S

Để hiểu việc triển khai, chúng ta hãy thử triển khai nó vào một tập dữ liệu nhỏ hơn với một loạt các ví dụ để quyết định xem một người có muốn đi dạo hay không.

là một mối quan hệ trong java

Khái niệm của vấn đề cụ thể này sẽ là những ngày mà một người thích đi bộ.

Thời gian Thời tiết Nhiệt độ Công ty Độ ẩm Gió Đi
Buổi sángNắngẤm ápĐúngNhạtMạnhĐúng
TốiNhiều mưaLạnhKhôngNhạtBình thườngKhông
Buổi sángNắngVừa phảiĐúngBình thườngBình thườngĐúng
TốiNắngLạnhĐúngCaoMạnhĐúng

Nhìn vào tập dữ liệu, chúng ta có sáu thuộc tính và một thuộc tính cuối cùng xác định ví dụ tích cực hoặc tiêu cực. Trong trường hợp này, vâng là một ví dụ tích cực, có nghĩa là người đó sẽ đi dạo.

Vì vậy, bây giờ, giả thuyết chung là:

h0= {'Buổi sáng', 'Nắng', 'Ấm áp', 'Có', 'Nhẹ', 'Mạnh mẽ'}

Đây là giả thuyết chung của chúng tôi, và bây giờ chúng tôi sẽ xem xét từng ví dụ một, nhưng chỉ những ví dụ tích cực.

hmột= {‘Buổi sáng’, ‘Trời nắng’, ‘?’, ‘Có’, ‘?’, ‘?’}

h2= {‘?’, ‘Sunny’, ‘?’, ‘Yes’, ‘?’, ‘?’}

Chúng tôi thay thế tất cả các giá trị khác nhau trong giả thuyết chung để có được giả thuyết kết quả. Bây giờ chúng ta đã biết cách hoạt động của thuật toán Find-S, chúng ta hãy xem cách triển khai bằng cách sử dụng Python .

Trường hợp sử dụng

Hãy thử triển khai ví dụ trên bằng cách sử dụng . Mã để triển khai thuật toán Find-S sử dụng dữ liệu trên được đưa ra dưới đây.

nhập gấu trúc dưới dạng pd nhập numpy dưới dạng np # để đọc dữ liệu trong tệp csv data = pd.read_csv ('data.csv') print (data, 'n') # tạo một mảng gồm tất cả các thuộc tính d = np.array (data) [:,: - 1] print ('n Các thuộc tính là:', d) #segrarating đích có các ví dụ tích cực và tiêu cực target = np.array (data) [:, - 1] print ('n Mục tiêu là: ', target) #training hàm để thực hiện thuật toán find-s def train (c, t): for i, val in enumerate (t): if val ==' Yes ​​': specific_hypothesis = c [i]. copy () break for i, val in enumerate (c): if t [i] == 'Yes': for x in range (len (specific_hypothesis)): if val [x]! = specific_hypothesis [x]: specific_hypothesis [ x] = '?' else: pass return specific_hypothesis #obtained in giả thuyết cuối cùng ('n Giả thuyết cuối cùng là:', train (d, target))

Đầu ra:

Phần này đưa chúng ta đến phần cuối của bài viết này, nơi chúng ta đã học được Thuật toán Tìm-S trong Machine Học với trường hợp thực hiện và sử dụng của nó. Tôi hy vọng bạn rõ ràng với tất cả những gì đã được chia sẻ với bạn trong hướng dẫn này.

Nếu bạn thấy bài viết này về “Thuật toán Find-S trong Máy học” có liên quan, hãy xem một công ty học trực tuyến đáng tin cậy với mạng lưới hơn 250.000 người học hài lòng trải dài trên toàn cầu.

Chúng tôi ở đây để giúp bạn từng bước trên hành trình của mình và đưa ra một chương trình giảng dạy được thiết kế cho sinh viên và các chuyên gia muốn trở thành . Khóa học được thiết kế để cung cấp cho bạn khởi đầu mới về lập trình Python và đào tạo bạn về cả khái niệm Python cốt lõi và nâng cao cùng với nhiều giống , , Vân vân.

Nếu bạn có bất kỳ câu hỏi nào, vui lòng đặt tất cả câu hỏi của bạn trong phần nhận xét của “Thuật toán Tìm-S trong Máy học” và nhóm của chúng tôi sẽ sẵn lòng trả lời.