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

Detecting comments spam youtube

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 (730.67 KB, 41 trang )

MỤC LỤC

MỤC LỤC..........................................................................................................1
DANH MỤC CÁC HÌNH...................................................................................3
DANH MỤC CÁC BẢNG..................................................................................4
TÓM TẮT...........................................................................................................5
CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI...............................................................6
1.1.

Hiện trạng và đặt vấn đề.......................................................................6

1.1.1. “spam” là gì ?..................................................................................6
1.1.2. Vấn đề “spam” trên Youtube...........................................................6
1.2.

Mục tiêu đề tài......................................................................................6

1.3.

Phạm vi nghiên cứu..............................................................................7

1.4.

Bố cục báo cáo.....................................................................................7

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT.................................................................8
2.1.

Machine learning là gì?........................................................................8

2.2.



Giới thiệu về thuật toán Random Forest...............................................8

2.2.1. Random Forest là gì?......................................................................8
2.2.2. Mô hình thuật toán........................................................................10

1


2.2.3. Đặc điểm của Random Forest?......................................................14
2.2.4. Mô tả hoạt động của Random Forest.............................................15
2.2.5. Ví dụ về Random Forest...............................................................16
2.2.6. Phương pháp lấy mẫu Bootstrap...................................................17
2.3.

Giới thiệu về thuật toán Bag of Words(Bow).....................................19

2.4.

Tổng quát về TF-IDF.........................................................................21

CHƯƠNG 3: XÂY DỰNG VÀ ĐÁNH GIÁ MÔ HÌNH................................23
3.1.

Tổng quan..........................................................................................23

3.2.

Tiền xử lý...........................................................................................24


3.3.

Rút trích đặc trưng..............................................................................31

3.4.

Đánh giá mô hình...............................................................................32

3.5.

Chọn tham số tối ưu cho mô hình.......................................................33

3.6.

Dự đoán..............................................................................................35

3.7.

Kết quả đạt được................................................................................35

CHƯƠNG 4: TỔNG KẾT..............................................................................36
4.1.

Kết luận..............................................................................................36

4.2.

Hướng phát triển................................................................................36

TÀI LIỆU THAM KHẢO.................................................................................38


2


DANH MỤC CÁC HÌNH
Hình 2-1. Mô hình giản thể thuật toán Random Forest....................................11
Hình 2-2. Mô hình thuật toán Random Forest..................................................12
Hình 2-3 Hình ảnh Cây quyết định...................................................................13
Hình 2-4. Hình 2 Cây phân lớp trong rừng.......................................................18
Hình 2-5. Bootstrap trong Random Forest........................................................20
Hình 3-1.Mô tả quá trình xây dựng mô hình dự đoán bình luận “spam”...........24
Hình 3-2. Các bước trong quá trình tiền xử lý...................................................25
Hình 3-3. Lọc nhiễu trong tiền xử lý.................................................................26
Hình 3-4. Ví dụ tách từ......................................................................................27
Hình 3-5. Ví dụ về lọc stopwords......................................................................28
Hình 3-6. Biểu đồ phân bố các từ thường gặp...................................................29
Hình 3-7. Ví dụ về vector hóa từ.......................................................................30
Hình 3-8. Tích vô hướng của 2 từ.....................................................................31
Hình 3-9. Sự phân bố của các từ.......................................................................31
Hình 3-10. Mô tả quá trình thực hiện 5-fold Cross-Validation..........................33
Hình 3-11. Mô tả phương pháp Grid Search.....................................................35

3


DANH MỤC CÁC BẢNG

Bảng 2-1 Bảng dữ liệu cho cây quyết định.......................................................14
Bảng 2-2 Tập dữ liệu minh họa thuật toán Random Forest...............................17
Bảng 3-1. Bảng so sánh độ chính xác của mô hình...........................................33


4


TÓM TẮT

