Phân loại động vật trong vườn thú
be HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG KHOA CÔNG NGHỆ THÔNG TIN Bài tập lớn Kho Dữ Liệu Và Khai Phá Dữ Liệu Đề tài mining: PHÂN LOẠI ĐỘNG VẬT TRONG VƯỜN THÚ Giảng viên: Nguyễn Quỳnh Chi Nhóm Lớp : D07HTTT1 1.Mục đích Trong vườn thú có nhiều loại động vật với đặc điểm khác Nhiệm vụ toán Phân Loại loại động vật vườn thú xem chúng thuộc lớp lớp: động vật có vú, chim, bò sát, cá, lưỡng cư, côn trùng, không xương sống ? Dựa vào sở liệu thu thú đặc điểm chúng ,chúng ta xây dựng ( sử dụng thuật toán J48 – tương tự C4.5 ) dùng tool WEKA, từ ta suy luật để phân loại thú Trên sở ta kiểm tra xem luật xây dựng có hay không cách sử dụng tập vật biết trước lớp, áp dụng luật xây dựng để xem chúng thuộc lớp ,nếu kết trùng với loại ban đầu ta kết luận luật Từ luật thu áp đụng đế dự đoán xem vật hay vật chưa biết thuộc loài nào? Trên sở để có phương pháp nuôi dưỡng hay nghiên cứu … phục vụ nhu cầu người Mô tả liệu Tập liệu Zoo.arff thu thập qua việc khảo sát nhiều vật khác vườn thú Mapperley Nottingham Richard Forsyth cộng ,ngày 5/15/1990.Dữ liệu loại động vật với đặc điểm có tóc, lông vũ, có sữa, trứng, không, nước, có nọc độc… để rút kết luận động vật có vú, chim, bò sát, cá, lưỡng cư, côn trùng, không xương sống… Tập liệu Zoo.arff có 101 mẩu với 18 thuộc tính( thuộc tính phân lớp) có tập liệu Bảng miêu tả tên, kiểu dử liệu, giá trị thuộc tính: Stt Tên thuộc tính 10 11 12 13 animal name hair feathers eggs milk airborne aquatic predator toothed backbone breathes venomous fins Kiểu dử liệu Các giá trị Nominal Nominal Nominal Nominal Nominal Nominal Nominal Nominal Nominal Nominal Nominal Nominal Unique for each instance True, false True, false True, false True, false True, false True, false True, false True, false True, false True, false True, false True, false 14 15 16 17 18 legs tail domestic catsize type Nominal Nominal Nominal Nominal Nominal Numeric( set of value: {0,2,4,6,8} ) True, false True, false True, false Numeric( interger values in range [1,7] ) Ý nghĩa thuộc tính bối cảnh tập dử liệu 1) Animal name: Unique for each instance 2) Hair: true/false 3) Feathers: true/false 4) Eggs: true/false 5) Milk: true/false 6) Airborne: true/false 7) Aquatic: true/false 8) Predator: true/ false 9) Toothed: true/false 10) Backbone: true/false 11) Breathes: true/false 12) Venomous: true/false 13) Fins: true/false 14) legs: numeric 15) tail: true/ false 16) domestic : true/false 17) catsize: true/false 18) type: numeric 3.Tiền xử lý liệu Dữ liệu làm Không có giá trị thiếu tập dử liệu Thuộc tính phân lớp thuộc tính 18 (type) Tỉ lệ phân lớp là: o Mammal : 41 o Bird : 20 o Reptile : o Fish : 13 1) Tên vật: Mỗi tên định danh cho vật 2) Tóc : có, không 3) Lông vũ : có, không 4) Đẻ trứng: có, không 5) Sữa: có, không 6) Sống cạn: đúng, sai 7) Sống nước: đúng, sai 8) Là côn trùng: đúng, sai 9) Có răng: có, không 10) Có xương sống: có, không 11) Hô hấp: có, không 12) Có nọc độc: có, không 13) Có cánh: có cánh, không 14) Số chân: {0,2,4,6,8} 15) Đuôi: có, không 16) Có gia đình : có, không 17) Catsize 18) Loại lớp ( giá trị số nguyên dải [1,7]) o Amphibian : o Insert : o Invertebrate : 10 Chạy tool WEKA Phân tích dùng WEKA a Vấn đề trọng tâm : Xuất phát từ nhận định trên, đồ án nhắm tới mục đích đưa phương pháp phân loại linh hoạt hơn, thuyết phục Yêu cầu phương pháp đảm nhận tốt vai trò cố vấn, hỗ trợ chuyên viên tín dụng việc đưa định cho vay, xử lý dựa thông tin (có thể chưa đầy đủ) từ khách hàng từ mẫu thống kê đáng tin cậy b.Chi tiết thuật toán C4.5 áp dụng : b1.Đôi nét giải thuật C4.5 : C4.5 thuật toán dùng để xây dựng định được đề xuất Ross Quinlan C4.5 mở rộng thuật toán ID3, với số cải tiến: cho phép liệu đầu vào thuộc tính liên tục cho phép thao tác với thuộc tính có liệu không xác định (do bị mát liệu, …) đưa phương pháp “cắt tỉa” giản lược luật để phù hợp với liệu lớn b2.Mô hình định Các nút định bao gồm loại: _ nút lá: nút tương ứng với class, thuộc tính dùng để phân loại, phân loại trường hợp mới, liệu trường hợp đưa qua để kiểm tra, đạt đến nút tương ứng với class nút kết phân loại nút _ nút (internal node): node tương ứng với thuộc tính dùng để kiểm tra nút đấy, +) với thuộc tính có tập giá trị rời rạc tập giá trị thuộc tính dùng để kiểm tra xác định nút duyệt đến +) với nút ứng với thuộc tính có tập giá trị liên tục, nút có giá (hoặc vài) giá trị gọi mốc, giá trị mốc dùng để so sánh với giá trị thuộc tính tương ứng trường hợp cần phân loại Cây định sử dụng để phân loại trường hợp cách xuất phát từ nút gốc, duyệt qua tất nút đến gặp nút dừng đưa kết phân loại Đối với nút (nút – internal node) c.Triển khai vào toán c1 liệu đầu vào: Đầu vào thuật toán tập ghi, ghi bao gồm thuộc tính, dựa vào thuộc tính ta dùng Các thuộc tính bảng chia thành dạng sau: • thuộc tính Boolean: • thuộc tính Numeric: • thuộc tính Unique for each instance Dữ liệu đầu vào chia thành tập: tập dùng cho trình dùng cho trình “huấn luyện” để xây dựng – gọi training data set tập dùng cho trình kiểm tra, đánh giá định vừa xây dựng – gọi test data set c2 Xây dựng định Cj, định có node tương ứng với bảng T với ghi test đưa vào phân loại cho giá trị phân loại Cj _ T ghi nào, T bao gồm nút, nhiên class tương ứng với nút xác định từ thông tin không thuộc T _ T chứa ghi có thuộc tính class gồm nhiều giá trị khác nhau, ta thành bảng cho thuộc tính class bảng có giá trị đồng giống Việc xây dựng định thuật toán C4.5 sử dụng phương pháp Hunt Ký hiệu class (các thuộc tính chứa kết đánh giá) {C1, C2, … ,Ck} bảng chứa ghi tập training ký hiệu T, ứng với bảng T ta có trường hợp sau: • tất ghi T thuộc class xác định _ T ghi nào, T bao gồm nút, nhiên class tương ứng với nút xác định từ thông tin không thuộc T _ T chứa ghi có thuộc tính class gồm nhiều giá trị khác nhau, ta thành bảng cho thuộc tính class bảng có giá trị đồng giống Giả sử ta chọn thuộc tính X bao gồm tập n giá trị {O1, O2, … , On} dùng để phân chia bảng T thành n bảng {T1, T2, …, Tn}, với bảng ta lại tiếp tục phân chia theo thuộc tính để cuối mảng có giá trị thuộc tính class giống Theo cách xây dựng việc quan trọng việc bước phải chọn thuộc tính xây dựng sau tối ưu – theo nghĩa nhỏ số phân đoạn chia Vì bước ta phải chọn thuộc tính hợp lý để chia bảng T Việc chọn thuộc tính thực cách quét tất xây dựng, sau chọn tối ưu nhất! Tuy nhiên cách vét cạn đòi hỏi chi phí lớn! có cách khác nhằm xác định tốt sử dụng thuật toán tham lam (greedy algorithm) thuật toán C4.5 sử dụng Gain criterion Gain criterion ratio Những chuẩn dựa lý thuyết thông tin Gain criterion Gain criterion ratio: Việc chọn chọn thuộc tính tốt bước dùng để phân chia bảng T cần sử dụng đại lượng, đại lượng phải có giá trị lớn thuộc tính chọn đắn (tại bước đó), giá trị nhỏ đại lượng không tốt (tại bước xác định) Một đại lượng thỏa mãn lượng thông tin mong đợi cung cấp thuộc tính (được đề xuất lần Shannon Weaver) Để hiểu khái niệm thông tin nghĩ câu trả lời cho câu hỏi Lượng thông tin chứa câu trả lời phụ thuộc vào tri thức trước Thuộc tính liên tục: Đối với thuộc tính liên tục, ta cần xác định mốc dùng để phân chia bảng ghi thành tập thuật toán sử dụng C4.5 để xác định mốc: _ xếp ghi bảng theo thứ tự từ tăng dần theo giá trị thuộc tính cần xác định mốc, giả sử tập sau xếp {V1, V2, …,Vn} _ xác định điểm đoạn xác định (Vi, Vi+1) _ phân chia bảng xét thành phần dựa theo điểm đó, sau xác định gain criterion ratio ứng với cách phân chia _ chọn giá trị mà gain criterion ratio ứng với điểm có giá trị lớn làm điểm mốc Đánh giá hiệu phân lớp thuật toán tập liệu cho theo hai phương pháp cross- validation percentage split Các tham số j48 - binarySplits Whether to use binary splits on nominal attributes when building the trees.Có hay không sử dụng phân tách nhị phân thuộc tính nominal xây dựng - collapseTree Có hay không thành phần bỏ mà không giảm bớt lỗi training - confidenceFactor – Mức tin tưởng để định xem có xén tỉa hay không - debug Nếu thiết lập true, phân lớp cho thông tin bổ xung tới hình console - minNumObj Số lượng nhỏ thể nút - numFolds .Định rõ lượng liệu sử dụng cho việc giảm bớt lỗi xén tỉa Một fold sử dụng cho việc xén tỉa, phần lại sử dụng cho việc phát triển - reducedErrorPruning – Có hay không xén tỉa giảm bớt lỗi sử dụng thay xén tỉa C4.5 Cross-validation : - Một kỹ thuật sử dụng để kiểm tra hiệu xuất mô hình tiên đoán Cross- validation tiên đoán ăn khớp mô hình tới tập giả thiết hợp lệ (Test set) mà ta sẵn tập hợp lệ tường minh - Một loại cross- validation thường dùng k-folds cross-validation : Tập mẫu ban đầu phân chia ngẫu nhiên tới k tập mẫu Với k tập mẫu này, mẫu đơn dùng liệu đánh giá cho việc kiểm tra mô hình, k-1 tập mẫu lại sử dụng liệu training Tiến trình đánh giá chéo lặp lại k lần ( tham số Folds in weka) Lấy trung bình k kết thu ta có đánh giá cho mô hình Ưu điểm phương pháp việc lặp lại ngẫu nhiên mẫu sử dụng cho training testing, lần Sau chạy thuật toán theo phương pháp Cross-Validation dù tham số Folds có giá trị kết thu không thay đổi ,vẫn đạt hiệu phân lớp cao 100% với số mẫu test 8124 Percentage split: Cho biết tỉ lệ phân chia % đạt hiệu phân lớp cao - Tỷ lệ phân chia cho biết số mẫu chọn cho tập huấn luyện số mẫu chọn cho tập test Vd: Percentage split =20% nghĩa 20% mẫu dùng test set 40% mẫu dùng cho training set 1) Lần test thứ 1:với tỉ lệ phân chia 60% ta có bảng thống kế sau: 2) Lần test thứ : với tỉ lệ phân chia > 60% 65% ta có bảng thống kế sau: 3) Lần test thứ 3: với tỉ lệ phân chia > 66% 70% ta có bảng thống kế sau: 4) Lần test thứ 4: với tỉ lệ phân chia > 60% 75% ta có bảng thống kế sau: 10 5) Lần test thứ 5: với tỉ lệ phân chia > 60% 80% ta có bảng thống kế sau: 6) Lần test thứ 5: với tỉ lệ phân chia > 60% 85% ta có bảng thống kê sau: 11 7) Lần test thứ : với tỉ lệ phân chia > 60% 90% ta có bảng thống kế sau: 8) Lần test thứ : với tỉ lệ phân chia > 60% 95% ta có bảng thống kế sau: 12 9) Lần test thứ : với tỉ lệ phân chia INVERTEBRATE Ý nghĩa thực tế Nếu động vật mà có lông vũ thuộc lớp chim Nếu động vật lông vũ có sữa thuộc lớp động vật có vú Nếu động vật lông vũ , sữa , có xương sống có vây thuộc lớp động vật nước Nếu động vật lông vũ , sữa , có xương sống , vây sống nước thuộc lớp lưỡng cư Nếu động vật lông vũ , sữa , có xương sống , vây không sống nước thuộc lớp bò sát Nếu động vật lông vũ , sữa ,không có xương sống sống cạn thuộc lớp côn trùng Nếu động vật lông vũ , sữa ,không có xương sống không sống cạn thuộc lớp động vật xương sống 18 [...]... là 1 Nếu các động vật mà có lông vũ thì nó thuộc lớp chim 2 Nếu các động vật không có lông vũ và có sữa thì nó thuộc lớp động vật có vú 3 Nếu các động vật không có lông vũ , không có sữa , có xương sống và có vây thì thuộc lớp động vật dưới nước 4 Nếu các động vật không có lông vũ , không có sữa , có xương sống , không có vây và nó sống dưới nước thì nó thuộc lớp lưỡng cư 5 Nếu các động vật không có... có xương sống , không có vây và nó không sống dưới nước thì nó thuộc lớp bò sát 6 Nếu các động vật không có lông vũ , không có sữa ,không có xương sống và sống trên cạn thì nó thuộc lớp côn trùng 7 Nếu các động vật không có lông vũ , không có sữa ,không có xương sống và không sống trên cạn thì nó thuộc lớp động vật không có xương sống 18 ...5) Lần test thứ 5: với tỉ lệ phân chia > 60% là 80% thì ta có bảng thống kế sau: 6) Lần test thứ 5: với tỉ lệ phân chia > 60% là 85% thì ta có bảng thống kê sau: 11 7) Lần test thứ 7 : với tỉ lệ phân chia > 60% là 90% thì ta có bảng thống kế sau: 8) Lần test thứ 8 : với tỉ lệ phân chia > 60% là 95% thì ta có bảng thống kế sau: 12 9) Lần test thứ 9 : với tỉ lệ phân chia ...1.Mục đích Trong vườn thú có nhiều loại động vật với đặc điểm khác Nhiệm vụ toán Phân Loại loại động vật vườn thú xem chúng thuộc lớp lớp: động vật có vú, chim, bò sát, cá,... thực tế Nếu động vật mà có lông vũ thuộc lớp chim Nếu động vật lông vũ có sữa thuộc lớp động vật có vú Nếu động vật lông vũ , sữa , có xương sống có vây thuộc lớp động vật nước Nếu động vật lông... nhiều vật khác vườn thú Mapperley Nottingham Richard Forsyth cộng ,ngày 5/15/1990.Dữ liệu loại động vật với đặc điểm có tóc, lông vũ, có sữa, trứng, không, nước, có nọc độc… để rút kết luận động vật