Download as pdf or txt
Download as pdf or txt
You are on page 1of 36

TRƯỜNG ĐẠI HỌC ĐIỆN LỰC

KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO CHUYÊN ĐỀ HỌC PHẦN


KHAI PHÁ DỮ LIỆU

KHAI PHÁ DỮ LIỆU SỬ DỤNG KỸ THUẬT HỌC MÁY LOGISTIC


REGRESSION ĐỂ DỰ ĐOÁN SỐNG CHẾT SAU THẢM HỌA TITANIC

Sinh viên thực hiện: NGUYỄN NGỌC DUY


NGUYỄN ĐÌNH TUẤN
PHAN HẢI SƠN
Giáo viên hướng dẫn: VŨ VĂN ĐỊNH
Lớp: D16CNPM4
Khoa: CÔNG NGHỆ THÔNG TIN
Chuyên ngành: CÔNG NGHỆ PHẦN MỀM

Hà Nội, tháng 4 năm 2024


PHIẾU CHẤM ĐIỂM

Họ và tên Chữ ký Ghi chú

Nguyễn Ngọc Duy

Nguyễn Đình Tuấn

Phan Hải Sơn

Giảng viên chấm:

Họ và tên Chữ ký Ghi chú

Giảng viên chấm 1:

Giảng viên chấm 2:


MỤC LỤC
LỜI MỞ ĐẦU ........................................................................................................... 1
CHƯƠNG 1. TỔNG QUAN KHAI PHÁ DỮ LIỆU ............................................. 2
1.1 GIỚI THIỆU VỀ KHAI PHÁ DỮ LIỆU .................................................................... 2
1.1.1 Diễn giải ..................................................................................................... 2
1.1.2 Các phương pháp khai thác dữ liệu ........................................................ 3
1.1.3 Một số tính năng nổi bật của khai phá dữ liệu....................................... 3
1.1.4 Quy trình khai phá dữ liệu....................................................................... 4
1.1.5 Ứng dụng khai phá dữ liệu....................................................................... 5
1.1.6 Các công cụ khai phá dữ liệu ................................................................... 6
1.2 TIỀN XỬ LÝ ........................................................................................................ 7
1.2.1 Dữ liệu ........................................................................................................ 8
1.2.2. Làm sạch dữ liệu (data cleaning)............................................................ 9
1.2.2.1Các vấn đề của dữ liệu....................................................................... 10
1.2.2.2Nguồn gốc/lý do của dữ liệu không sạch ......................................... 10
1.2.2.3 Giải pháp khi thiếu giá trị của thuộc tính ...................................... 10
1.2.2.4Giải pháp khi dữ liệu chứa nhiễu lỗi................................................ 11
1.2.3. Tích hợp dữ liệu (data integration) ...................................................... 11
1.2.4. Biến đổi dữ liệu (data transformation) ................................................ 12
1.2.5. Thu giảm dữ liệu (data reduction) ....................................................... 13
CHƯƠNG 2. TỔNG QUAN VỀ HỌC MÁY VÀ KỸ THUẬT LOGISTIC
REGRESSION ........................................................................................................ 14
1.1. GIỚI THIỆU VỀ KHAI PHÁ DỮ LIỆU ................................................................. 14
1.2. PHÂN NHÓM CÁC THUẬT TOÁN HỌC MÁY ...................................................... 14
1.2.1. Học có giám sát (Supervised Learning) ............................................... 14
1.2.2. Học phi giám sát (Unsupervised Learning)-UL .................................. 15
1.2.3. Học tăng cường (Reinforcement Learning) ........................................ 18
1.2.4. Học bán giám sát (semi-Supervised Learning) ................................... 18
1.3. ỨNG DỤNG CỦA HỌC MÁY .............................................................................. 19
1.4 MÔ HÌNH HỌC MÁY LOGISTIC ........................................................................ 22
1.4.1 Giới thiệu ................................................................................................. 22
1.4.2 Các loại hồi quy Logistic ........................................................................ 22
1.4.3 Sai số dự đoán.......................................................................................... 23
1.4.5 Hàm đánh giá .......................................................................................... 23
1.4.6 Ưu điểm – Nhược điểm........................................................................... 24
CHƯƠNG 3. THỰC NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ ............................. 25
3.1 BÀI TOÁN DỰ ĐOÁN SỐNG CHẾT SAU THẢM HỌA TITANIC .............................. 25
3.1.1. Phát biển bài toán .................................................................................. 25
3.1.2. Chuẩn bị dữ liệu ..................................................................................... 25
3.1.3. Xử lý dữ liệu ........................................................................................... 26
3.1.4.1. Code................................................................................................... 27
3.1.4.2. Chạy dữ liệu ..................................................................................... 28
3.1.4.3. Hình ảnh minh họa .......................................................................... 29
KẾT LUẬN ............................................................................................................. 31
TÀI LIỆU THAM KHẢO ..................................................................................... 32
LỜI MỞ ĐẦU

Trong lời đầu tiên của báo cáo “Khai phá dữ liệu sử dụng kỹ thuật học máy
logistic regression để dự đoán sống chết sau thảm họa titanic”, nhóm chúng em
muốn gửi những lời cảm ơn và biết ơn chân thành nhất của mình tới tất cả những
người đã hỗ trợ, giúp đỡ chúng em về kiến thức và tinh thần trong quá trình thực
hiện bài làm.

Chúng em xin chân thành gửi lời cảm ơn tới các thầy, cô giáo trong Trường
Đại Học Điện Lực nói chung và các thầy cô giáo trong Khoa Công nghệ thông tin
nói riêng đã tận tình giảng dạy, truyền đạt cho chúng em những kiến thức cũng như
kinh nghiệm quý báu trong suốt quá trình học tập.