Những năm gần đây, AI - Artificial Intelligence (Trí Tuệ Nhân Tạo), và cụ thể
hơn là Machine Learning (Học Máy hoặc Máy Học) nổi lên như một bằng chứng của
cuộc cách mạng công nghiệp lần thứ tư (1 - động cơ hơi nước, 2 - năng lượng điện, 3
- công nghệ thông tin). Trí Tuệ Nhân Tạo đang len lỏi vào mọi lĩnh vực trong đời
sống mà có thể chúng ta không nhận ra. Xe tự hành của Google và Tesla, hệ thống tự
tag khuôn mặt trong ảnh của Facebook, trợ lý ảo Siri của Apple, hệ thống gợi ý sản
phẩm của Amazon, hệ thống gợi ý phim của Netflix, máy chơi cờ vây AlphaGo của
Google DeepMind, …, chỉ là một vài trong vô vàn những ứng dụng của AI/Machine
Learning.
Đề tài Kỹ thuật phát hiện bình luận “spam” trên Youtube dùng thuật toán
Random Forest mô tả quá trình xây dựng và đánh giá một mô hình Machine Learning
để dự đoán bình luận “spam” hay không “spam” trên các video của Youtube. Mô hình
được viết bằng ngôn ngữ Python và sử dụng công cụ Jupyter Notebook. Mô hình có
độ tin cậy cao nhờ kết hợp các thuật toán phân lớp, các thuật toán xử lí dữ liệu và các
thuật toán đánh giá phức tạp. Sau khi mô hình được xây dựng, nó có thể dự đoán một
bình luận bất kì có phải là “spam” hay không với độ chính xác cao, đáng tin cậy.
Tuy đã cố gắng nhưng đề tài vẫn có thể có những sai sót và chưa được hoàn
thiện hoàn toàn, kính mong các thầy cô xem xét và góp ý, em cảm ơn.

5


CHƯƠNG 1:


TỔNG QUAN ĐỀ TÀI

1.1. Hiện trạng và đặt vấn đề
1.1.1.

“spam” là gì ?
Với sự phát triển của Internet ngày nay, người dùng dễ dàng tìm kiếm thông

tin, trao đổi thảo luận trên các diễn đàn, mạng xã hội. Bên cạnh những thông tin hữu
ích, người dùng còn có thể gặp những dạng thông tin vô nghĩa, làm phiền. Những
dạng thông tin này được gọi chung là “spam”.
“spam” là một từ viết tắt từ cụm từ Stupid Pointless Annoying Messages, nghĩa
là những thông điệp ngu ngốc, vô nghĩa và phiền toái. Có thể hiểu “spam” là những
thông tin rác, không mang lại giá trị gì cho người đọc. “spam” có thể xuất hiện dưới
nhiều hình thức như “spam” trong email, “spam” chat trong tin nhắn, “spam” bình
luận trên các mạng xã hội, “spam” bài viết trên các diễn đàn,… Trong đề tài này, tác
giả tập trung vào “spam” trong bình luận trên Youtube.

1.1.2.

Vấn đề “spam” trên Youtube
Youtube là website xem video lớn nhất thế giới với nội dung phong phú và số

lượng video khổng lồ. Do có lượng người truy cập và tương tác lớn, vấn nạn bình
luận “spam” là không tránh khỏi.
Các bình luận “spam” gây nhiều tác hại như phát tán thông tin rác, làm loãng
nội dung đang thảo luận, gây phiền toái cho người dùng. Nguy hiểm hơn, bình luận
“spam” còn có thể mang tính lừa đảo và nguy cơ bảo mật chẳng hạn như đánh cắp
thông tin nhạy cảm, mã độc,… Vì vậy, việc phát hiện ra những bình luận “spam” là
cần thiết nhằm giúp người dùng có thể tránh được những tác hại của chúng.


6


1.2. Mục tiêu đề tài
Đề tài với mục đích là xây dựng mô hình học máy phát hiện bình luận “spam”
trên Youtube với các mục tiêu:
-Tìm hiểu thuật toán Random Forest để phân loại bình luận “spam”.
-Xây dựng và đánh giá mô hình dự đoán bình luận “spam”.
-Xây dựng hướng phát triển cho các mô hình, ứng dụng phân loại “spam”
khác.

1.3. Phạm vi nghiên cứu
Đề tài tập trung nghiên cứu một số nội dung sau:
- Nghiên cứu các thuật toán phân lớp ( RandomForest), thuật toán xử lí ngôn
ngữ tự nhiên (Bag of Word, TF-IDF,…)
- Xây dựng và đánh giá mô hình học máy bằng ngôn ngữ Python sử dụng
công cụ Jupyter Notebook.

