ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINHTRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN ------TIỂU LUẬN CHUYÊN ĐỀ HỆ HỖ TRỢ QUYẾT ĐỊNH ĐỀ TÀI: TÌM HIỂU PHÂN LỚP DỮ LIỆU VÀ ỨNG DỤNG VÀO BÀI TOÁN DỰ
Trang 1ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
- -TIỂU LUẬN CHUYÊN ĐỀ
HỆ HỖ TRỢ QUYẾT ĐỊNH
ĐỀ TÀI:
TÌM HIỂU PHÂN LỚP DỮ LIỆU VÀ ỨNG DỤNG VÀO
BÀI TOÁN DỰ BÁO TỘI PHẠM
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
GIẢNG VIÊN HƯỚNG DẪN : PGS TS ĐỖ PHÚC
HỌC VIÊN THỰC HIỆN : NGUYỄN HỒ DUY TRI – CH1401037
NGUYỄN HỒ DUY TRÍ – CH1401039 NGUYỄN HOÀNG NGÂN – CH1401024
Tp HỒ CHÍ MINH – 08/2015
Trang 2LỚP CAO HỌC KHMT, KHÓA 09, THÁNG 08 NĂM 2015
MÔN: HỆ HỖ TRỢ QUYẾT ĐỊNH GV: PGS TS ĐỖ PHÚC NHẬN XÉT BÀI TRÌNH BÀY
Tên bài trình bày: TÌM HIỂU PHÂN LỚP DỮ LIỆU VÀ ỨNG DỤNG
VÀO BÀI TOÁN DỰ BÁO TỘI PHẠM.
Người thực hiện: 1 Nguyễn Hồ Duy Tri 2 Nguyễn Hồ Duy
Trí
3 Nguyễn Hoàng Ngân
Số phiếu nhận xét thu được: 19.
Ngày báo cáo: 06/08/2015.
Ý KIẾN NHẬN XÉT
1 Nội dung trình bày (đúng với tiêu đề bài viết, súc tích) (50%)
Nội dung trình bày mới lạ, hấp dẫn, phong phú, đúng tiêu đề, bài toán thực
tế cao, có giá trị Tuy nhiên demo chưa rõ ràng, chưa nêu bật được ý nghĩa của các thuộc tính phân lớp.
2 Tài liệu tham khảo (mới, phong phú) (10%)
Tài liệu tham khảo mới, phong phú Chưa tham khảo các tài liệu liên quan đến vấn đề tội phạm.
3 Trình bày trang chiếu (đẹp, đúng) (10%)
Trình bày rõ ràng, gọn gàng, sáng sủa, đẹp.
4 Trình bày trước lớp (hấp dẫn, lôi cuốn, tự tin) (10%)
Trình bày tự tin, hấp dẫn, lôi cuốn, chủ động, to, rõ Dẫn dắt vấn đề bất ngờ.
5 Trả lời các câu hỏi (đúng, đầy đủ, thỏa đáng) (10%)
Trả lời đúng và đầy đủ các câu hỏi.
Số điểm trung bình đạt được: 9,04.
Trang 3Hình: Nhóm 08 và thầy PGS TS Đỗ Phúc sau buổi báo cáo.
(Nguồn: Facebook Cao học UIT 09 - https://www.facebook.com/groups/CAOHOC09UIT )
Trang 4MỤC LỤC
I Phân lớp dữ liệu 1
1.1 Giới thiệu 1
1.2 Các bước phân lớp dữ liệu 1
1.3 Tiền xử lý dữ liệu 2
1.4 So sánh các phương pháp phân lớp 3
II Bài toán dự báo tội phạm 3
2.1 Giới thiệu Kaggle 3
2.2 Bài toán dự báo tội phạm 4
2.3 Giải bài toán dự báo tội phạm 5
III Các bước thực hiện 5
3.1 Tiền xử lý dữ liệu 6
3.2 Phân lớp dữ liệu và Dự báo tội phạm 6
IV Kết luận và Hướng phát triển 7
4.1 Kết luận 7
4.2 Hướng phát triển 8
V Tài liệu tham khảo 8
Trang 5Ứng dụng Weka vào bài toán dự báo tội phạm
I Phân lớp dữ liệu
1.1 Giới thiệu
Ngày nay phân lớp dữ liệu (classification) là một trong những hướng nghiên cứu chính của khai phá dữ liệu Thực tế đặt ra nhu cầu là từ một cơ sở dữ liệu với nhiều thông tin ẩn con người có thể rút trích ra các quyết định nghiệp vụ thông minh Phân lớp và dự đoán là hai dạng của phân tích dữ liệu nhằm rút trích ra một
mô hình mô tả các lớp dữ liệu quan trọng hay dự đoán xu hướng dữ liệu tương lai Phân lớp dự đoán giá trị của những nhãn xác định hay những giá trị rời rạc, có nghĩa là phân lớp thao tác với những đối tượng dữ liệu mà có bộ giá trị là biết trước Trong khi đó, dự đoán lại xây dựng mô hình với các 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 có thể cho biết thời tiết ngày mai là mưa, hay nắng dựa vào những thông số về độ ẩm, sức gió, nhiệt độ,… của ngày hôm nay và các ngày trước đó Hay nhờ các luật về xu hướng mua hàng của khách hàng trong siêu thị, các nhân viên kinh doanh có thể ra những quyết sách đúng đắn
về lượng mặt hàng cũng như chủng loại bày bán… Một mô hình dự đoán có thể dự đoán được lượng tiền tiêu dùng của các khách hàng tiềm năng dựa trên những thông tin về thu nhập và nghề nghiệp của khách hàng Trong những năm qua, phân lớp dữ liệu đã thu hút sự quan tâm các nhà nghiên cứu trong nhiều lĩnh vực khác nhau như học máy (machine learning), hệ chuyên gia (expert system), thống kê (statistics) Công nghệ này cũng ứng dụng trong nhiều lĩnh vực khác nhau 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
1.2 Các bước phân lớp dữ liệu
Quá trình phân lớp dữ liệu gồm hai bước:
Bước huấn luyện:
Quá trình huấn luyện nhằm xây dựng một mô hình mô tả một tập các lớp dữ liệu hay các khái niệm định trước Đầu vào của quá trình này là một tập dữ liệu có cấu trúc được mô tả bằng các thuộc tính và được tạo ra từ tập các bộ giá trị của các thuộc tính
đó Trong tập dữ liệu này, mỗi phần tử dữ liệu được giả sử thuộc về một lớp định trước, lớp ở đây là giá trị của một thuộc tính được chọn làm thuộc tính gán nhãn lớp hay thuộc tính phân lớp Đầu ra của bước này thường là các quy tắc phân lớp dưới dạng luật nếu –thì, cây quyết định, công thức logic, hay mạng nơron
Bước phân lớp:
Bước thứ hai dùng mô hình đã xây dựng ở bước trước để phân lớp dữ liệu mới Trước tiên độ chính xác mang tính chất dự đoán của mô hình phân lớp vừa tạo ra được ước lượng Nếu độ chính xác của mô hình là chấp nhận được, thì mô hình được sử
1
Trang 6Ứng dụng Weka vào bài toán dự báo tội phạm
dụng để phân lớp những dữ liệu tương lai, hoặc những dữ liệu mà giá trị của thuộc tính phân lớp là chưa biết
1.3 Tiền xử lý dữ liệu
Việc tiền xử lý dữ liệu cho quá trình phân lớp là một việc làm không thể thiếu và có vai trò quan trọng quyết định tới sự áp dụng được hay không của phương pháp phân lớp Quá trình tiền xử lý dữ liệu sẽ giúp cải thiện độ chính xác, tính hiệu quả và khả năng mở rộng được của phương pháp phân lớp
Quá trình tiền xử lý dữ liệu gồm có các công việc sau:
Làm sạch dữ liệu
Làm sạch dữ liệu liên quan đến việc xử lý nhiễu (noise) và thiếu giá trị (missing value) trong tập dữ liệu ban đầu Nhiễu là các lỗi ngẫu nhiên hay các giá trị không hợp
lệ của các biến trong tập dữ liệu Để xử lý với loại lỗi này có thể dùng kỹ thuật làm trơn Thiếu giá trị là những ô không có giá trị của các thuộc tính Thiếu giá trị có thể
do lỗi chủ quan trong quá trình nhập liệu, hoặc trong trường hợp cụ thể giá trị của thuộc tính đó không có, hay không quan trọng Kỹ thuật xử lý ở đây có thể bằng cách thay giá trị thiếu bằng giá trị phổ biến nhất của thuộc tính đó hoặc bằng giá trị có thể xảy ra nhất dựa trên thống kê Mặc dù phần lớn thuật toán phân lớp đều có cơ chế xử
lý với những giá trị thiếu và nhiễu trong tập dữ liệu, nhưng bước tiền xử lý này có thể làm giảm sự hỗn độn trong quá trình xây dựng mô hình phân lớp
Phân tích sự liên quan của dữ liệu (chọn đặc trưng)
Có rất nhiều thuộc tính trong tập dữ liệu có thể hoàn toàn không cần thiết hay liên quan đến một bài toán phân lớp cụ thể Ví dụ dữ liệu về ngày trong tuần hoàn toàn không cần thiết đối với ứng dụng phân tích độ rủi ro của các khoản tiền cho vay của ngân hàng, nên thuộc tính này là dư thừa Phân tích sự liên quan của dữ liệu nhằm mục đích loại bỏ những thuộc tính không cần thiết, dư thừa khỏi quá trình học vì những thuộc tính đó sẽ làm chậm, phức tạp và gây ra sự hiểu sai trong quá trình học dẫn tới một mô hình phân lớp không dùng được
Chuyển đổi dữ liệu
Việc khái quát hóa dữ liệu lên mức khái niệm cao hơn đôi khi là cần thiết trong quá trình tiền xử lý Việc này đặc biệt hữu ích với những thuộc tính liên tục (continuous attribute hay numeric attribute) Ví dụ các giá trị số của thuộc tính thu nhập của khách hàng có thể được khái quát hóa thành các dãy giá trị rời rạc: thấp, trung bình, cao Tương tự với những thuộc tính rời rạc (categorical attribute) như địa chỉ phố có thể được khái quát hóa lên thành thành phố Việc khái quát hóa làm cô
2
Trang 7Ứng dụng Weka vào bài toán dự báo tội phạm
đọng dữ liệu học nguyên thủy, vì vậy các thao tác vào/ ra liên quan đến quá trình học
sẽ giảm
1.4 So sánh các phương pháp phân lớp
Trong từng ứng dụng cụ thể cần lựa chọn phương pháp phân lớp phù hợp Việc lựa chọn đó căn cứ vào sự so sánh các phương pháp phân lớp với nhau, dựa trên các tiêu chuẩn sau:
Độ chính xác dự đoán (predictive accuracy)
Độ chính xác là khả năng của phương pháp để dự đoán chính xác nhãn lớp của
dữ liệu mới hay dữ liệu chưa biết
Tốc độ (speed)
Tốc độ là những chi phí tính toán liên quan đến quá trình tạo ra và sử dụng mô hình
Sức mạnh (robustness)
Sức mạnh là khả năng phương pháp tạo ta những dự đoán đúng từ những dữ liệu nhiễu hay dữ liệu với những giá trị thiếu
Khả năng mở rộng (scalability)
Khả năng mở rộng là khả năng thực thi hiệu quả trên lượng lớn dữ liệu của mô hình đã học
Tính hiểu được (interpretability)
Tính hiểu được là mức độ hiểu và hiểu rõ những kết quả sinh ra bởi mô hình đã học
Tính đơn giản (simplicity)
Tính đơn giản liên quan đến kích thước của cây quyết định hay độ cô đọng của các luật
II Bài toán dự báo tội phạm.
2.1 Giới thiệu Kaggle
Được Anthony John Goldbloom thành lập vào tháng 04 năm 2010, Kaggle là nền tảng trực tuyến phục vụ cho việc tổ chức các cuộc thi khai thác dữ liệu và xây dựng mô hình dự báo Một công ty bất kỳ có nhu cầu có thể phối hợp với Kaggle
để đưa lên mạng một tập dữ liệu cùng với bài toán đặt hàng để cộng đồng người dùng của trang này đề xuất giải pháp
3
Trang 8Ứng dụng Weka vào bài toán dự báo tội phạm
Điểm quan trọng là các “thí sinh" được quyền chỉnh sửa tới lui giải pháp của mình, thúc đẩy họ và cộng đồng nỗ lực tìm kiếm giải pháp tốt hơn cho đến tận hạn chót Đã có rất nhiều công ty như MasterCard, Pfizer, Allstate, Facebook và cả NASA tham gia tổ chức cuộc thi trên Kaggle Ví dụ như công ty General Electric tài trợ cuộc thi viết phần mềm thiết lập đường bay hiệu quả hơn cho hãng hàng không; hay công ty Practice Fusion (chuyên về công nghệ sức khỏe) tài trợ một cuộc thi khác nhằm xác định các bệnh nhân bị bệnh tiểu đường loại 2 dựa trên hồ
sơ y tế Giải thưởng cho giải pháp thắng cuộc trong khoảng từ 3.000 đến 250.000 USD Cá biệt có giải thưởng trị giá đến 3 triệu USD đã được Heritage Provider Network trao tháng 6 năm 2013
Cộng đồng Kaggle gồm khoảng 350.000 người, tham gia vào các cuộc thi và từng người được xếp hạng theo kỹ năng và kết quả tham dự các cuộc thi Bất kỳ
“thí sinh” nào, dù có ở xa xôi cách trở đến đâu đi nữa đều có thể “định giá” tài năng của mình so với những người đứng đầu cùng lĩnh vực Hơn nữa, trong các diễn đàn của Kaggle, các “thí sinh” có thể trao đổi và trau dồi kỹ năng Một lập trình viên giỏi có thể tăng thứ hạng nhanh chóng bằng cách ghi điểm tốt trong hai hoặc ba cuộc thi
Ở mức độ nào đó, Kaggle là một dạng "crowdsourcing", khai thác bộ não toàn cầu để giải quyết một vấn đề lớn nào đó Dạng khai thác nguồn lực đám đông này đã có từ trước lâu, ít nhất là từ thời Wikipedia (hoặc xa hơn, từ thời Linux, v.v ) Thứ nhất, những người tham gia Kaggle làm việc không chỉ vì mục đích
“thiện nguyện”: họ muốn giành chiến thắng và muốn cải thiện thứ hạng của mình
để có cơ hội tốt hơn trên thị trường việc làm Thứ hai, Kaggle không chỉ tạo ra công ăn việc làm mà còn tạo ra thị trường việc làm mới cho các chuyên gia
Thứ hạng Kaggle đã trở thành một thước đo quan trọng trong giới khoa học
dữ liệu Các công ty như American Express và New York Times đã bắt đầu liệt kê thứ hạng Kaggle như một “chứng chỉ” cần thiết trong quảng cáo tìm kiếm nhân tài của mình Nó không chỉ là “huy hiệu” mà còn là chỉ số về năng lực, có ý nghĩa quan trọng và giá trị hơn các tiêu chuẩn truyền thống về trình độ và chuyên môn Bằng cấp từ các trường đại học danh tiếng và lý lịch làm việc tại những công ty tên tuổi như IBM có thể không có ý nghĩa bằng điểm số Kaggle Nói cách khác, công việc có thể “đo đếm” và “thứ hạng” của bạn trên thị trường giá trị hơn nơi bạn làm việc
2.2 Bài toán dự báo tội phạm
Từ năm 1934 đến 1963, San Francisco nổi tiếng là nơi tồn tại những tên tội phạm khét tiếng nhất thế giới
Ngày nay, thành phố này được biết đến nhiều hơn bởi sự phát triển công nghệ so với quá khứ đen tối của mình Tuy nhiên, cùng với việc gia tăng sự mất
4
Trang 9Ứng dụng Weka vào bài toán dự báo tội phạm
cân bằng giàu nghèo, thiếu chỗ ở và sự bùng nổ của thời đại công nghệ số đã dẫn tới việc số lượng tội phạm ngày càng tăng lên
Từ Sunset đến SOMA, từ Marina đến Excelsior, dữ liệu được cung cấp bao gồm báo cáo tội phạm của tất cả các vùng lân cận San Francisco trong gần 12 năm Từ thời gian và địa điểm đã cho, bạn phải dự đoán được loại tội phạm nào sẽ xảy ra Dữ liệu được cung cấp bởi Trung tâm thu thập và phân phối thông tin Thành phố và Quận San Francisco
Hình: Bản đồ 12 loại tội phạm xảy ra nhiều nhất ở San Francisco
(Nguồn:
https://www.kaggle.com/benhamner/sf-crime/san-francisco-top-crimes-map/files )
2.3 Giải bài toán dự báo tội phạm
Trong khuôn khổ cho phép của bài tiểu luận này, nhóm đã chọn sử dụng các thuật toán phân lớp để giải quyết yêu cầu mà bài toán đã đặt ra
Nhóm sử dụng phần mềm Weka để tiền xử lý dữ liệu, phân lớp dữ liệu bằng những thuật toán đã được cài đặt sẵn trong Weka và dự đoán kết quả phân lớp của một vài bộ dữ liệu chưa biết giá trị của thuộc tính phân lớp
5
Trang 10Ứng dụng Weka vào bài toán dự báo tội phạm
III Các bước thực hiện
3.1 Tiền xử lý dữ liệu
Dữ liệu hiện tại gồm nhiều trường khác nhau: IncidntNum, Category, Descript, DayOfWeek, Date, Time, PdDistrict, Resolution, Address, X, Y, Location
Từ yêu cầu bài toán nhóm tiến hành tiền xử lý dữ liệu bằng cách loại bỏ một
số trường không cần thiết, giữ lại các trường sau: Dates, Category, Address, X, Y
6
Trang 11Ứng dụng Weka vào bài tốn dự báo tội phạm
3.2 Phân lớp dữ liệu và Dự báo tội phạm
Khi cĩ dữ liệu đã được tiền xử lý, nhĩm tiến hành phân lớp dữ liệu dựa trên các giải thuật cĩ sẵn trong Weka, sau đĩ so sánh kết quả thu được
Nhĩm chia dữ liệu thành 2 phần, dùng bộ dữ liệu 20000 dịng để train và test trên bộ dữ liệu 100 dịng
Sau khi train, thu được model, nhĩm tiến hành test trên 100 bộ dữ liệu, kết quả thu được cao nhất là sử dụng thuật tốn Nạve Bayes, với kết quả thu được là 30%
Kết quả thu được thấp và chưa đủ độ tin cậy, do đĩ nhĩm cần phân tích và tập trung nghiên cứu các vấn đề về mặt xã hội liên quan tới tâm lý tội phạm, cũng như lựa chọn lại các thuộc tính sử dụng để phân lớp
IV Kết luận và Hướng phát triển
4.1 Kết luận
Trong quỹ thời gian hạn hẹp của mình, để hồn thành bài tiểu luận nhĩm đã tìm hiểu các thuật tốn phân lớp như Nạve Bayes, Decision Table, Tree J48 (cây C4.5)… Cũng như, tìm hiểu cơ bản cách sử dụng phần mềm Weka để phục vụ
7
Trang 12Ứng dụng Weka vào bài toán dự báo tội phạm
mục đích xử lý dữ liệu và phân lớp dữ liệu Từ đó, sử dụng phần mềm Weka và các thuật toán phân lớp để giải quyết bài toán dự báo tội phạm đạt được một số kết quả nhất định
4.2 Hướng phát triển
Trong thời gian tới, nhóm sẽ cố gắng xử lý trên những tập dữ liệu lớn hơn (số mẫu dữ liệu huấn luyện lớn hơn) để góp phần tăng tính chính xác của mô hình phân lớp Bên cạnh đó, nhóm cũng sẽ cố gắng áp dụng một vài công cụ xử lý dữ liệu lớn như Hadoop MapReduce hay Apache Spark để nâng cao tốc độ xử lý bài toán Ngoài ra, việc áp dụng các thuật toán mới hoặc nghiên cứu cải tiến các thuật toán cũ cũng là hướng mà nhóm cũng sẽ cố gắng thực hiện nhằm tăng độ tin cậy của kết quả dự báo
V Tài liệu tham khảo
1 Tom Mitchell, Machine Learning, McGraw-Hill Education, 1997
2 https://www.kaggle.com/c/sf-crime - truy cập ngày 06/08/2015
3 http://www.cs.waikato.ac.nz/ml/weka/documentation.html - truy cập ngày 06/08/2015
4 Phuc Do, Unit_1_DSS_Introduction_handout, UIT, 2015
8