Tải bản đầy đủ (.docx) (12 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (614.26 KB, 12 trang )

ĐẠ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
LỚP CAO HỌC KHMT, KHÓA 09, THÁNG 08 NĂM 2015

MÔN: HỆ HỖ TRỢ QUYẾT ĐỊNH
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
LỚP : CH KHMT K09
Tp. HỒ CHÍ MINH – 08/2015
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.
Hì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 - />MỤC LỤC
Ứ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ử
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.
5
Ứng dụng Weka vào bài toán dự báo tội phạm
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ô
đọ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
6
Ứng dụng Weka vào bài toán dự báo tội phạm

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.
Đ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
7
Ứng dụng Weka vào bài toán dự báo tội phạm
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 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
8
Ứng dụng Weka vào bài toán dự báo tội phạm
đượ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: />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.
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.
9
Ứng dụng Weka vào bài toán dự báo tội phạm
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.
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.
10
Ứng dụng Weka vào bài toán dự báo tội phạm
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 toán Naï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, để hoàn thành bài tiểu luận nhóm đã tìm
hiểu các thuật toán phân lớp như Naï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ụ 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
11
Ứng dụng Weka vào bài toán dự báo tội phạm
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. - truy cập ngày 06/08/2015.

3. - truy cập ngày
06/08/2015.
4. Phuc Do, Unit_1_DSS_Introduction_handout, UIT, 2015.
12

×