1.4. Bố cục báo cáo
Bài báo cáo gồm có 4 chương:
Chương 1: Tổng quan đề tài.
Giới thiệu tổng quan nội dung đề tài: hiện trạng và đặt vấn đề, mục tiêu đề tài,
phạm vi nghiên cứu và bố cục báo cáo.
Chương 2: Cơ sở lý thuyết
Giới thiệu các thuật toán sử dụng trong đề tài, các phương pháp xử lí ngôn
ngữ tự nhiên
Chương 3: Xây dựng và đánh giá mô hình
Mô tả quá trình xây dựng và đánh giá mô hình, các phương pháp tối ưu mô
hình để quá trình phân loại có độ chính xác cao

Chương 4: Tổng kết
7


Kết luận về mô hình, độ hữu dụng, khả năng làm việc và phương hướng phát
triển trong tương lai.

8


CHƯƠNG 2:

CƠ SỞ LÝ THUYẾT

2.1. Machine learning là gì?
Học máy (tiếng Anh: machine learning) là một lĩnh vực của trí tuệ nhân tạo liên
quan đến việc nghiên cứu và xây dựng các kĩ thuật cho phép các hệ thống "học" tự
động từ dữ liệu để giải quyết những vấn đề cụ thể. Ví dụ như các máy có thể "học"
cách phân loại thư điện tử xem có phải thư rác (“spam”) hay không và tự động xếp
thư vào thư mục tương ứng. Học máy rất gần với suy diễn thống kê (statistical
inference) tuy có khác nhau về thuật ngữ.

2.2. Giới thiệu về thuật toán Random Forest.
2.2.1.

Random Forest là gì?
Như tên gọi của nó (Random Forest) – rừng ngẫu nhiên, đây là phương pháp

xây dựng một tập hợp rất nhiều cây quyết định và sử dụng phương pháp bầu chọn để
đưa ra quyết định về biến mục tiêu cần dự báo.

Giả sử bạn dự định đi du lịch và bạn muốn đi đến một nơi mà bạn sẽ
thích.Vậy bạn sẽ làm gì để tìm một nơi mà bạn sẽ thích? Bạn có thể tìm kiếm trực
tuyến, đọc các bài đánh giá trên blog và các cổng thông tin du lịch hoặc bạn cũng có
thể hỏi bạn bè của mình. Giả sử bạn đã quyết định hỏi bạn bè và nói chuyện với họ
về trải nghiệm du lịch trong quá khứ của họ đến những nơi khác nhau. Bạn sẽ nhận
được một số khuyến nghị từ tất cả các bạn. Bây giờ bạn phải tạo danh sách các địa
điểm được đề xuất. Sau đó, bạn yêu cầu họ bỏ phiếu (hoặc chọn địa điểm tốt nhất cho
chuyến đi) từ danh sách các địa điểm được đề xuất bạn đã thực hiện. Địa điểm có số
phiếu bầu cao nhất sẽ là lựa chọn cuối cùng của bạn cho chuyến đi.
Trong quá trình quyết định ở trên, có hai phần. Trước tiên, hãy hỏi bạn bè về
9


trải nghiệm du lịch cá nhân của họ và nhận được đề xuất từ nhiều nơi họ đã ghé
thăm. Điều này cũng giống như sử dụng thuật toán cây quyết định. Ở đây, mỗi người
trong số các bạn chọn những nơi mà họ đã ghé thăm cho đến nay. Phần thứ hai, sau
khi thu thập tất cả các khuyến nghị, là thủ tục bỏ phiếu để chọn địa điểm tốt nhất
trong danh sách các khuyến nghị. Toàn bộ quá trình nhận được khuyến nghị từ bạn bè
và bỏ phiếu cho họ để tìm ra nơi tốt nhất được gọi là thuật toán rừng ngẫu nhiên.
Về mặt kỹ thuật, nó là một phương pháp tổng hợp (dựa trên cách tiếp cận phân
chia và chinh phục) của các cây quyết định được tạo ra trên một tập dữ liệu được chia
ngẫu nhiên. Bộ sưu tập phân loại cây quyết định này còn được gọi là rừng. Cây quyết
định riêng lẻ được tạo ra bằng cách sử dụng chỉ báo chọn thuộc tính như tăng thông
tin, tỷ lệ tăng và chỉ số Gini cho từng thuộc tính. Mỗi cây phụ thuộc vào một mẫu
ngẫu nhiên độc lập. Trong bài toán phân loại, mỗi phiếu bầu chọn và lớp phổ biến
nhất được chọn là kết quả cuối cùng. Trong trường hợp hồi quy, mức trung bình của
tất cả các kết quả đầu ra của cây được coi là kết quả cuối cùng. Nó đơn giản và mạnh
mẽ hơn so với các thuật toán phân loại phi tuyến tính khác.
Random Forest là thuật toán học máy dựa trên kỹ thuật lắp ghép, kết hợp các
cây phân lớp. Random Forest xây dựng cây phân lớp bằng cách lựa chọn ngẫu nhiên