Đặc biệt, chúng em xin gửi lời cảm ơn đến thầy Vũ Văn Định, giảng viên Khoa
Công nghệ thông tin - Trường Đại Học Điện Lực. Thầy đã tận tình theo sát giúp đỡ,
trực tiếp chỉ bảo, hướng dẫn trong suốt quá trình nghiên cứu và học tập của chúng
em. Trong thời gian học tập với thầy, chúng em không những tiếp thu thêm nhiều
kiến thức bổ ích mà còn học tập được tinh thần làm việc, thái độ nghiên cứu khoa
học nghiêm túc, hiệu quả. Đây là những điều rất cần thiết cho chúng em trong quá
trình học tập và công tác sau này.

Do thời gian thực hiện có hạn kiến thức còn nhiều hạn chế nên bài làm của
nhóm chúng em chắc chắn không tránh khỏi những thiếu sót nhất định. Chúng em
rất mong nhận được ý kiến đóng góp của thầy, cô giáo và các bạn để nhóm em có
thêm kinh nghiệm và tiếp tục hoàn thiện báo cáo của mình.

Chúng em xin chân thành cảm ơn!

1
CHƯƠNG 1. TỔNG QUAN KHAI PHÁ DỮ LIỆU
1.1 Giới thiệu về khai phá dữ liệu

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" hoặc KDD.

1.1.1 Diễn giải

Khai phá dữ liệu là một bước của quá trình khai thác tri thức (Knowledge Discovery
Process), bao gồm:

-Xác định vấn đề và không gian dữ liệu để giải quyết vấn đề (Problem
understanding and data understanding).

-Chuẩn bị dữ liệu (Data preparation), bao gồm các quá trình làm sạch dữ liệu
(data cleaning), tích hợp dữ liệu (data integration), chọn dữ liệu (data selection),
biến đổi dữ liệu (data transformation).

-Khai thác dữ liệu (Data mining): xác định nhiệm vụ khai thác dữ liệu và lựa
chọn kỹ thuật khai thác dữ liệu. Kết quả cho ta một nguồn tri thức thô.

-Đánh giá (Evaluation): dựa trên một số tiêu chí tiến hành kiểm
tra và lọc nguồn tri thức thu được.

2
-Triển khai (Deployment).

-Quá trình khai thác tri thức không chỉ là một quá trình tuần tự từ bước đầu tiên
đến bước cuối cùng mà là một quá trình lặp và có quay trở lại các bước đã qua.

1.1.2 Các phương pháp khai thác dữ liệu

Phân loại (Classification): Là phương pháp dự báo, cho phép phân loại một
đối tượng vào một hoặc một số lớp cho trước.

Hồi qui (Regression): Khám phá chức năng học dự đoán, ánh xạ một mục dữ
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 trong đó người ta tìm
cách xác định một tập hợp hữu hạn các cụm để mô tả dữ 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 mô tả nhỏ gọn cho một bộ (hoặc tập hợp con)
của dữ liệu.

Mô hình ràng buộc (Dependency modeling): Tìm mô hình cục bộ mô tả các


phụ thuộc đáng kể giữa các biến hoặc giữa các giá trị của một tính năng trong tập dữ
liệu hoặc trong một phần của tập dữ liệu.

Dò tìm biến đổi và độ lệch (Change and Deviation Dectection): Khám phá
những thay đổi quan trọng nhất trong bộ dữ liệu.

1.1.3 Một số tính năng nổi bật của khai phá dữ liệu
- Dự đoán các mẫu dựa trên xu hướng trong dữ liệu.
- Tính toán dự đoán kết quả.
- Tạo thông tin phản hồi để phân tích.
- Tập trung vào cơ sở dữ liệu lớn hơn

3
- Phân cụm dữ liệu trực quan

1.1.4 Quy trình khai phá dữ liệu

Các bước quan trọng khi khai phá dữ liệu bao gồm:

Bước 1: Tiền xử lý, làm sạch dữ liệu – Trong bước này, dữ liệu được làm sạch
sao cho không có tạp âm hay bất thường trong dữ liệu.

Bước 2: Tích hợp dữ liệu – Trong quá trình tích hợp dữ liệu, nhiều nguồn dữ
liệu sẽ kết hợp lại thành một.

Bước 3: Lựa chọn dữ liệu – Trong bước này, dữ liệu được trích xuất từ cơ sở
dữ liệu.

Bước 4: Chuyển đổi dữ liệu – Trong bước này, dữ liệu sẽ được chuyển đổi để
thực hiện phân tích tóm tắt cũng như các hoạt động tổng hợp.

Bước 5: Khai phá dữ liệu – Trong bước này, chúng ta trích xuất dữ liệu hữu
ích từ nhóm dữ liệu hiện có.

Bước 6: Đánh giá mẫu – Chúng ta phân tích một số mẫu có trong dữ liệu.

Bước 7: Trình bày thông tin – Trong bước cuối cùng, thông tin sẽ được thể
hiện dưới dạng cây, bảng, biểu đồ và ma trận. Quá trình được thực hiện qua 9 bước:

1- Tìm hiểu lĩnh vực của bài toán (ứng dụng): Các mục đích của bài toán, các
tri thức cụ thể của lĩnh vực.

2- Tạo nên (thu thập) một tập dữ liệu phù hợp.

3- Làm sạch và tiền xử lý dữ liệu.

4
4- Giảm kích thức của dữ liệu, chuyển đổi dữ liệu: Xác định thuộc tính quan
trọng, giảm số chiều (số thuộc tính), biểu diễn bất biến.

5- Lựa chọn chức năng khai phá dữ liệu: Phân loại, gom cụm, dự báo, sinh ra
các luật kết hợp.

