Tải bản đầy đủ (.pdf) (20 trang)

đề tài dự đoán giới tính

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 (866.12 KB, 20 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

TRƯỜNG ĐẠI HỌC THỦY LỢIKHOA CÔNG NGHỆ THÔNG TIN

BÀI TẬP LỚNHỌC PHẦN: HỌC MÁY

ĐỀ TÀI DỰ ĐỐN GIỚI TÍNH:

Giáo viên hướng dẫn : Nguyễn Thị Kim Ngân Nhóm thực hiện : Nhóm 7 – 63HTTT1

Sinh viên thực hiện : Phạm Ánh Hường

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

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

MỤC LỤC

Phần 1: Tổng quan...3

1. Giới thiệu về học máy...3

2. Trình bày các phương pháp học máy được sử dụng trong đề tài mà nhóm chọn...7

2.1. Support Vector Machine (SVM)...7

2.2. Cart...8

2.3. Neural Network...9

2.4. Các phương pháp học kết hợp (Bagging, Bootstrapping, Stacking)...9

Phần 2: Thực nghiệm...10

1. Mô tả bài tốn...10

2. Mơ tả tập dữ liệu của bài tốn...11

3. Viết ứng dụng...15

4. Phân tích kết quả của chương trình...18

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

Phần 1: Tổng quan1. Giới thiệu về học máy

<small>- </small> Lịch sử và vai trò của Machine Learning:

Machine learning (ML) hay máy học là một nhánh của trí tuệ nhân tạo (AI),một lĩnh vực nghiên cứu cho phép máy tính có khả năng cải thiện chính bảnchúng dựa trên dữ liệu mẫu (training data) hoặc dựa vào kinh nghiệm (những gđược học). Machine learning có thể tự dự đoán hoặc đưa ra quyết định mà kcần được lập trình cụ thể.

Bài tốn machine learning thường được chia làm hai loại là dự đoán (predictvà phân loại (classification). Các bài toán dự đoán như dự đoán giá nhà, giáCác bài toán phân loại như nhận diện chữ viết tay, nhận diện đồ vật…

Lịch sử:

<small>o</small> Thập kỷ 1940-1950: Nguồn gốc của học máy bắt đầu trong lĩnh vực thốkê và toán học. Alan Turing đưa ra khái niệm máy Turing, có thể cokhởi đầu của ý tưởng máy tính có thể tự học.

<small>o</small> Thập kỷ 1950-1960: John McCarthy đưa ra thuật ngữ "Trí tuệ Nhân tạ(AI)" và Herbert Simon và Allen Newell tạo ra chương trình LogicTheorist, một trong những đỉnh cao đầu tiên của AI.

<small>o</small> Thập kỷ 1960-1970: Học máy chuyển hướng từ thống kê sang các mô hìcơ sở trên máy tính. Frank Rosenblatt phát triển Perceptron, một kiến trúcơ sở của mạng nơ-ron.

<small>o</small> Thập kỷ 1980-1990: Dự án như CYC của Doug Lenat đưa ra hy vọngviệc hiểu biểu đồ tri thức của con người.

<small>o</small> Thập kỷ 1990-2000: Sự tiến bộ trong thuật toán và sự gia tăng của dữdẫn đến sự phổ biến của học máy trong nhiều lĩnh vực.

<small>o</small> Thập kỷ 2000-Đến Nay: Bùng nổ dữ liệu và sự mạnh mẽ của máy tínhtạo ra một sự tiến triển nhanh chóng trong học máy. Deep learningneural networks trở nên quan trọng, đặc biệt sau thành cơng của cáchình như AlexNet và AlphaGo.

Vai trị:

<small>o</small> Dự Đốn và Tự Động Hóa: Học máy được sử dụng để dự đoán các kếdựa trên dữ liệu hiện tại và quá khứ, cũng như để tối ưu hóa các qutự động hóa.

<small>o</small> Phân tích Dữ liệu Lớn: Trong mơi trường big data, học máy giúp rút tthông tin quan trọng từ lượng lớn dữ liệu và làm cho nó có ý nghĩa.<small>o</small> Tìm Kiếm và Phân loại: Học máy được sử dụng trong các cơng cụ tìm

trực tuyến, qt và phân loại nội dung web, cũng như trong ứng dụngchatbot.

<small>o</small> Y Học và Điều trị: Trong lĩnh vực y học, học máy giúp trong chẩnbệnh, dự đoán biến đổi và tối ưu hóa phác đồ điều trị.

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

- Trình bày Học có giám sát, Học khơng có giám sát, bài tốn Hồi quy, bài tốn Phân lớp, bài tốn Phân cụm.

1. Học có giám sát (Supervised Learning)

Định nghĩa:

<small>o</small> Supervised learning còn được gọi là máy học có giám sát, được địnnghĩa bằng cách sử dụng các tập dữ liệu được gắn nhãn để huluyện các thuật toán phân loại dữ liệu hoặc dự đoán kết quả mộtchính xác.

Khi dữ liệu đầu vào được đưa vào mơ hình, mơ hình sẽ điều chỉnhlượng của nó cho đến khi nó được lắp một cách thích hợp. Điều này xnhư một phần của quá trình xác nhận chéo để đảm bảo rằng mơ hìnhtrang bị q nhiều hoặc trang bị thiếu thông tin.

Supervised machine learning giúp các tổ chức giải quyết nhiều vấn đề trothế giới thực trên quy mô lớn, chẳng hạn như phân loại thư rác trongthư mục riêng biệt từ hộp thư đến của bạn.

Một số phương pháp được sử dụng trong Supervised machine learning bagồm: logistic regression, neural networks, linear regression, naive bayes,random forest, và support vector machine (SVM)

Ưu điểm:

nhãn, điều này có nghĩa là dữ liệu thường đầy đủ và chất lượng c

học có giám sát thường có độ chính xác cao hơn so với các phưpháp khác.

khả năng đoán trực tiếp nhãn của các mẫu mới.

Nhược điểm:

thể tốn nhiều thời gian và chi phí.

được gán nhãn, nếu có dữ liệu khơng gán nhãn, mơ hình sẽ khơthể học từ nó.

2. Học khơng có giám sát (Unsupervised Learning)

Định nghĩa:

<small>o</small> Unsupervised machine learning là phương pháp sử dụng các thuậttốn máy học để phân tích và phân cụm các tập dữ liệu không đgắn nhãn.

Không cần sự can thiệp của con người, các thuật toán này có thể phátra các mẫu hoặc nhóm dữ liệu ẩn. Khả năng phát hiện ra những điểmđồng và khác biệt trong thơng tin của phương pháp này khiến nó trở nê

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

tưởng cho việc phân tích dữ liệu khám phá, chiến lược bán chéo (crosell), phân khúc khách hàng cũng như nhận dạng hình ảnh và mẫu.

Unsupervised machine learning cũng được sử dụng để giảm số lượng cátính năng trong một mơ hình thơng qua q trình giảm kích thước. Phtích thành phần chính (PCA) và phân tích giá trị đơn lẻ (SVD) là haitiếp cận phổ biến cho việc này.

Các thuật toán khác được sử dụng trong học tập không giám sát baok-means clustering, neural networks, và probabilistic clustering methods.

Ưu điểm:

dữ liệu phải được gán nhãn, giảm chi phí và cơng sức trong q tthu thập dữ liệu.

đặc trưng phức tạp mà con người khó mơ tả hoặc nhận biết.Nhược điểm:

có giám sát thường có độ chính xác thấp hơn so với mơ hình họcgiám sát.

suất của mơ hình học khơng có giám sát thường khó khăn hơn.

3. Bài tốn hồi quy (Regression)Định nghĩa:

<small>o</small> Bài toán hồi quy là một loại bài toán trong machine learning, mụtiêu của nó là dự đốn giá trị của một biến liên tục dựa trên cácđộc lập. Trong bối cảnh này, biến liên tục thường được gọi là bmục tiêu hoặc biến phản ứng, trong khi các biến độc lập đượcdụng để dự đoán giá trị của biến mục tiêu.

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

<small>o</small> Khả năng hạn chế trong mơi trường phức tạp: Trong các tình huốncó nhiều tương tác và phi tuyến, mơ hình hồi quy có thể khôngmạnh mẽ để mô phỏng mối quan hệ phức tạp đó.

4. Bài tốn phân lớp(Classification)Định nghĩa:

<small>o</small> Bài tốn phân lớp là một loại bài toán trong machine learning, mụtiêu của nó là dự đốn lớp hoặc nhóm mà một mẫu dữ liệu thuộdựa trên các đặc trưng của nó. Trong bối cảnh này, chúng ta thườcó một biến phụ thuộc (lớp hoặc nhóm) được xác định và các bđộc lập được sử dụng để dự đốn lớp đó.

<small>o</small> Khả năng mơ hình hóa giả định: Một số mơ hình có thể giả địnhquan hệ giữa các biến là tuyến tính, điều này có thể hạn chế ttrường hợp mối quan hệ thực sự phức tạp và phi tuyến.

<small>o</small> Không xử lý tốt với dữ liệu không rõ ràng: Nếu dữ liệu có nhoặc khơng rõ ràng, hiệu suất của mơ hình có thể giảm.

5. Bài tốn phân cụm (Clustering)Định nghĩa:

<small>o</small> Bài toán phân cụm là một dạng bài toán trong machine learning mmục tiêu chính là phân nhóm các mẫu dữ liệu vào các cụm (clustekhác nhau dựa trên sự tương đồng giữa chúng. Cụ thể, chúng tagắng tìm ra cách phân chia dữ liệu sao cho các mẫu trong cùngcụm có sự tương đồng lớn, trong khi giữ cho sự khác biệt giữacụm là lớn.

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

<small>o</small> Dễ hiểu và trực quan: Kết quả thường được biểu diễn bằng các bđồ phân tán hoặc biểu đồ radar, giúp hiểu rõ cấu trúc của dữ liệu.Nhược điểm:

<small>o</small> Phụ thuộc vào thuật tốn và tham số: Kết quả có thể thay đổivào thuật toán và giá trị tham số được chọn.

<small>o</small> Khơng phải lúc nào cũng có cấu trúc rõ ràng: Đơi khi, dữ liệu cókhơng phân chia thành các cụm có ý nghĩa.

<small>o</small> Nhạy cảm với nhiễu và giá trị ngoại lệ: Dữ liệu nhiễu hoặc giángoại lệ có thể ảnh hưởng đến q trình phân cụm.

2. Trình bày các phương pháp học máy được sử dụng trong đề tài mà nhóm chọn2.1. Support Vector Machine (SVM)

Input của phương pháp: Tập dữ liệu huấn luyện đã gán nhãn( X_train, Y_trainOutput của phương pháp: Siêu phẳng f(x,w) = w x phân chia dữ liệu huấn lu<small>T</small>sao cho:

<small>o</small> Tất cả điểm dữ liệu có nhãn 1 thuộc về cùng một phía của siêu phẳng<small>o</small> Khoảng cách từ điểm gần nhất của mỗi lớp tới đường phân chia là như

(margin, lề)

<small>o</small> Margin này là phải cực đại

Bài toán tối ưu của phương pháp (hoặc hàm mất mát):

Cách giải bài toán tối ưu hoặc các bước thực hiện của thuật toán:

<small>o</small> Bài toán tối ưu này là bài toán lồi, và là một quadratic programm(phương trình bậc 2)

<small>o</small> Suy ra nghiệm cho SVM là duy nhất

<small>o</small> Để giải bài toán này, người ta thường giải bài toán đối ngẫu LagrangeCác độ đo để đánh giá chất lượng mơ hình dự đốn: Accuracy, Precision, ReF1 score:

<small>o</small> Độ chính xác (Accuracy): Đây là tỷ lệ giữa số lượng dự đoán đúngtổng số mẫu dữ liệu. Độ chính xác là một độ đo cơ bản và dnhưng nó có thể khơng phản ánh đầy đủ về hiệu suất nếu dữ liệđối xứng (có sự chênh lệch lớn giữa các lớp).

<small>o</small> Chính xác (Precision) đo lường khả năng của mơ hình làm saotránh việc dự đốn giả mạo (false positives).

<small>o</small> Độ chuẩn xác (Recall) đo lường khả năng của mơ hình để bắt lấycả các trường hợp tích cực (true positives).

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

<small>o</small> F1 Score: Là sự kết hợp của Precision và Recall. Nó là một độ đbằng giữa chính xác và độ chuẩn xác, thường được sử dụng khilàm việc với dữ liệu không cân bằng.

<small>o</small> n là số lượng phần tử ở lớp thứ i<small>i</small>

<small>o</small> N là tổng số lượng phần tử ở node đó

Cách giải bài tốn tối ưu hoặc các bước thực hiện của thuật toán:

- Sử dụng chỉ số “gini index” làm thước đo trong khi tạo cây quyết định (dectree) trong thuật toán CART (Classification and Regression Tree), chỉ số “giniindex” càng cao càng tốt.

Algorithm GenDecTree(Sample S, Attlist A)<small>o</small> 1. Tạo một nút N

<small>o</small> 2. Nếu tất cả các mẫu thuộc cùng lớp C thì N được gán nhãn C; dừngtốn;

<small>o</small> 3. Nếu A là rỗng thì N được gán nhãn C là nhãn phổ biến nhất trongdừng thuật tốn;

<small>o</small> 4. Chọn a ∈ A, có độ đo Gini Index cao nhất; Gán nhãn N theo a;<small>o</small> 5. Với mỗi giá trị v của a:

a. Phát triển 1 nhánh từ N với điều kiện a=v;b. Đặt S là tập con của S với a=v;<small>v</small>

c. Nếu S là rỗng thì gắn một lá có nhãn phổ biến nhất trong S;<small>v</small>d. Ngược lại gắn một nút được tạo bởi GenDecTree(S , A-a)<small>v</small>Các độ đo để đánh giá chất lượng mô hình dự đốn: Accuracy, Precision, RecaF1 score

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

2.3. Neural Network

Input của phương pháp: Tập dữ liệu huấn luyện( Xtrain, Ytrain ), kiến trúc mạnơ ron (số lớp ẩn, số nơron của mỗi lớp ẩn), hàm kích hoạt (activation functiohàm mất mát (loss function)

Output của phương pháp: Bộ vector trọng số của các liên kết giữa các nơronđể hàm mất mát đạt giá trị tối ưu

Bài toán tối ưu của phương pháp (hoặc hàm mất mát):

<small>o</small> Hàm mất mát tại tầng output của mạng nơ-ron tùy thuộc vào bài toán thhiện.

<small>o</small> Nếu bài toán Hồi quy, hàm mất mát có thể sử hàm mất mát của Hồituyến tính.

<small>o</small> Nếu bài tốn phân lớp, có thể sử dụng hàm mất mát của Perceptron hoặcLogistic Regression, …

Cách giải bài toán tối ưu hoặc các bước thực hiện của thuật toán:

<small>o</small> Phương pháp phổ biến nhất để tối ưu hàm mất mát của mạng nơ ron làGradient Descent (GD)

<small>o</small> Để áp dụng GD, chúng ta cần tính được đạo hàm của hàm mất mát thetừng trọng số trong mạng nơ-ron bằng phương pháp lan truyền ngược(backpropagation)

Các độ đo để đánh giá chất lượng mơ hình dự đốn: Accuracy, Precision, RecaF1 score

2.4. Các phương pháp học kết hợp (Bagging, Bootstrapping, Stacking)

- Bootstrapping: phương pháp lấy mẫu có hồn lại (sampling with replacement)Các bước thực hiện:

1. Sinh ra mẫu ngẫu nhiên có hồn lại kích thước n từ tổng thể2. Tính các thơng số thống kê đặc trưng của mẫu được sinh ra3. Lặp lại bước 1 và bước 2

4. Sử dụng các ước lượng thống kê của Bootstrapping sampling đã tínhở bước 2 để đánh giá độ đo chính xác các ước lượng thống kê cmẫu ban đầu

<small>-</small> Bagging: xây dựng một lượng lớn các model trên những subsamples khác nhautập training dataset, các model được huấn luyện độc lập và đầu ra sẽ được tíntrung bình cộng (hoặc bỏ phiếu) để cho ra model tốt nhất

Các bước thực hiện:

1. Xây dựng một lượng lớn các model (thường là cùng loại).

2. Mỗi model sau sẽ học cách sửa những error của model trước (dữ liệmà model trước dự đoán sai)

3. Tạo thành một chuỗi các model mà model sau sẽ tốt hơn modeltrước bởi trọng số được update qua mỗi model:

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

o Trọng số của những dữ liệu dự đốn đúng sẽ khơngđổi,

o Trọng số của những dữ liệu dự đoán sai sẽ được tăngthêm

4. Chúng ta sẽ lấy kết quả của model cuối cùng trong chuỗi model nàylàm kết quả trả về (vì model sau sẽ tốt hơn model trước nên tươnkết quả sau cũng sẽ tốt hơn kết quả trước)

<small>-</small> Stacking: một kỹ thuật trong học máy được sử dụng để kết hợp các mơ hìnhđốn khác nhau để tạo ra một mơ hình dự đốn cuối cùng

Các bước thực hiện:

1. Xây dựng một số model (thường là khác loại) và một meta model(supervisor model)

2. Train những model này độc lập

3. Sau đó meta model sẽ học cách kết hợp kết quả dự báo của một smô hình một cách tốt nhất.

Phần 2: Thực nghiệm1. Mơ tả bài tốn

- Tên bài tốn: Dự đốn giới tính- Mơ tả:

Bài tốn dự đốn giới tính là một bài tốn trong lĩnh vực học máy vthác dữ liệu. Mục tiêu của bài tốn là xây dựng một mơ hình dự đoán giớimột người dựa trên các đặc trưng liên quan đến hình dáng khn mặt.Các đặc trưng có thể được sử dụng để đưa ra dự đoán bao gồm chiều dài trộng và chiều cao của trán, chiều rộng và chiều dài của mũi, độ mỏng củakhoảng cách từ mũi đến mơi. Các đặc trưng này được trích xuất từ hình ảnhmặt và được sử dụng để xây dựng một mơ hình máy học để phân loại giớiMột số thuật toán phổ biến để giải quyết bài toán này là Support Vector Ma(SVM), Decision Trees (Cart) và Neural Networks. Sau khi xây dựng mơ hìnchúng ta có thể sử dụng nó để dự đốn giới tính cho các mẫu mới dựa trêtrưng của họ.

Bài tốn dự đốn giới tính có ứng dụng rộng rãi trong nhiều lĩnh vực, banhận dạng khuôn mặt, phân loại ảnh, xác định đối tượng, và các ứng dụngkhác.

- Input: Dữ liệu gồm các thuộc tính đã được gán nhãn: long_hair,forehead_width_cm, forehead height cm, nose_wide, nose_long, lips_thin,distance_nose_to_lip_long

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

- Output: Kết quả phân biệt giới tính (Gender)- Tóm tắt cơng việc thực hiện của bài toán:

Tập dữ liệu này liên quan đến các chỉ số để phân biệt giới tínhĐọc dữ liệu từ file:

<small>●</small> Chia dữ liệu theo tỷ lệ 70% train, 30% test, có xáo trộn.<small>●</small> Sử dụng các hàm trong thư viện sklearn để huấn luyện mơ hìn<small>●</small> So sánh kết quả train và dữ liệu test

<small>●</small> Tính độ đo Accuracy, Precision, Recall, F1 score<small>●</small> Phân biệt giới tính

2. Mơ tả tập dữ liệu của bài toán

- Dữ liệu gồm 5000 vector dữ liệu, 8 cột- Mô tả tập dữ liệu:

Tập dữ liệu X:

o long_hair : Độ dài của tóco forehead_width_cm: Chiều rộng tráno forehead_height_cm: Chiều cao tráno nose_wide: Chiều rộng mũio nose_long: Chiều dài mũio lips_thin: Độ mỏng của môi

o distance_nose_to_lip_long: Khoảng cách từ mũi đến môi

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

Tập dữ liệu Y: gồm 5000 dòng và 1 cột tương ứng là Gender

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

- Dữ liệu chia tỷ lệ 70% cho tập train, 30% cho tập test70% tập train ( 3500 dòng)

30% tập test:

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

activation='identity': xác định hàm kích hoạt được sử dụng trong các tầngẩn của mạng. Trong trường hợp này, identity sử dụng hàm kích hoạt tuyếtính, nghĩa là khơng có bất kỳ biến đổi nào

hidden_layer_sizes=(100,50): xác định kiến trúc của mạng neural network,bao gồm số lượng và kích thước của các tầng ẩn.

svc = SVC(kernel='linear',C=0.5,gamma='auto',coef0=1.2)→ giải thích

kernel='linear' : Xác định loại hàm kernel được sử dụng trong mơ hìnhSVM

C=0.5 : Tham số điều chỉnh mức độ kiểm soát đối với việc vi phạm củađiểm dữ liệu trong quá trình tối ưu hóa.

gamma='auto': Tham số gamma quyết định mức độ ảnh hưởng của mộtđiểm dữ liệu đào tạo đến các điểm xung quanh.Nếu gamma là 'auto', thìtrị của gamma sẽ được chọn tự động

coef0=1.2: coef0 thường được sử dụng với các kernel phi tuyến tính và nóđịnh rõ giá trị của hàm kernel khi các đầu vào tiếp cận vô cùng.- Cách xây dựng mơ hình học kết hợp.

Stacking

estimators = [('cart', cart), ('neu', neu), ('svc', svc)]model = SVC(kernel='poly',C=0.5, gamma='auto', coef0=1.2)stacking_model = StackingClassifier(

estimators=estimators,final_estimator=model,stack_method='auto',cv=5 )

</div>

×