một nhóm nhỏ các thuộc tính tại mỗi nút của cây để phân chia cho mức tiếp theo của
cây phân lớp. Ngoài ra tập mẫu của mỗi cây cũng được lựa chọn ngẫu nhiên bằng
phương pháp Bootstrap từ tập mẫu ban đầu. Số lượng các cây phân lớp trong rừng là
không hạn chế và thuật toán sử dụng kết quả dự đoán của tất cả cây trong rừng làm
kết quả cuối cùng của thuật toán.
Random Forest là một tập hợp mô hình (ensemble). Mô hình Random Forest
rất hiệu quả cho các bài toán phân loại vì nó huy động cùng lúc hàng trăm mô hình
nhỏ hơn bên trong với quy luật khác nhau để đưa ra quyết định cuối cùng. Mỗi mô
hình con có thể mạnh yếu khác nhau,ta sẽ có cơ hội phân loại chính xác hơn so với
khi sử dụng bất kì một mô hình đơn lẻ nào.

10


2.2.2.

Mô hình thuật toán

Hình
2-1.

hình
thể
thuật
toán
Random
Forest
Hinh
Figure


Hình
2-1Mô
hình
2-1
hình
thuật
Môthuật
toán
hìnhgiản
toán
RandomForest
giản
Random
thể
thuật
Forest
toán
Random
Forest
Các
kí2.1
hiệu:

RandomForest

Bootstrap i

Decision Tree i

Rừng ngẫu nhiên: Tập cây phân lớp


Phương pháp Bootstrap tạo tập huấn luyện cho cây thứ i

Cây phân lớp thứ i trong rừng

Nút trong cây phân lớp

11


Hình 2-1. Mô hình thuật toán Random Forest
Decision Tree là gì
a. Định nghĩa
Decision Tree(Cây quyết định) là tên đại diện cho một nhóm thuật toán phát
triển dựa trên cây quyết định. Ở đó, mỗi Node của cây sẽ là các thuộc tính, và các
nhánh là giá trị lựa chọn của thuộc tính đó. Bằng cách đi theo các giá trị thuộc tính
trên cây, cây quyết định sẽ cho ta biết giá trị dự đoán.
Nói cách khác, cây quyết định biểu diễn một kế hoạch, trả lời câu hỏi phải làm
gì trong một hoàn cảnh nhất định. Ví dụ, cây quyết định được sử dụng trong tổng đài
điện thoại để quyết định xem tổng đài viên sẽ trả lời như thế nào dựa trên phản hồi
của khách hàng. Nó cũng được sử dụng trong hệ điều hành của bất kì cỗ máy nào mà
bạn có thể tưởng tượng (tàu ngầm, bom nguyên tử,…) hay đơn giản, cây quyết định
được các bác sĩ sử dụng để chẩn đoán bệnh.
Nhóm thuật toán cây quyết định có một thế mạnh đó là có thể sử dụng cho cả
12


bài toán phân loại (Classification) và hồi quy (Regression).
b.Ví dụ
Ví dụ biểu diễn một cây quyết định cho việc xác định một người có mua máy

tính không dựa vào các thuộc tính: ‘tuổi’, ‘là học sinh’ và ‘thu nhập’ với bảng dữ liệu
bên dưới.

Hình 2-2 Hình ảnh Cây quyết định

13


Bảng 2-1 Bảng dữ liệu cho cây quyết định

Từ cây quyết định trên ta có các luật như:
Nếu “Tuổi <= 30” và “ là học sinh = có” thì “mua máy tính” = ‘ không ’.
Nếu “Tuổi <= 30” và “ là học sinh = không” thì “mua máy tính” = ‘ có mua’
Để sử dụng cây quyết định trong phân lớp ta đặt đối tượng đó vào cây, áp dụng
các luật để xác định nhãn lớp.
Ví dụ: xét cây quyết định trên và một đối tượng X(Tuổi = ‘43’, là học sinh =
‘không’, thu nhập=’ cao’)
Như vậy theo cây quyết định trên ta có một luật:
Nếu “ Tuổi > 30 ” và “ thu nhập = cao ” thì mua máy tính = ‘ có mua’. Vậy X
có giá trị nhãn lớp “ mua máy tính ” = ‘ có mua’ theo luật trên.
c. Một số thuật toán xây dựng cây quyết định
Một số thuật toán thường được dùng để xây dựng cây quyết định như:
ID3 (Iterative Dichotomiser 3): đề xuất bởi Quinlan năm 1980, sử dụng
14