6- Lựa chọn/ Phát triển (các) giải thuật khai phá dữ liệu phù hợp.

7- Tiến hành khai phá dữ liệu.

8- Đánh giá mẫu thu được và biểu diễn tri thức: Hiển thị hóa, chuyển đổi, bỏ
đi các mẫu dư thừa,…

9 - Sử dụng tri thức được khai phá.

Hình 1.1 Quy trình khai phá dữ liệu

1.1.5 Ứng dụng khai phá dữ liệu

Có nhiều ứng dụng của khai phá dữ liệu thường thấy như:

5
- Phân tích thị trường chứng khoán.
- Phát hiện gian lận.
- Quản lý rủi ro và phân tích doanh nghiệp…

1.1.6 Các công cụ khai phá dữ liệu

RapidMiner: Công cụ đầu tiên phải kể tới đó là RapidMiner. Đây là công cụ


khai phá dữ liệu khá phổ biến hiện nay. Được viết trên nền tảng JAVA nhưng không
yêu cầu mã hóa để vận hành. Ngoài ra, nó còn cung cấp các chức năng khai thác dữ
liệu khác nhau như tiền xử lý dữ liệu, biểu diễn dữ liệu, lọc, phân cụm...

Weka: Công cụ được cho ra đời tại Đại học Wichita là một phần mềm khai
thác dữ liệu mã nguồn mở. Tương tự như RapidMiner, công cụ này không yêu cầu
mã hóa và sử dụng GUI đơn giản.

Sử dụng Weka, người dùng có thể gọi trực tiếp các thuật toán học máy hoặc nhập
chúng bằng mã Java. Weka được trang bị đa dạng chức năng như trực quan hóa, tiền
xử lý, phân loại, phân cụm...

Knime: Với khả năng hoạt động vô cùng mạnh mẽ tích hợp nhiều thành phần
khác nhau của học máy và khai phá dữ liệu để cung cấp một nền tảng. KNime hỗ trợ
người dùng rất nhiều trong việc xử lý và phân tích dữ liệu, trích xuất, chuyển đổi và
tải dữ liệu.

Apache Mahout: Từ nền tảng Big Data Hadoop, người ta đã cho cho ra đời
thêm Apache Mahout với mục đích giải quyết nhu cầu ngày càng tăng về khai phá
dữ liệu và hoạt động phân tích trong Hadoop. Nó được trang bị nhiều chức năng học
máy khác nhau như phân loại, hồi quy, phân cụm...

Oracle Data Mining: Khi sử dụng Oracle Data Mining. nó cho phép người
dùng thực hiện khai phá dữ liệu trên cơ sở dữ liệu SQL để trích xuất các khung hình

6
và biểu đồ. Các phân tích sẽ hiển thị một cách trực quan giúp người dùng dễ dàng
đưa ra dự đoán cho kế hoạch tương lai.

TeraData: TeraData cung cấp dịch vụ kho chứa các công cụ khai phá dữ liệu.
Nhờ khả năng thông minh được trang bị, công cụ có thể dựa trên tần suất sử dụng
dữ liệu của người dùng và thực hiện việc cho phép truy cập nhanh hay chậm.

Với một dữ liệu bạn thường xuyên cần sử dụng, TeraData sẽ cho phép truy cập nhanh
hơn là một dữ liệu ít được sử dụng. Đối với dữ liệu, nhập kho là một yêu cầu cần
thiết.

Orange: Công cụ được lập trình bằng Python với giao diện trực quan và tương
tác dễ dàng. Phần mềm Orange được biết đến bởi việc tích hợp các công cụ khai phá
dữ liệu và học máy thông minh, đơn giản

1.2 Tiền xử lý

Quá trình tiền xử lý dữ liệu, đầu tiên phải nắm được dạng dữ liệu, thuộc tính,
mô tả của dữ liệu thao tác. Sau đó tiếp hành 4 giai đoạn chính: làm sạch, tích hợp,
biến đổi, thu giảm dữ liệu.

7
1.2.1 Dữ liệu

Tập dữ liệu

- Một tập dữ liệu (dataset) là một tập hợp các đối tượng (object) và các thuộc tính
của chúng.

- Mỗi thuộc tính (attribute) mô tả một đặc điểm của một đối tượng.

Hình 1.2. Ví dụ dataset

Các kiểu tập dữ liệu

- Bản ghi (record): Các bản ghi trong cở sở dữ liệu quan hệ. Ma trận dữ liệu. Biểu
diễn văn bản. Hay dữ liệu giao dịch.„

- Đồ thị (graph): World wide web. Mạng thông tin, hoặc mạng xã hội

- Dữ liệu có trật tự: Dữ liệu không gian (ví dụ: bản đồ). Dữ liệu thời gian (ví dụ:
time-series data). Dữ liệu chuỗi (ví dụ: chuỗi giao dịch).

Các kiểu giá trị thuộc tính:

- Kiểu định danh/chuỗi (norminal): không có thứ tự. Ví dụ: Các thuộc tính như :
Name, Profession, …

- Kiểu nhị phân (binary): là một trường hợp đăc biệt của kiểu định danh. Tập các
giá trị chỉ gồm có 2 giá trị (Y/N, 0/1, T/F).

8
- Kiểu có thứ tự (ordinal): Integer, Real, …

- Lấy giá trị từ một tập có thứ tự giá trị. Ví dụ: Các thuộc tính lấy giá trị số như :
Age, Height ,… Hay lấy một tập xác định, thuộc tính Income lấy giá trị từ tập {low,
medium, high}.

Kiểu thuộc tính rời rạc (discrete-valued attributes): có thể là tập các giá trị của
một tập hữu hạn. Bao gồm thuộc tính có kiểu giá trị là các số nguyên, nhị phân.

