Khai phá dữ liệu (data mining) là quá trình tính toán để tìm ra các mẫu trong các bộ dữ liệu lớn liên quan đến các phương pháp tại giao điểm của máy học, thống kê và các hệ thống cơ sở dữ liệu. Đây là một lĩnh vực liên ngành của khoa học máy tính. Mục tiêu tổng thể của quá trình khai thác dữ liệu là trích xuất thông tin từ một bộ dữ liệu và chuyển nó thành một cấu trúc dễ hiểu để sử dụng tiếp. Ngoài bước phân tích thô, nó còn liên quan tới cơ sở dữ liệu và các khía cạnh quản lý dữ liệu, xử lý dữ liệu trước, suy xét mô hình và suy luận thống kê, các thước đo thú vị, các cân nhắc phức tạp, xuất kết quả về các cấu trúc được phát hiện, hiện hình hóa và cập nhật trực tuyến. Khai thác dữ liệu là bước phân tích của quá trình khám phá kiến thức trong cơ sở dữ liệu.
MÔN HỌC: DATA MINING KHAI PHÁ DỮ LIỆU ĐỒ ÁN CUỐI KỲ Nội dung: Lý thuyết thực nghiệm khai phá liệu phân lớp liệu nước Việt Nam MỤC LỤC Table of Contents DANH MỤC HÌNH ẢNH VÀ BẢNG BIỂU LỜI MỞ ĐẦU Phần TỔNG QUAN VỀ CLASSIFICATION Khái niệm Phần THỰC NGHIỆM .4 2.1 Dữ liệu nước .4 2.1.1 Mô tả liệu 2.1.2 Phân tích liệu 2.1.3 Mơ hình áp dụng .5 2.1.3 Kết 2.2 Dữ liệu Việt Nam 2.2.1 Mô tả liệu 2.2.2 Áp dụng mô hình .9 2.2.3 Kết 10 KẾT LUẬN 10 DANH MỤC TÀI LIỆU THAM KHẢO .11 LỜI MỞ ĐẦU Khai phá liệu (data mining) q trình tính tốn để tìm mẫu liệu lớn liên quan đến phương pháp giao điểm máy học, thống kê hệ thống sở liệu Đây lĩnh vực liên ngành khoa học máy tính Mục tiêu tổng thể q trình khai thác liệu trích xuất thơng tin từ liệu chuyển thành cấu trúc dễ hiểu để sử dụng tiếp Ngồi bước phân tích thơ, cịn liên quan tới sở liệu khía cạnh quản lý liệu, xử lý liệu trước, suy xét mơ hình suy luận thống kê, thước đo thú vị, cân nhắc phức tạp, xuất kết cấu trúc phát hiện, hình hóa cập nhật trực tuyến Khai thác liệu bước phân tích q trình "khám phá kiến thức sở liệu" Trong Data mining có nhiều phương pháp khai phá liệu khác nhau, chúng thời có nhóm sau: Phân loại (Classification): Là phương pháp dự báo, cho phép phân loại đối tượng vào lớp cho trước Hồi qui (Regression): Khám phá chức học dự đoán, ánh xạ mục liệu thành biến dự đoán giá trị thực Phân nhóm (Clustering): Một nhiệm vụ mơ tả phổ biến người ta tìm cách xác định tập hợp hữu hạn cụm để mô tả liệu Tổng hợp (Summarization): Một nhiệm vụ mô tả bổ sung liên quan đến phương pháp cho việc tìm kiếm mô tả nhỏ gọn cho (hoặc tập hợp con) liệu Mơ hình ràng buộc (Dependency modeling): Tìm mơ hình cục mơ tả phụ thuộc đáng kể biến giá trị tính tập liệu phần tập liệu Dò tìm biến đổi độ lệch (Change and Deviation Dectection): Khám phá thay đổi quan trọng liệu Trong phương pháp trên, phương pháp Phân loại phổ biến điều kiện thực tế Vì học viên chọn phương pháp Phân loại để thực đồ án cuối kỳ cho môn học Khai phá liệu Trong đồ án này, học viên áp dụng phương pháp Phân loại cho tập liệu: Dữ liệu nước liệu Việt Nam Đồ án bao gồm phần Phần 1: Tổng quan phương pháp Phân loại (Classification) Phần 2: Thực phương pháp Classification Phần 3: Kết luận Phần TỔNG QUAN VỀ CLASSIFICATION Khái niệm Ngày phân lớp liệu (classification) hướng nghiên cứu khai phá liệu Thực tế đặt nhu cầu từ sở liệu với nhiều thơng tin ẩn người trích rút định nghiệp vụ thơng minh Phân lớp dự đoán hai dạng phân tích liệu nhằm trích rút mơ hình mô tả lớp liệu quan trọng hay dự đoán xu hướng liệu tương lai Phân lớp dự đoán giá trị nhãn xác định (categorical label) hay giá trị rời rạc (discrete value), có nghĩa phân lớp thao tác với đối tượng liệu mà có giá trị biết trước Trong đó, dự đốn lại xây dựng mơ hình với hàm nhận giá trị liên tục Ví dụ mơ hình phân lớp dự báo thời tiết cho biết thời tiết ngày mai mưa, hay nắng dựa vào thơng số độ ẩm, sức gió, nhiệt độ,… ngày hơm ngày trước Hay nhờ luật xu hướng mua hàng khách hàng siêu thị, nhân viên kinh doanh sách đắn lượng mặt hàng chủng loại bày bán… Một mô hình dự đốn dự đốn lượng tiền tiêu dùng khách hàng tiềm dựa thông tin thu nhập nghề nghiệp khách hàng Trong năm qua, phân lớp liệu thu hút quan tâm nhà nghiên cứu nhiều lĩnh vực khác học máy (machine learning), hệ chuyên gia (expert system), thống kê (statistics) Công nghệ ứng dụng nhiều lĩnh vực khác như: thương mại, nhà băng, maketing, nghiên cứu thị trường, bảo hiểm, y tế, giáo dục Phần lớn thuật toán đời trước sử dụng chế liệu cư trú nhớ (memory resident), thường thao tác với lượng liệu nhỏ Một số thuật toán đời sau sử dụng kỹ thuật cư trú đĩa cải thiện đáng kể khả mở rộng thuật toán với tập liệu lớn lên tới hàng tỉ ghi Phần THỰC NGHIỆM 2.1 Dữ liệu nước Dữ liệu nước học viên lấy từ trang Vincentare Bundock [4] Package: Ecdat Item: PSID Title: Panel Survey of Income Dynamics Rows: 4856 Cols: 2.1.1 Mô tả liệu Một khảo sát vào năm 1993 Số lượng quan sát: 4856 Quan sát: cá nhân Quốc gia: Hoa Kỳ Định dạng: Một dataframe chứa thuộc tính bên sau: intnum: Số vấn năm 1968 persnum: Số thứ tự người vấn age: Tuổi educatn: Chỉ số giáo dục hoàn tất cao earnings: Tổng thu nhập hours: Số làm việc năm kids: Số trẻ em phụ thuộc married: Tình trạng nhân Nguồn: Panel Survey of Income Dynamics 2.1.2 Phân tích liệu Để phân tích liệu trên, học viên dùng ngơn ngữ R để trực quan hóa, nhằm tìm mơ hình thích hợp cho liệu Tóm tắt liệu: > dulieu =read.csv("/Volumes/DATA/HOC_TAP/CAO_HOC/KhaiPhaDuLieu/Thi/DuLieu/PSID.c sv") > summary(dulieu) Age: thấp 30 tuổi, nhiều 50 tuổi Trình độ học vấn thấp nhất: 0, cao 99 Thu nhập thấp nhất: 0, cao 240,000 Số làm việc thấp năm: giờ, nhiều 5160 Số trẻ em thấp nhất: 0, nhiều 99 Tiền xử lý Học viên nhân thấy liệu: educatn có missing value married có tình trạng nhân: divorced, married, NA/DF, never married, no histories, separated, widowed hours có liệu cao 5160 tức số năm intnum persnum không quan trọng việc phân lớp liệu số liệu để đánh thứ tự Chúng ta cần phải qua bước tiền xử lý liệu để sử dụng liệu Missing value: Có thểtập liệu bạn không đầy đủ thơng tin, gọi giá trị thiếu - missing value Trong R giá trị thiếu mã hóa ký hiệu Để xác định missing value tập liệu bạn, hàm is.na() Bây thấy lỗi liệu: > is.na(dulieu$low_wind) Trong liệu có 4856 dịng, dịng missing value Missing value nằm trường educatn, bỏ qua dịng thơng tin q nhỏ Bộ liệu sau tiền xử lý có summary hình minh họa bên Vì liệu để tính tốn phân nhãn bao gồm thơng số sau: age 4 educatn earnings hours kids 2.1.3 Các mơ hình áp dụng huấn luyện Với liệu trên, có nhãn tình trạng hôn nhân gán nhãn, học viên nhận thấy hồn tồn dự đốn tình trạng nhân có thơng tin liên quan Đây liệu khai thác học có giám sát Mơ hình áp dụng có phương pháp cụ thể sau: Cây định - Chúng tổ chức dạng câu hỏi câu trả lời cấu trúc Phân loại Naive Bayes - Một mơ hình máy học xác suất sử dụng để phân loại Phân loại K-NN - Dựa biện pháp tương tự khoảng cách, phân loại trường hợp Support Vector Machines - Đây phân loại tuyến tính nhị phân khơng có xác suất, xây dựng mơ hình để phân loại trường hợp thành hai loại Học viên chọn Phân loại K-NN Phân loại K-NN - phần sơ lược thuật tốn mà làm Hàng xóm gần mà muốn kiểm tra gọi giá trị "k" Nếu k sau bạn kiểm tra hàng xóm gần để xác định lớp Nếu phần lớn hàng xóm thuộc loại định số năm hàng xóm gần đó, chọn làm danh mục đối tượng tới Các biến khác có đơn vị tỷ lệ khác nhau, trọng lượng tính kg chiều cao tính cm Thuật toán knn hoạt động tốt với biến số, điều khơng có nghĩa khơng thể hoạt động với biến phân loại, bạn kết hợp hai biến phân loại biến số yếu tố dự đốn địi hỏi chút cách tiếp cận khác Nhưng tất dự đốn số, knn tốt xử lý khoảng cách cần số cứng Khi chia liệu thành tập huấn luyện kiểm tra, liệu chuẩn hóa Thuật tốn knn khơng hoạt động với yếu tố có thứ tự R mà với yếu tố Thuật tốn trung bình k khác với thuật toán lân cận K-NN K-mean sử dụng để phân cụm thuật toán học tập không giám sát Knn thuật toán nghiêng giám sát hoạt động vấn đề phân loại Bên mã huấn luyện mô hình k-NN R : #Bắt đầu demo k-NN #load liệu vào PSID PSID = read.csv("/Volumes/DATA/HOC_TAP/CAO_HOC/KhaiPhaDuLieu/Thi/PSIDv2.csv") #Lấy mẫu ran = sample(1:nrow(PSID), 0.8 * nrow(PSID)) #normalize nor =function(x) { (x -min(x))/(max(x)-min(x)) } #PSID Normalize PSID_norm = as.data.frame(lapply(PSID[,c(1,2,3,4,5)], nor)) #Xem tổng quát liệu summary(PSID_norm) #Chia tập train tập test PSID_train = PSID_norm[ran,] PSID_test = PSID_norm[-ran,] #Tạo nhãn cho tập train tập test PSID_target_category = PSID[ran,6] PSID_test_category = PSID[-ran,6] #Load thư viện class vào library(class) #Train dư liệu với k=7 pr = knn(PSID_train,PSID_test,cl=PSID_target_category,k=7) #Kiểm tra lại với tập test tab = table(pr,PSID_test_category) #Tính độ xác thuật toán accuracy = function(x){sum(diag(x)/(sum(rowSums(x)))) * 100} accuracy(tab) #Kết thúc Demo k-NN PSID = read.csv("/Volumes/DATA/HOC_TAP/CAO_HOC/KhaiPhaDuLieu/Thi/PSIDv2.csv") Ở dòng này, tải liểu PSID.csv vào biến PSID với hàm read.csv Sau đọc PSID lấy mẫu để huấn luyện đưa vào biến ran ran = sample(1:nrow(PSID), 0.8 * nrow(PSID)) Hàm nor =function(x) { (x -min(x))/(max(x)-min(x)) }được áp dụng vào toàn liệu PSID gán vào biến PSID_norm PSID_norm = as.data.frame(lapply(PSID[,c(1,2,3,4,5)], nor)) Chúng ta áp dụng hàm nor vào liệu PSID với cột 1, 2, 3, 4, cho liệu PSID_norm PSID_train = PSID_norm[ran,] PSID_test = PSID_norm[-ran,] Chia tập train phần tử thuộc PSID_norm với mẫu ran Tập test phần tử lại PSID_norm khác với mẫu ran library(class) Load thư viện class vào R pr = knn(PSID_train,PSID_test,cl=PSID_target_category,k=7) hàm knn sau: knn(tap_train, tap_test, cl=các nhãn phân lớp, k) tab = table(pr,PSID_test_category) Kiểm thử lại mô hình pr với tập test Hàm tính phần trăm độ xác thuật tốn k-NN accuracy = function(x){sum(diag(x)/(sum(rowSums(x)))) * 100} accuracy(tab) Áp dụng hàm accuracy cho tab 2.1.3 Kết Kết thuật tốn k-NN tương đối an tồn với62.51287% STT k Kết dự đoán 1 51.59629 2 51.18435 3 55.50978 4 56.74562 5 62.51287 6 60.45314 7 61.68898 8 61.48301 9 62.3069 10 10 62.82183 11 100 64.26365 12 200 61.58599 Việc thay đổi giá trị k từ 1->9 ta thấy giá trị tăng dần tương đối cao k=1 => k=7 Khi nâng số k lên xác suất tăng lên khơng đáng kể Vì số k nên với số nhãn 2.2 Dữ liệu Việt Nam Học viên sử dụng liệu đa dạng sinh học Hệ Thống Cơ Sở Dữ Liệu Quốc Gia Về Đa Dạng Sinh Học Việt Nam: http://nbds.howizbiz.com/search/taxon liệu Vietnam Red list 2007 trang 2.2.1 Mô tả liệu Dữ liệu đề cập 100 lồi Bảng liệu gồm thơng số sau: • Tên khoa học • Giới • Nghành • Lớp • Bộ • Tài nguyên liệu: thông số tên liệu nên không xét đến 2.2.2 Áp dụng mơ hình REDLISTSVN = read.csv("/Volumes/DATA/HOC_TAP/CAO_HOC/KhaiPhaDuLieu/Thi/DuLieu/REDLIS TSVN.csv") library(magrittr) str (col2) str (col3) str (col4) str (col5) #Lấy mẫu ran = sample(1:nrow(REDLISTSVN), 0.8 * nrow(REDLISTSVN)) #normalize nor =function(x) { (x -min(x))/(max(x)-min(x)) } # REDLISTSVN Normalize REDLISTSVN_norm = as.data.frame(lapply(REDLISTSVN [,c(2,3,4,5)], nor)) #Xem tổng quát liệu summary(REDLISTSVN_norm) #Chia tập train tập test REDLISTSVN_train = REDLISTSVN_norm[ran,] REDLISTSVN_test = REDLISTSVN_norm[-ran,] #Tạo nhãn cho tập train tập test REDLISTSVN_target_category = REDLISTSVN [ran,2] REDLISTSVN_test_category = REDLISTSVN [-ran,2] #Load thư viện class vào library(class) #Train liệu với k=5 pr = knn(REDLISTSVN_train, REDLISTSVN_test, cl = REDLISTSVN_target_category,k=5) #Kiểm tra lại với tập test tab = table(pr, REDLISTSVN_test_category) #Tính độ xác thuật toán accuracy = function(x){sum(diag(x)/(sum(rowSums(x)))) * 100} accuracy(tab) KẾT LUẬN Việc khai phá liệu việc chạy số truy vấn phức tạp liệu mà bạn lưu sở liệu Bạn phải làm việc với liệu mình, định dạng lại cấu trúc lại nó, bạn có sử dụng SQL, sở liệu dựa tài liệu Hadoop tệp phẳng đơn giản hay không Việc nhận định dạng thông tin mà bạn cần dựa kỹ thuật việc phân tích mà bạn muốn làm Sau bạn có thơng tin theo định dạng mà bạn cần, bạn áp dụng kỹ thuật khác (riêng lẻ hay kết hợp lại với nhau) không phân biệt cấu trúc liệu hay tập hợp liệu cần thiết Kết thuật toán phân lớp toán thực thành cơng nhiên tốn khác chưa xác, tùy theo tốn cụ thể mà ta sử dụng phương pháp, thuật toán phù hợp 10 DANH MỤC TÀI LIỆU THAM KHẢO Introduction to Data Mining - by Pang-Ning Tan, Michael Steinbach, and Vipin Kumar, Pearson Education,1st Edition 2006 Trang web http://phamtthuytien.blogspot.com/2015/07/tk8-thong-ke-mo-ta-bieuo-hop-box-plot.html https://vi.wikipedia.org/wiki/Khai_phá_dữ_liệu https://vincentarelbundock.github.io/Rdatasets/datasets.html http://rpubs.com/Nitika/kNN_Iris 11 ... Khám phá thay đổi quan trọng liệu Trong phương pháp trên, phương pháp Phân loại phổ biến điều kiện thực tế Vì học viên chọn phương pháp Phân loại để thực đồ án cuối kỳ cho môn học Khai phá liệu Trong. .. viên áp dụng phương pháp Phân loại cho tập liệu: Dữ liệu nước liệu Việt Nam Đồ án bao gồm phần Phần 1: Tổng quan phương pháp Phân loại (Classification) Phần 2: Thực phương pháp Classification... xuất kết cấu trúc phát hiện, hình hóa cập nhật trực tuyến Khai thác liệu bước phân tích q trình "khám phá kiến thức sở liệu" Trong Data mining có nhiều phương pháp khai phá liệu khác nhau, chúng