Information Gain để lựa chọn thuộc tính phân chia tại mỗi nút.
C4.5: mở rộng từ ID3 được Ross Quinlan đề xuất năm 1993, dùng Gain Ratio
trong phân chia cây.
CART: (Classification and Regression Trees): Sử dụng chỉ số Gini để phân chia

cây. Các số đo Information Gain, Gain Ratio và Gini là các số đo lựa chọn thuộc tính.

d. Đặc điểm của Cây quyết định
Cây quyết định có một số đặc điểm sau:
Việc chuẩn bị dữ liệu cho một cây quyết định là đơn giản. Các kỹ thuật khác
thường đòi hỏi chuẩn hóa dữ liệu, cần tạo các biến phụ và loại bỏ các giá trị rỗng.
Cây quyết định có thể xử lý cả dữ liệu có giá trị bằng số và dữ liệu có giá trị
phân loại.
Có thể thẩm định một mô hình cây quyết định bằng các kiểm tra thống kê.
Cây quyết định có thể xử lý tốt một lượng dữ liệu lớn trong thời gian ngắn. Có
thể dùng máy tính cá nhân để phân tích các lượng dữ liệu lớn trong một thời gian đủ
ngắn để đưa ra quyết định dựa trên phân tích của cây quyết định.
Nhược điểm của cây quyết định là khó giải quyết được những vấn đề có dữ liệu
phụ thuộc thời gian liên tục, dễ xảy ra lỗi khi có quá nhiều tính toán để xây dựng mô
hình cây quyết định.
Quá trình xây dựng cây quyết định sẽ chọn thuộc tính tốt nhất để phân nhánh
cây, một thuộc tính gọi là tốt tùy vào số đo được sử dụng khi phân chia tập mẫu tại
mỗi nút, các số đo lựa chọn thuộc tính khi phân nhánh được trình bày trong mục 3.

2.2.3.

Đặc điểm của Random Forest?
2.2.3.1 Ưu điểm
- Thuật toán giải quyết tốt các bài toán có nhiều dữ liệu nhiễu, thiếu giá trị. Do

cách chọn ngẫu nhiên thuộc tính nên các giá trị nhiễu, thiếu ảnh hưởng không lớn đến
kết quả.
15



- Có những sự ước lượng nội tại như độ chính xác của mô hình phỏng đoán
hoặc độ mạnh và liên quan giữa các thuộc tính(Out of bag).
- Dễ dàng thực hiện song song. Thay vì một máy thực hiện cả thuật toán, ta có
thể sử dụng nhiều máy để xây dựng các cây sau đó ghép lại thành rừng.
- Các sai số được giảm thiểu do kết quả của Random Forest được tổng hợp
thông qua nhiều người học (Cây phân lớp).
- Việc chọn ngẫu nhiên tại mỗi bước trong Random Forest sẽ làm giảm mối
tương quan giữa các người học trong việc tổng hợp các kết quả.
- Lỗi chung của một rừng các cây phân lớp phụ thuộc vào lỗi riêng của từng
cây trong rừng cũng như mối tương quan giữa các cây.
2.2.3.2 Nhược điểm
- Dữ liệu huấn luyện cần được đa dạng hóa và cân bằng về số nhãn lớp. Việc
không cân bằng nhãn lớp khiến kết quả dự đoán của thuật toán có thể lệch về số đông
nhãn lớp.
- Thời gian huấn luyện của rừng có thể kéo dài tùy số cây và số thuộc tính
phân chia.

2.2.4.