Kiểu thuộc tính liên tục (continuous-valued attributes):Các giá trị là số thực.

Các đặc tính mô tả của dữ liệu:

- Giúp hiểu rõ về dữ liệu có được: chiều hướng chính/trung tâm, sự biến thiên, sự
phân bố.

- Sự phân bố của dữ liệu (data dispersion):

+ Giá trị cực tiểu/cực đại (min/max).

+ Giá trị xuất hiện nhiều nhất (mode).

+ Giá trị trung bình (mean).

+ Giá trị trung vị (median).

+ Sự biến thiên (variance) và độ lệch chuẩn (standard deviation) .

+ Các ngoại lai (outliers).

1.2.2. Làm sạch dữ liệu (data cleaning)


Đối với dữ liệu thu thập được, cần xác định các vấn đề ảnh hưởng là cho nó
không sạch. Bởi vì, dữ liệu không sạch (có chứa lỗi, nhiễu, không đầy đủ, có mâu
thuẫn) thì các tri thức khám phá được sẽ bị ảnh hưởng và không đáng tin cậy, sẽ dẫn
đến các quyết định không chính xác. Do đó, cần gán các giá trị thuộc tính còn thiếu;

9
sửa chữa các dữ liệu nhiễu/lỗi; xác định hoặc loại bỏ các ngoại lai (outliers); giải
quyết các mâu thuẫn dữ liệu.

1.2.2.1Các vấn đề của dữ liệu

Trên thực thế dữ liệu thu có thể chứa nhiễu, lỗi, không hoàn chỉnh, có mâu
thuẫn.

- Không hoàn chỉnh (incomplete): Thiếu các giá trị thuộc tính hoặc thiếu một
số thuộc tính. Ví dụ: salary = <undefined>.

- Nhiễu/lỗi (noise/error): Chứa đựng những lỗi hoặc các mang các giá trị bất
thường. Ví dụ: salary = “-525” , giá trị của thuộc tính không thể là một số âm.

- Mâu thuẫn (inconsistent): Chứa đựng các mâu thuẫn (không thống nhất). Ví
dụ: salary = “abc” , không phù hợp với kiểu dữ liệu số của thuộc tính salary.

1.2.2.2Nguồn gốc/lý do của dữ liệu không sạch

- Không hoàn chỉnh (incomplete): Do giá trị thuộc tính không có (not
available) tại thời điểm được thu thập. Hoặc các vấn gây ra bởi phần cứng, phần
mềm, hoặc người thu thập dữ liệu.

- Nhiễu/lỗi (noise/error): Do việc thu thập dữ liệu, hoăc việc nhập dữ liệu,
hoặc việc truyền dữ liệu.

- Mâu thuẫn (inconsistent): Do dữ liệu được thu thập có nguồn gốc khác nhau.
Hoặc vi phạm các ràng buộc (điều kiện) đối với các thuộc tính.

1.2.2.3 Giải pháp khi thiếu giá trị của thuộc tính

- Bỏ qua các bản ghi có các thuộc tính thiếu giá trị. Thường áp dụng trong các
bài toán phân lớp. Hoặc khi tỷ lệ % các giá trị thiếu đối với các thuộc tính quá lớn.

- Một số người sẽ đảm nhiệm việc kiểm tra và gán các giá trị thuộc tính còn thiếu,
nhưng đòi hỏi chi phí cao và rất tẻ nhạt.
10
- Gán giá trị tự động bởi máy tính:

+ Gán giá trị mặc định

+ Gán giá trị trung bình của thuộc tính đó.

+ Gán giá trị có thể xảy ra nhất – dựa theo phương pháp xác suất.

1.2.2.4Giải pháp khi dữ liệu chứa nhiễu lỗi

- Phân khoảng (binning): Sắp xếp dữ liệu và phân chia thành các khoảng (bins)
có tần số xuất hiện giá trị như nhau. Sau đó, mỗi khoảng dữ liệu có thể được biểu
diễn bằng trung bình, trung vị, hoặc các giới hạn … của các giá trị trong khoảng đó.

- Hồi quy (regression): Gắn dữ liệu với một hàm hồi quy.

- Phân cụm (clustering): Phát hiện và loại bỏ các ngoại lai (sau khi đã xác định
các cụm).

- Kết hợp giữa máy tính và kiểm tra của con người: Máy tính sẽ tự động phát hiện
ra các giá trị nghi ngờ. Các giá trị này sẽ được con người kiểm tra lại.

1.2.3. Tích hợp dữ liệu (data integration)


Tích hợp dữ liệu là quá trình trộn dữ liệu từ các nguồn khác nhau vào một kho
dữ liệu có sẵn cho quá trình khai phá dữ liệu. Khi tích hợp cần xác định thực thể từ
nhiều nguồn dữ liệu để tránh dư thừa dữ liệu.

Ví dụ: Bill Clinton ≡ B.Clinton. Việc dư thừa dữ liệu là thường xuyên xảy ra, khi
tích hợp nhiều nguồn. Bởi cùng một thuộc tính (hay cùng một đối tượng) có thể
mang các tên khác nhau trong các nguồn (cơ sở dữ liệu) khác nhau. Hay các dữ liệu
suy ra được như một thuộc tính trong một bảng có thể được suy ra từ các thuộc tính
trong bảng khác. Hay sự trùng lắp các dữ liệu. Các thuộc tính dư thừa có thể bị phát
hiện bằng phân tích tương quan giữa chúng.

11
Phát hiện và xử lý các mâu thuẫn đối với giá trị dữ liệu: Đối với cùng một thực
thể trên thực tế, nhưng các giá trị thuộc tính từ nhiều nguồn khác nhau lại khác nhau.
Có thể cách biểu diễn khác nhau, hay mức đánh giá, độ do khác nhau. Yêu cầu chung
đối với quá trình tích hợp là giảm thiểu (tránh được là tốt nhất) các dư thừa và các
mâu thuẫn. Giúp cải thiện tốc độ của quá trình khai phá dữ liệu và nâng cao chất
lượng của các kết quả tri thức thu được.

1.2.4. Biến đổi dữ liệu (data transformation)


Biến đổi dữ liệu là việc chuyển toàn bộ tập giá trị của một thuộc tính sang một
tập các giá trị thay thế, sao cho mỗi giá trị cũ tương ứng với một trong các giá trị
mới.

Các phương pháp biến đổi dữ liệu:

- Làm trơn (smoothing): Loại bỏ nhiễu/lỗi khỏi dữ liệu.

- Kết hợp (aggregation): Sự tóm tắt dữ liệu, xây dựng các khối dữ liệu.

- Khái quát hóa (generalization): Xây dựng các phân cấp khái niệm. - Chuẩn hóa
(normalization): Đưa các giá trị về một khoảng được chỉ định.

+ Chuẩn hóa min-max, giá trị mới nằm khoảng [new_mini , new_maxi]

+ Chuẩn hóa z-score, với μi , σi : giá trị trung bình và độ lệch chuẩn của thuộc
tính i

+ Chuẩn hóa bởi thang chia 10, với j là giá trị số nguyên nhỏ nhất sao cho:
max({vnew}) < 1

12
- Xây dựng các thuộc tính mới dựa trên các thuộc tính ban đầu.

1.2.5. Thu giảm dữ liệu (data reduction)

Một kho dữ liệu lớn có thể chứa lượng dữ liệu lên đến terabytes sẽ làm cho quá
trình khai phá dữ liệu chạy rất mất thời gian, do đó nên thu giảm dữ liệu. Việc thu
giảm dữ liệu sẽ thu được một biểu diễn thu gọn, mà nó vẫn sinh ra cùng (hoặc xấp
xỉ) các kết quả khai phá như tập dữ liệu ban đầu. Các chiến lược thu giảm:

- Giảm số chiều (dimensionality reduction), loại bỏ bớt các thuộc tính không (ít)
quan trọng.

- Giảm lượng dữ liệu (data/numberosity reduction)

+ Kết hợp khối dữ liệu.

+ Nén dữ liệu.

+ Hồi quy.

+ Rời rạc hóa

13
CHƯƠNG 2. TỔNG QUAN VỀ HỌC MÁY VÀ KỸ THUẬT LOGISTIC
REGRESSION

1.1. Giới thiệu về khai phá dữ liệu


Học máy (Machine learning) là một lĩnh vực con của Trí tuệ nhân tạo (Artificial
Intelligence) sử dụng các thuật toán cho phép máy tính có thể học từ dữ liệu để thực
hiện các công việc thay vì được lập trình một cách rõ ràng, cung cấp cho hệ thống
khả năng tự động học hỏi và cải thiện hiệu suất, độ chính xác dựa trên những kinh
nghiệm từ dữ liệu đầu vào. Học máy tập trung vào việc phát triển các phần mềm,
chương trình máy tính có thể truy cập vào dữ liệu và tận dụng nguồn dữ liệu đó để
tự học.

Học máy vẫn đòi hỏi sự đánh giá của con người trong việc tìm hiểu dữ liệu cơ
sở và lựa chọn các kĩ thuật phù hợp để phân tích dữ liệu. Đồng thời, trước khi sử
dụng, dữ liệu phải sạch, không có sai lệch và không có dữ liệu giả.

Các mô hình học máy yêu cầu lượng dữ liệu đủ lớn để "huấn luyện" và đánh giá mô
hình. Trước đây, các thuật toán học máy thiếu quyền truy cập vào một lượng lớn dữ
liệu cần thiết để mô hình hóa các mối quan hệ giữa các dữ liệu. Sự tăng trưởng trong
dữ liệu lớn (big data) đã cung cấp các thuật toán học máy với đủ dữ liệu để cải thiện
độ chính xác của mô hình và dự đoán.

1.2. Phân nhóm các thuật toán học máy


1.2.1. Học có giám sát (Supervised Learning)
Là phương pháp sử dụng những dữ liệu đã được gán nhãn từ trước để suy luận
ra quan hệ giữa đầu vào và đầu ra. Các dữ liệu này được gọi là dữ liệu huấn luyện
và chúng là cặp các đầu vào-đầu ra. Học có giám sát sẽ xem xét các tập huấn luyện
này để từ đó có thể đưa ra dự đoán đầu ra cho 1 đầu vào mới chưa gặp bao giờ. Ví

14
dụ dự đoán giá nhà, phân loại email. Các mô hình như mạng Nơ-ron, SVM, CNN,…

Hình 1.2.1. Mô hình học có giám sát

Supervised Learning Là thuât toán dự đoán đầu ra (outcome) của một dữ liệu
mới (new input) dựa trên cặp (input, outcome) đã biết tư trước. Cặp dữ liệu này còn
đươc gọi là data, label tức dữ liệu, nhãn. Supervised Learning Là nhóm phổ biến
nhất trong các thuật toán Machine learning.

1.2.2. Học phi giám sát (Unsupervised Learning)-UL


Khác với học có giám sát, học phi giám sát sử dụng những dữ liệu chưa được
gán nhãn từ trước để suy luận. Phương pháp này thường được sử dụng để tìm cấu
trúc của tập dữ liệu. Tuy nhiên lại không có phương pháp đánh giá được cấu trúc tìm
ra được là đúng hay sai. Ví dụ như phân cụm dữ liệu, triết xuất thành phần chính của
một chất nào đó. K-mean Ứng dụng phổ biến nhất của học không giám sát là gom
cụm (cluster)