Mô tả hoạt động của Random Forest
Bước 1: Chọn ngẫu nhiên “k” features từ tập “m” features(k<Bước 2: Từ tập “k” features tính toán ra node “d” là tốt nhất cho node phân

loại
Bước 3: Chia các node con theo các node tốt nhất vừa tìm được
Bước 4: Lặp lai các bước 1-3 cho đến khi đạt được “k” node
Bước 5: Lặp lại các bước 1-4 để tạo ra “n” cây
Sau các bước trên, chúng ta đã tạo được một Random Forest.
Để biểu diễn dự đoán sử dụng Random Forest đã huấn luyện, ta sử dụng các
bước bên dưới:

Lấy các test features và sử dụng các cây quyết định đã tạo ra để dự đoán kết
16


quả, lưu nó vào một danh sách.
Tính toán số lượng vote trên toàn bộ Forest cho từng kết quả
Lấy kết quả có số lượng lớn nhất làm kết quả cho mô hình

2.2.5.

Ví dụ về Random Forest
Cho tập dữ liệu gồm 5 bộ, mỗi bộ có 4 thuộc tính và một giá trị nhãn lớp như

bảng bên dưới

Bảng 2-2 Tập dữ liệu minh họa thuật toán Random Forest

Với số cây là 2, số thuộc tính lựa chọn phân chia là 2, thuật toán thực hiện như
sau:
Từ tập S, dùng Bootstrap lấy mẫu có hoàn lại xây dựng tập con Sk, với |Sk|= 4
được: S1 gồm các bộ 1, 2, 3, 4; S2 gồm các bộ 1,4,3,5(theo thứ tự trong bảng).
Xây dựng 2 cây T1, T2 với các tập dữ liệu tương ứng S1, S2

17


Hình 2-3. Hình 2 Cây phân lớp trong rừng

Dự đoán nhãn lớp cho bộ X(1,0,1,0):
Cây T1 cho X có giá trị nhãn lớp là 1

Cây T2 cho X có giá trị nhãn lớp là 1
Vậy X (1,0,1,0) có nhãn lớp là 1 do có 2 cây cho giá trị 1 và 0 cây cho giá trị 0
nên giá trị 1 sẽ là kết quả cuối cùng vì số đông cây cho giá trị này.
Nếu có nhiều nhãn lớp có cùng số cây cho ra thì có thể chọn bất kì nhãn lớp nào
làm kết quả, thường chọn giá trị đầu tiên hoặc giá trị chiếm đa số trong tập mẫu D.

2.2.6.

Phương pháp lấy mẫu Bootstrap
a.Giới thiệu Bootstrap

Bootstrap là tập hợp một số kỹ thuật phân tích dựa vào nguyên lý chọn
mẫu có hoàn lại để ước tính các thông số trong thống kê. Phương pháp
Bootstrap do nhà thống kê học Bradley Efron thuộc đại học Stanford (Mĩ)
phát triển từ cuối thập niên 1979 nhưng đến khi máy tính được sử dụng phổ
biến thì phương pháp này mới trở thành phương pháp phổ biến trong phân
tích thống kê và được ứng dụng rộng rãi trong rất nhiều lĩnh vực khoa học.
Boostrap được xem là phương pháp chuẩn trong phân tích thống kê và đã
làm nên một cuộc cách mạng trong thống kê vì có thể giải quyết được nhiều
18


vấn đề mà trước đây tưởng như không giải được.

b.Thuật toán Bootstrap
Thuật toán Bootstrap lấy mẫu ngẫu nhiên có hoàn lại
A. Lấy mẫu




Cho tập dữ liệu D với N mẫu và K mẫu muốn lấy ra
Thực hiện K lần
-

Lấy ngẫu nhiên một mẫu k từ tập D, ghi lại chỉ số k
Đặt k lại tập D
- Cuối cùng được K mẫu ngẫu nhiên

B. Sử dụng
Sử dụng tập mẫu ngẫu nhiên làm tập mẫu huấn luyện cho cây quyết
định.

Ví dụ: Giả sử có 15,000 bệnh nhân nghi ngờ bị nhiễm độc, cần xác định
mẫu máu của các bệnh nhân này. Nếu lấy hết 15,000 đem đi xét nhiệm thì
tốn kém và mất thời gian nên chỉ lấy 1,000 bệnh nhân làm đại diện cho cả
15,000 bệnh nhân.
Cần lấy 1,000 mẫu từ 15,000 bệnh nhân bằng phương pháp Boostrap, ta
tiến hành như sau:
Lặp 1,000 lần thao tác:
-

Lấy ngẫu nhiên một bệnh nhân từ 15,000 bệnh nhân.

-

Ghi lại chỉ số bệnh nhân được chọn.

-

Đặt bệnh nhân vào lại 15,000 bệnh nhân.

Cuối cùng có được là chỉ số của 1,000 bệnh nhân được chọn.

Chú ý rằng trong cách chọn ngẫu nhiên có hoàn lại như trên, có thể có
một số bệnh nhân được chọn hơn 1 lần.

19


c.Đặc điểm của Bootstrap:
Phương pháp chọn mẫu ngẫu nhiên có hoàn lại nhằm mục đích tạo ra nhiều mẫu
ngẫu nhiên từ một mẫu, và qua cách chọn này, tập hợp những mẫu có thể đại diện
cho một quần thể.
Bootstrap có thể cung cấp thông tin chi tiết về phân bố của số trung bình,
khoảng tin cậy cũng như xác suất của số trung bình dựa trên một mẫu duy nhất.
Bootstrap trong Random Forest
Trong Random Forest thuật toán Bootstrap được sử dụng để tạo mẫu ngẫu nhiên
cho từng cây p. Vậy mỗi cây sẽ có một tập mẫu ngẫu nhiên riêng biệt. Ngoài ra còn
sử dụng để đánh giá nội tại của thuật toán(Out- of-bag).

Hình 2-4. Bootstrap trong Random Forest

2.3. Giới thiệu về thuật toán Bag of Words(Bow)
Bag of Words là một thuật toán hỗ trợ xử lý ngôn ngữ tự nhiên và mục đích
của BoW là phân loại text hay văn bản. Ý tưởng của BoW là phân tích và phân nhóm
dựa theo "Bag of Words"(corpus). Với test data mới, tiến hành tìm ra số lần từng từ
của test data xuất hiện trong "bag"
Giả sử chúng ta có bài toán phân loại tin rác. Ta thấy rằng nếu một tin có chứa
20



các từ khuyến mại, giảm giá, trúng thưởng, miễn phí, quà tặng, tri ân, … thì nhiều
khả năng đó là một tin nhắn rác. Vậy phương pháp đơn giản nhất là đếm xem trong
tin đó có bao nhiêu từ thuộc vào các từ trên, nếu nhiều hơn 1 ngưỡng nào đó thì ta
quyết định đó là tin rác. (Tất nhiên bài toán thực tế phức tạp hơn nhiều khi các từ có
thể được viết dưới dạng không dấu, hoặc bị cố tình viết sai chính tả, hoặc dùng ngôn
ngữ teen). Với các loại văn bản khác nhau thì lượng từ liên quan tới từng chủ đề cũng
khác nhau. Từ đó có thể dựa vào số lượng các từ trong từng loại để làm các vector
đặc trưng cho từng văn bản.
Giả sử chúng ta có hai văn bản đơn giản:
(1) John likes to watch movies. Mary likes movies too.

(2) John also likes to watch football games.
Dựa trên hai văn bản này, ta có danh sách các từ được sử dụng, được gọi là từ
điển với 10 từ như sau:
[“John”,likes”,”to”,”watch”,”movies”,”also”,”football”,”game”,”Mary”,”too”]
Với mỗi văn bản, ta sẽ tạo ra một vector đặc trưng có số chiều bằng 10, mỗi
phần tử đại diện cho số từ tương ứng xuất hiện trong văn bản đó. Với hai văn bản
trên, ta sẽ có hai vector đặc trưng là:
(1) [1,2,1,1,2,0,0,0,1,1]
(2) [1,1,1,1,0,1,1,1,0,1]
Văn bản (1) có 1 từ “John”, 2 từ “likes”, 0 từ “also”, 0 từ “football”, … nên ta
thu được vector tương ứng như trên.
Có một vài điều cần lưu ý trong BoW:
 Với những ứng dụng thực tế, từ điển có nhiều hơn 10 từ rất nhiều, có thể
21


đến một trăm nghìn hoặc cả triệu, như vậy vector đặc trưng thu được sẽ
rất dài. Một văn bản chỉ có 1 câu, và 1 tiểu thuyết nghìn trang đều được
biểu diễn bằng các vector có số chiều bằng 100 nghìn hoặc 1 triệu.

 Có rất nhiều từ trong từ điển không xuất hiện trong một văn bản. Như
vậy các vector đặc trưng thu được thường có rất nhiều phần tử bằng 0.
Các vector có nhiều phần tử bằng 0 được gọi là sparse vector (sparse
hiểu theo nghĩa là thưa thớt, rải rác). Để việc lưu trữ được hiệu quả hơn,
ta không lưu cả vector đó mà chỉ lưu vị trí của các phần tử khác 0 và giá
trị tương ứng. Lưu ý: nếu có hơn 50% số phần tử khác 0, việc làm này
lại phản tác dụng!
 Thi thoảng có những từ hiếm gặp không nằm trong từ điển, vậy ta sẽ làm
gì? Một cách thường được dùng là mở rộng vector đặc trưng thêm 1
phần tử, gọi là phẩn tử <Unknown>. Mọi từ không có trong từ điền đều
được coi là <Unknown>.
 Nhược điểm lớn nhất của BoW là nó không mang thông tin về thứ tự của
các từ. Cũng như sự liên kết giữa các câu, các đoạn văn trong văn bản.
Ví dụ, ba câu sau đây: “Em ăn cơm không?”, “Em không ăn cơm”, và
“Không, (nhưng) em ăn cơm” khi được trích chọn đặc trưng bằng BoW
sẽ cho ra ba vector giống hệt nhau, mặc dù ý nghĩa khác hẳn nhau.
 Có những từ hiếm đôi khi lại mang những thông tin quan trọng nhất mà
chỉ loại văn bản đó có. Đây là một nhược điểm của BoW. Có một
phương pháp cải tiến khác giúp khắc phục nhược điểm này có tên là
Term Frequency-Inverse Document Frequency (TF-IDF) dùng để xác
định tầm quan trọng của một từ trong một văn bản dựa trên toàn bộ văn
bản trong cơ sở dữ liệu (corpus).

2.4. Tổng quát về TF-IDF
Trong khai phá dữ liệu văn bản (text mining), thuật ngữ TF-IDF (term
22


frequency- inverse document frequency) là một phương thức thống kê được biết đến
rộng rãi nhất để xác định độ quan trọng của một từ trong đoạn văn bản trong một tập

nhiều đoạn văn bản khác nhau. Nó thường được sử dụng như một trọng số trong việc
khai phá dữ liệu văn bản. TF-IDF chuyển đổi dạng biểu diễn văn bản thành dạng
không gian vector (VSM), hoặc thành những vector thưa thớt.
TF (Term Frequency): là tần suất xuất hiện của một từ trong một đoạn văn
bản. Với những đoạn văn bản có độ dài khác nhau, sẽ có những từ xuất hiện nhiều ở
những đoạn văn bản dài thay vì những đoạn văn bản ngắn. Vì thế, tần suất này
thường được chia cho độ dài của đoạn văn bản như một phương thức chuẩn hóa

(normalization). TF được tính bởi công thức:

tf (t ) 

f (t , d )
T
(với t là một từ trong

đoạn văn bản; f(t,d) là tần suất xuất hiện của t trong đoạn văn bản d; Tlà tổng số từ
trong đoạn văn bản đó).
IDF (Inverse Document Frequency): tính toán độ quan trọng của một từ. Khi
tính toán TF, mỗi từ đều quan trọng như nhau, nhưng có một số từ trong tiếng Anh
như "is", "of", "that",... xuất hiện khá nhiều nhưng lại rất ít quan trọng. Vì vậy, chúng
ta cần một phương thức bù trừ những từ xuất hiện nhiều lần và tăng độ quan trọng
của những từ ít xuất hiện những có ý nghĩa đặc biệt cho một số đoạn văn bản hơn
N
idf (t )  log
∣ t �D : t �d∣ (trong đó N là tổng số đoạn văn bản; tập
bằng cách tính IDF:
| t �D : t �d | là số văn bản chứa từ t).

TF-IDF được tính bởi f _ idf (t )  tf (t ) �idf (t )


23


CHƯƠNG 3:

XÂY DỰNG VÀ ĐÁNH GIÁ MÔ HÌNH

3.1. Tổng quan
Để xây dựng mô hình phân loại bình luận “spam” trên Youtube, bước đầu tiên
thu thập dữ liệu có sẵn về các bình luận “spam” đã gắn nhãn là “spam” hay không
“spam” , sau đó tiến hành thực hiện tiền xử lý dữ liệu. Tiếp theo, quá trình thực hiện
xây dựng mô hình sẽ được miêu tả theo sơ đồ sau:

24


Hình 3-5.Mô tả quá trình xây dựng mô hình dự đoán bình luận “spam”

25


×