15
Hình 1.2.2. Mô hình học không giám sát

Trong thuật toán này, chúng ta không biết được dữ liệu đầu ra hay nhãn mà
chỉ có dữ liệu đầu vào. Thuật toán Học không giám sát dựa vào cấu trúc của dữ liệu
để thực hiện một công việc nào đó, ví dụ như phân nhóm hoặc giảm số chiều của dữ
liệu để thuận tiện trong việc lưu trữ và tính toán.

Một cách toán học, Học không giám sát là khi chúng ta chỉ có dữ liệu vào X
mà không biết nhãn Y tương ứng.

Sự khác nhau giữa học có giám sát và học không giám sát:

Hình 1.2.3. Sự khác biệt giữa 2 mô hình SL và UL

16
Học có giám sát: Là cách huấn luyện một mô hình trong đó dữ liệu học có đầu
vào và đầu ra tương ứng đầu vào đó. Mô hình được huấn luyện bằng cách giảm thiểu
sai số lỗi (loss) của các dự đoán tại các vòng lặp huấn luyện. Sau quá trình huấn
luyện. mô hình sẽ có khả năng đưa ra dự đoán về đầu ra với một đầu vào mới gặp
(không có trong dữ liệu học). Nếu không gian đầu ra được biểu diễn dứới dạng rời
rạc, ta gọi đó là bài toán phân loại (classification). Nếu không gian đầu ra được biểu
diễn dưới dạng liên tục, ta gọi đó là bài toán hồi quy (regression).

Học không giám sát: Là cách huấn luyện một mô hình trong đó dữ liệu học
chỉ bao gồm đầu vào mà không có đầu ra. Mô hình sẽ được huấn luyện cách để tìm
cấu trúc hoặc mối quan hệ giữa các đầu vào. Một trong những phương pháp học
không giám sát quan trọng nhất là phân cụm (clustering): Tạo các cụm khác nhau
với mỗi cụm biểu diễn một đặc trưng nào đó của dữ liệu và phân các đầu vào mới
vào các cụm theo các đặc trưng của đầu vào đó. Các phương pháp học không giám
sát khác có thể kể đến như: phát hiện điểm bất thường (anomaly detection), Singular-
value decomposition,...

17
1.2.3. Học tăng cường (Reinforcement Learning)
Phương pháp học tăng cường tập trung vào việc làm sao để cho 1 tác tử trong
môi trường có thế hành động sao cho lấy được phần thưởng nhiều nhất có thể. Khác
với học có giám sát nó không có cặp dữ liệu gán nhãn trước làm đầu vào và cũng
không có đánh giá các hành động là đúng hay sai.

Hình 1.2.4. Học tăng cường

1.2.4. Học bán giám sát (semi-Supervised Learning)


Các bài toán khi chúng ta có một lượng lớn dữ liệu X nhưng chỉ một phần
trong chúng được gán nhãn được gọi là Semi-Supervised Learning. Những bài toán
thuộc nhóm này nằm giữa hai nhóm được nêu bên trên. Một ví dụ điển hình của
nhóm này là chỉ có một phần ảnh hoặc văn bản được gán nhãn (ví dụ bức ảnh về
người, động vật hoặc các văn bản khoa học, chính trị) và phần lớn các bức ảnh/văn
bản khác chưa được gán nhãn được thu thập từ internet.

Thực tế cho thấy rất nhiều các bài toán Machine Learning thuộc vào nhóm
này vì việc thu thập dữ liệu có nhãn tốn rất nhiều thời gian và có chi phí cao. Rất

18
nhiều loại dữ liệu thậm chí cần phải có chuyên gia mới gán nhãn được (ảnh y học
chẳng hạn). Ngược lại, dữ liệu chưa có nhãn có thể được thu thập với chi phí thấp từ
internet.

Hình 1.2.5. Học bán giám sát

1.3. Ứng dụng của học máy


Nhiều hoạt động hàng ngày của chúng ta được trợ giúp bởi các thuật toán
machine learning, bao gồm:

• Phát hiện gian lận.


• Các kết quả tìm kiếm trên web.
• Quảng cáo theo thời gian thực trên các trang web và các thiết bị di động.
• Phân tích tình cảm dựa trên văn bản.
• Điểm số tín dụng và lời mời chào tiếp theo tốt nhất.
• Dự đoán những hư hỏng của thiết bị.
• Những mô hình định giá mới. Phát hiện xâm nhập mạng.
• Nhận dạng qua pattern (mẫu) và hình ảnh.
19
• Lọc bỏ các email spam.

Những lĩnh vực đang áp dụng Machine learning hiện nay:

• Các dịch vụ tài chính

Ngân hàng và những doanh nghiệp hoạt động trong lĩnh vực tài chính sử dụng
công nghệ Machine Learning với 2 mục đích chính: xác định insights trong dữ liệu
và ngăn chặn lừa đảo. Insights sẽ biết được các cơ hội đầu tư hoặc thông báo đến
nhà đầu tư thời điểm giao dịch hợp lý. Data mining cũng có thể tìm được những
khách hàng đang có hồ sơ rủi ro cao hoặc sử dụng giám sát mạng để chỉ rõ những
tín hiệu lừa đảo.

• Chính phủ

Các tổ chức chính phủ hoạt động về an ninh cộng đồng hoặc tiện ích xã hội sở
hữu rất nhiều nguồn dữ liệu có thể khai thác insights. Ví dụ, khi phân tích dữ liệu
cảm biến, chính phủ sẽ tăng mức độ hiệu quả của dịch vụ và tiết kiệm chi phí.
Machine learning còn hỗ trợ phát hiện gian lận và giảm thiểu khả năng trộm cắp
danh tính.

• Chăm sóc sức khỏe

Machine learning là 1 xu hướng phát triển nhanh chóng trong ngành chăm sóc
sức khỏe, nhờ vào sự ra đời của các thiết bị và máy cảm ứng đeo được sử dụng dữ
liệu để đánh giá tình hình sức khỏe của bệnh nhân trong thời gian thực (real-time).
Công nghệ Machine Learning còn giúp các chuyên gia y tế xác định những xu hướng
hoặc tín hiệu để cải thiện khả năng điều trị, chẩn đoán bệnh.

• Marketing và sales

20
Dựa trên hành vi mua hàng trước đây, các trang web sử dụng Machine
Learning phân tích lịch sử mua hàng, từ đó giới thiệu những vật dụng mà bạn có thể
sẽ quan tâm và yêu thích. Khả năng tiếp nhận dữ liệu, phân tích và sử dụng những
dữ liệu đó để cá nhân hóa trải nghiệm mua sắm (hoặc thực hiện chiến dịch
Marketing) chính là tương tai của ngành bán lẻ.

• Dầu khí

Tìm kiếm những nguồn nguyên liệu mới. Phân tích các mỏ dầu dưới đất. Dự
đoán tình trạng thất bại của bộ cảm biến lọc dầu. Sắp xếp các kênh phân phối để
đạt hiệu quả và tiết kiệm chi phí. Có thể nói, số lượng các trường hợp sử dụng
Machine Learning trong ngành công nghiệp này cực kì lớn và vẫn ngày càng mở
rộng.

• Vận tải

Phân tích dữ liệu để xác định patterns & các xu hướng là trọng tâm trong ngành
vận tải vì đây là ngành phụ thuộc vào khả năng tận dụng hiệu quả trên mỗi tuyến
đường và dự đoán các vấn đề tiềm tàng để gia tăng lợi nhuận. Các chức năng phân
tích dữ liệu và modeling của Machine learning đóng vai trò quan trọng với các doanh
nghiệp vận chuyện, vận tải công cộng và các tổ chức vận chuyển khác.

21
1.4 Mô hình học máy Logistic
1.4.1 Giới thiệu

- Kỹ thuật phân loại là một phần quan trọng của ứng dụng học máy và khai thác
dữ liệu. Khoảng 70% các vấn đề trong Khoa học Dữ liệu là các vấn đề về phân
loại. Có rất nhiều vấn đề về phân loại nhưng hồi quy hậu cần là một phương pháp
hồi quy rất phổ biến và hữu ích để giải quyết vấn đề phân loại nhị phân. Một loại
phân loại khác là Phân loại đa thức, xử lý các vấn đề trong đó nhiều lớp có mặt
trong biến đích.
- Hồi quy logistic là một trong những thuật toán Học máy đơn giản và được sử
dụng phổ biến nhất để phân loại hai lớp. Nó rất dễ thực hiện và có thể được sử
dụng làm cơ sở cho bất kỳ vấn đề phân loại nhị phân nào. Các khái niệm cơ bản
cơ bản của nó cũng rất hữu ích trong việc học sâu. Hồi quy logistic mô tả và ước
tính mối quan hệ giữa một biến nhị phân phụ thuộc và các biến độc lập.
- Hồi quy logistic là một phương pháp thống kê để dự đoán các lớp nhị phân. Biến
kết quả hoặc biến mục tiêu có bản chất là phân đôi, phân đôi có nghĩa là chỉ có
hai lớp khả dĩ. ví dụ, nó có thể được sử dụng cho các vấn đề phát hiện ung thư.
Nó tính toán xác suất của một sự kiện xảy ra.
- Đây là một trường hợp đặc biệt của hồi quy tuyến tính trong đó biến mục tiêu có
bản chất phân loại. Nó sử dụng nhật ký tỷ lệ cược làm biến phụ thuộc. Hồi quy
logistic dự đoán xác suất xuất hiện của một sự kiện nhị phân bằng cách sử dụng
hàm logit.

1.4.2 Các loại hồi quy Logistic

- Multinomial Logistic Regression: Biến mục tiêu có ba hoặc nhiều danh mục
danh nghĩa như dự đoán loại Rượu.

22
- Hồi quy Logistic thứ tự: biến mục tiêu có ba hoặc nhiều danh mục thứ tự như
xếp hạng nhà hàng hoặc sản phẩm từ 1 đến 5.
- Hồi quy logistic nhị phân: Biến mục tiêu chỉ có hai kết quả có thể xảy ra, chẳng
hạn như Spam hoặc Không phải Spam, Ung thư hoặc Không có Ung thư.

1.4.3 Sai số dự đoán


Sai số dự đoán được tính bằng công thức sau:

Trong đó, e là sai số dự đoán, y là giá trị thực và ŷ là giá trị dự đoán (hay còn
gọi là y_pred). Hàm bình phương để tránh phương trình có thể ra kết quả âm và vì e
là sai số, nên giá trị này càng nhỏ càng tốt.
1.4.4 Hàm mất mát

1.4.5 Hàm đánh giá


• Accuracy : (ACC)
Cách đơn giản và hay được sử dụng nhất là accuracy (độ chính xác). Cách đánh giá
này đơn giản tính tỉ lệ giữa số điểm được dự đoán đúng và tổng số điểm trong tập
dữ liệu kiểm thử:

Trong đó TP, TN là dự đoán đúng


FP, FN là dự đoán sai

23
- Precision - bao nhiêu cái đúng được lấy ra

- Recall - bao nhiêu cái được lấy ra là đúng

1.4.6 Ưu điểm – Nhược điểm


- Ưu điểm: Do tính chất đơn giản và hiệu quả, không đòi hỏi sức mạnh tính toán
cao, dễ thực hiện, dễ diễn giải, được sử dụng rộng rãi bởi các nhà phân tích dữ liệu
và nhà khoa học. Cũng không yêu cầu mở rộng các tính năng. Hồi quy logistic cung
cấp điểm xác suất cho các quan sát.
- Nhược điểm: Hồi quy logistic không thể xử lý một số lượng lớn các tính năng
biến phân loại. Nó dễ bị trang bị quá mức. Ngoài ra, không thể giải quyết vấn đề phi
tuyến tính với hồi quy logistic, đó là lý do tại sao nó yêu cầu chuyển đổi các đối
tượng phi tuyến tính. hồi quy logistic sẽ không hoạt động tốt với các biến độc lập
không tương quan với biến mục tiêu và rất giống nhau hoặc tương quan với nhau.

24
CHƯƠNG 3. THỰC NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ

3.1 Bài toán dự đoán sống chết sau thảm họa titanic
3.1.1. Phát biển bài toán

Bài toán đoán sống chết sau thảm họa titanic đưa ra tất cả các thông tin của
chuyến tàu titanic để từ đó làm căn cứ dự đoán sống chết sau thảm họa titanic ở thời
điểm hiện tại cho đến thời điểm sau đó.

3.1.2. Chuẩn bị dữ liệu

Hình 3.1. Dữ liệu dự chuẩn đoán sống chết sau thảm họa Titanic
25
Bộ dữ liệu gồm 9 cột với:
Dữ liệu đầu vào X gồm:
1. Pclass (hạng khách hàng)
2. Name (tên khách hàng)
3. Sex (giới tính)
4. Age (tuổi)
5. SibSp (số anh, chị, em, vợ, chồng trên tàu)
6. Parch (Số lượng cha me/ con cái)
7. Fare (giá vé)
8. Embarked (điểm bắt đầu)
Dữ liệu đầu ra y gồm: Survived.
y là khả năng sống sót, với y = 1 là sống, ngược lại y = 0 là chết

3.1.3. Xử lý dữ liệu

Ở đây chúng em sử dụng logistic regression và dữ liệu lấy từ Excel(file csv)


,visual studio,python ,command prompt để hỗ trợ quá trình training .Về cơ bản thì
python đã được tích hợp rất nhiều các thuật toán khác nhau, dễ dàng sử dụng, và
giúp giảm thời gian xây dựng các hệ thống deep learning. Đồng thời kết hợp với
pandas và numpy để phân tích, và xử lý cấu trúc data, và matplotlib dùng để về đồ
thị.

26
3.1.4. Code và xử lý dữ liệu
3.1.4.1. Code

27
3.1.4.2. Chạy dữ liệu

28
3.1.4.3. Hình ảnh minh họa

Kết quả trên chính là trận nhầm lẫn (confusion matrix) được sử dụng để đánh giá
hiệu suất của chương trình dự đoán sự sống sau thảm họa Titanic. Ma trận này cho
biết số lượng hành khách được dự đoán chính xác và không chính xác dựa trên giới
tính và giai cấp của họ.

Cấu tạo ma trận:

• Hàng: Thể hiện giới tính thực tế của hành khách (Nam hoặc Nữ).
• Cột: Thể hiện giới tính dự đoán bởi chương trình (Sống hoặc Chết).
• Giá trị trong mỗi ô: Số lượng hành khách thuộc nhóm cụ thể (giới tính thực
tế và dự đoán)

29
Giải thích kết quả:

• Ô (1,1): 70 hành khách nam được dự đoán chính xác là sống sót.
• Ô (1,2): 60 hành khách nam được dự đoán sai là chết.
• Ô (2,1): 43 hành khách nữ được dự đoán sai là sống sót.
• Ô (2,2): 19 hành khách nữ được dự đoán chính xác là chết.

30
KẾT LUẬN

Báo cáo đề cập đến các nội dung về kho dữ liệu và ứng dụng của lưu trữ và
khai phá tri thức trong kho dữ liệu nhằm hỗ trợ ra quyết định. Chương trình đã giải
quyết một số vấn đề chính trong quá trình khai thác dữ liệu và áp dụng kỹ thuật học
máy Logistic Regression để dự đoán kết quả sống chết sau thảm họa Titanic. Tuy
nhiên còn một số hạn chế như xử lý giá trị thiếu. Việc sử dụng giá trị trung bình để
điền vào giá trị thiếu của cột age là một phương pháp cơ bản và có thể không phản
ánh chính xác phân phối thực tế của dữ liệu, đặc biệt nếu dữ liệu có sự lệch lớn.
Không điều chỉnh siêu tham số. Mô hình sử dụng giá trị mặc định cho hầu hết các
siêu tham số ngoại trừ max_iter, không thực hiện tinh chỉnh siêu tham số có thể dẫn
đến việc mô hình không được tối ưu

Nhìn chung, chương trình đã thiết lập một nền tảng vững chắc cho việc phân
tích và dự đoán sự sống sót của hành khách trên Titanic sử dụng Logistic Regression.
Tuy nhiên, việc khắc phục các hạn chế nêu trên có thể giúp cải thiện hiệu suất mô
hình và đem lại cái nhìn sâu sắc hơn vào dữ liệu và kết quả dự đoán.

31
TÀI LIỆU THAM KHẢO

[1] Trang web: https://machinelearningcoban.com/2017/01/27/logisticregression


[2] Giáo trình khai phá dữ liệu nhà xuất bản thông tin và truyền thông, tác giả: TS.
Lê Văn Phùng, ThS. Quách Xuân Trưởng, năm xuất bản 2017

32

You might also like