1. Trang chủ
  2. » Luận Văn - Báo Cáo

Thuật toán phân loại và phân tích dữ liệu

29 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 29
Dung lượng 4,75 MB

Nội dung

Chúng ta không thể nào xây dựng một cỗ máy thông minh để học dữ liệu từ cổ chí kim tới hiện tại.. • Xử lý ảnh Bài toán xử lý ảnh Image Processing giải quyết các vấn đề phân tích thông t

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC BÀ RỊA - VŨNG TÀU

KHOA K THU T - CÔNG NGH Ỹ Ậ Ệ

BÁO CÁO MÔN HỌ

Tên đề tài:

Giảng viên hướng dẫn : TS Bùi Thị Thu Trang

Sinh viên thực hiện : Nguyễn Văn Sơn - 20030016

Vũng Tàu, tháng 08 năm 2023

Trang 2

MỤC LỤC

PHẦN 1 MÁY H C VÀ NG D NG 5Ọ Ứ Ụ1.1 Định nghĩa về máy h c 5ọ1.2 Một số ứng d ng cụ ủa máy h c 5ọPHẦN 2 THU T TOÁN PHÂN LO I VÀ PHÂN TÍCH D LI U 8Ậ Ạ Ữ Ệ2.1 Thu t toán phân lo i 8ậ ạ2.1.1 Thuật toán Logistic Regression 82.1.2 Thuật toán KNN (K-Nearest Neighbors) 82.1.3 Thu t toán Decision Tree 8ậ2.1.4 Thu t toán SVM 8ậ2.2 ng d ng phân lo i 9Ứ ụ ạ2.2.1 Tổng quan d li u 9ữ ệ2.2.2 Phân tích d li u 10ữ ệ2.2.3 Kết lu n 28ậTÀI LI U THAM KH O 29Ệ Ả

Trang 3

3

DANH M C HÌNH NH Ụ Ả

Hình 1: Dữ li u 9ệ

Hình 2: Kết qu ả sau khi đọc file 11

Hình 3: Thông tin dataset 12

Hình 4: Số lượng giá tr r ng 13ị ỗ Hình 5: Biểu đồ tổng quan dữ liệu 14

Hình 6: Biểu đồ tổng quan dữ liệu 14

Hình 7: Biểu đồ tổng quan dữ liệu 15

Hình 8: Biểu đồ tổng quan dữ liệu 15

Hình 9: Giá trị c a các c t có ki u object 16ủ ộ ể Hình 10:Biểu đồ histogram 18

Hình 11: Biểu đồ histogram 18

Hình 12: Biểu đồ cột 19

Hình 13: Biểu đồ cột nghề nghiệp 20

Hình 14: Cột distance 21

Hình 15: Thông tin các cột sau khi đã xử lý 22

Hình 16: distance 22 Hình 17: Tham s t t nh t cho m i mô hình 27ố ố ấ ỗ Hình 18: Độ chính xác của mỗi mô hình trên tập huấn luy n và kiểm tra 27ệ

Trang 4

LỜI M Ở ĐẦU

Công ngh máy hệ ọc đã phát triển một cách đáng kể trong th i gian g n ờ ầđây, mở ra những cánh cửa mới cho các ứng dụng đa dạng và tiềm năng Máy học không ch là mỉ ột lĩnh vực nghiên c u quan tr ng, mà còn tr thành m t công ứ ọ ở ộ

cụ quan tr ng trong vi c x lý và phân tích d li u ọ ệ ử ữ ệ

Máy học được áp d ng r ng rãi trong nhiụ ộ ều lĩnh vực khác nhau, t khoa ừhọc, y tế, tài chính, marketing cho đến xe t lái và robot hự ọc Điều này m r ng ở ộkhả năng của con người trong việc hiểu và xử lý những tập dữ liệu phức tạp và khổng l mồ ột cách nhanh chóng và chính xác hơn

Mục tiêu chính c a bài báo cáo này là gi i thi u v máy h c, các ủ ớ ệ ề ọ ứng d ng ụcủa máy h c và áp d ng các thu t toán máy h c vào viọ ụ ậ ọ ệc x lý và phân lo i d ử ạ ữliệu

Em xin cảm ơn cô Bùi Thị Thu Trang đã giúp đỡ em hoàn thành bài báo cáo này Mặc dù đã cố ắ g ng h t sế ức nhưng không thể tránh kh i nh ng sai sót, ỏ ữ

em r t mong nhấ ận được nh ng ý kiữ ến đóng góp từ cô và các bạn để bài báo cáo hoàn thiện hơn

Em xin chân thành cảm ơn!

Trang 5

“Máy học là một lĩnh vực chung liên quan đến việc phát triển các kỹ thuật cho phép máy tính có th t h c t dể ự ọ ừ ữ ệ li u.”

Tiếp t c, cu n sách này gi i thích r ng trong máy h c, vi c hụ ố ả ằ ọ ệ ọc có nghĩa

là tìm hi u và ng d ng các quy lu t ho c mô hình t d li u mà không c n ể ứ ụ ậ ặ ừ ữ ệ ầđược lập trình cụ th Mể ục tiêu c a máy h c là xây d ng các mô hình ho t ủ ọ ự ạđộng tốt trên d li u mữ ệ ới, không được s d ng trong quá trình hu n luy n ban ử ụ ấ ệđầu

1.2 M t s ng d ng c a máy h c ộ ố ứ ụ ủ ọ

Mỗi chúng ta có thể tương tác các ứng dụng của học máy mà không nhận

ra Chúng ta không thể nào xây dựng một cỗ máy thông minh để học dữ liệu

từ cổ chí kim tới hiện tại Tuy nhiên, đã có những ứng dụng thực tế mà machine learning làm rất tốt [2]

• Xử lý ảnh

Bài toán xử lý ảnh (Image Processing) giải quyết các vấn đề phân tích thông tin từ hình ảnh hay thực hiện một số phép biến đổi Một số ví dụ là:

- Gắn thẻ hình ảnh (Image Tagging), giống như Facebook, một thuật toán

tự động phát hiện khuôn mặt của bạn và bạn bè trên những bức ảnh Về cơ bản, thuật toán này học từ những bức ảnh mà bạn tự gắn thẻ cho mình trước

đó

- Nhận dạng ký tự (Optical Character Recognition), là một thuật toán chuyển dữ liệu trên giấy tờ, văn bản thành dữ liệu số hóa Thuật toán phải học cách nhận biết ảnh chụp của một ký tự là ký tự nào

- Ô tô tự lái (Self-driving cars), một phần cơ chế sử dụng ở đây là xử lý ảnh Một thuật toán machine learning giúp phát hiện các mép đường, biển báo hay các chướng ngại vật bằng cách xem xét từng khung hình video từ camera

Trang 6

• Phân tích văn bản

Phân tích văn bản (Text analysis) là công việc trích xuất hoặc phân lọi thông tin từ văn bản Các văn bản ở đây có thể là các facebook posts, emails, các đoạn chats, tài liệu, … Một số ví dụ phổ biến là:

- Lọc spam (Spam filtering), là một trong những ứng dụng phân loại văn bản được biết và sử dụng nhiều nhất Ở đây, phân loại văn bản là xác định chủ

đề cho một văn bản Bộ lọc spam sẽ học cách phân loại một email có phải spam không dựa trên nội dung và tiêu đề của email

- Phân tích ngữ nghĩa (Sentiment Analysis), học cách phân loại một ý

kiến là tích cực, trung tính hay tiêu cực dựa trên nội dung văn bản của người viết

- Khai thác thông tin (Information Extraction), từ một văn bản, học cách

để trích xuất các thông tin hữu ích Chẳng hạn như trích xuất địa chỉ, tên người,

từ khóa, …

• Khai phá dữ liệu

Khai phá dữ liệu (Data mining) là quá trình khám phá ra các thông tin có giá trị hoặc đưa ra các dự đoán từ dữ liệu Định nghĩa này có vẻ bao quát, nhưng bạn hãy nghĩ về việc tìm kiếm thông tin hữu ích từ một bảng dữ liệu rất lớn Mỗi bản ghi sẽ là một đối tượng cần phải học, và mỗi cột là một đặc trưng Chúng ta có thể dự đoán giá trị của một cột của bản ghi mới dựa trên các bản ghi đã học Hoặc là phân nhóm các bản ghi của bản Sau đây là những ứng dụng của khai phá dữ liệu:

- Phát hiện bất thường (Anomaly detection), phát hiện các ngoại lệ, ví dụ

như phát hiện gian lận thẻ tín dụng Bạn có thể phát hiện một giao dịch là khả nghi dựa trên các giao dịch thông thường của người dùng đó

- Phát hiện các quy luật (Association rules), ví dụ, trong một siêu thị hay

một trang thương mại điện tử Bạn có thể khám phá ra khách hàng thường mua các món hàng nào cùng nhau Dễ hiểu hơn, khách hàng của bạn khi mua món hàng A thường mua kèm món hàng nào? Các thông tin này rất hữu ích cho việc tiếp thị sản phẩm

- Gom nhóm (Grouping), ví dụ, trong các nền tảng SaaS, người dùng được

phân nhóm theo hành vi hoặc thông tin hồ sơ của họ

Trang 7

7

- Dự đoán (Predictions), các cột giá trị (của một bản ghi mới trong

database) Ví dụ, bạn có thể dự đoán giá của căn hộ dựa trên các dữ liệu về giá các căn hộ bạn đã có

• Trò chơi điện tử & Robot

Trò chơi điện tử (Video games) và robot (Robotics) là lĩnh vực lớn có sự góp mặt của machine learning Nếu ta có một nhân vật cần di chuyển và tránh các chướng ngại vật trong game Machine learning có thể học và giải quyết công việc này thay bạn Một kỹ thuật phổ biến được áp dụng trong trường hợp này là Học tăng cường (Reinforcement learning) Ở đó, máy sẽ học tăng cường với mục tiêu là giải quyết nhiệm vụ trên Học tăng cường là tiêu cực nếu nó

va phải chướng ngại vật, là tích cực nếu nó chạm tới đích

Một thành tựu gần đây nhất là cỗ máy Alpha Go của Google DeepMind đã đánh bại kỳ thủ cờ vậy số 1 thế giới Trong khi cờ vây là một trò chơi có không gian trạng thái cực kỳ lớn

Thomas H Davenport – học giả nổi tiếng người Mỹ đã viết trên tờ Wall Street: "Con người thường chỉ có thể tạo ra một hoặc hai mô hình tốt mỗi tuần; Machine Learning có thể tạo ra hàng ngàn mô hình mỗi tuần” Câu nói này cho thấy sự quan trọng và phát triển mạnh mẽ của Máy học

Trang 8

PHẦN 2 THU T TOÁN PHÂN LO I VÀ PHÂN TÍCH D LI U Ậ Ạ Ữ Ệ

2.1 Thu t toán phân lo i ậ ạ

2.1.1 Thuật toán Logistic Regression

Logistic Regression là 1 thu t toán phân loậ ại được dùng để gán các đối tượng cho 1 t p h p giá tr r i rậ ợ ị ờ ạc (như 0, 1, 2, ) [3] M t ví ộ

dụ điển hình là phân lo i Email, gạ ồm có email công vi c, email gia ệđình, email spam, Giao dịch tr c tuy n có là an toàn hay không an ự ếtoàn, kh i u lành tính hay ác tính Thu t toán Logistic Regression ố ậdùng hàm sigmoid logistic để đưa ra đánh giá theo xác suất Ví dụ: Khối u này 80% là lành tính, giao d ch này 90% là gian l n, ị ậ2.1.2 Thuật toán KNN (K-Nearest Neighbors)

KNN (K-Nearest Neighbors) là m t trong nh ng thu t toán ộ ữ ậhọc có giám sát đơn giản nhất đượ ử ục s d ng nhi u trong khai phá d ề ữliệu và h c máy [4]ọ Ý tưởng c a thu t toán này là nó không h c m t ủ ậ ọ ộđiều gì t t p d li u hừ ậ ữ ệ ọc (nên KNN được x p vào lo i lazy learning), ế ạmọi tính toán được thực hiện khi nó cần dự đoán nhãn của dữ liệu mới

Lớp (nhãn) c a mủ ột đối tượng d li u m i có th dữ ệ ớ ể ự đoán từcác l p (nhãn) c a k hàng xóm g n nó nh t ớ ủ ầ ấ

2.1.3 Thu t toán Decision Treeậ

Decision tree là m t mô hình supervised learning, có th ộ ể được

áp d ng vào c hai bài toán classification và regression [5] Mụ ả ỗi m t ộnút trong (internal node) tương ứng với m t biộ ến; đường nối gi a nó ữvới nút con c a nó th hi n m t giá tr c th cho biủ ể ệ ộ ị ụ ể ến đó Mỗi nút lá

đại diện cho giá trị d đoán củự a biến mục tiêu, cho trước các giá tr ịcủa các biến được bi u di n bể ễ ởi đường đi từ nút g c tố ới nút lá đó Kỹ thuật h c máy dùng trong cây quyọ ết định được gọi là h c bọ ằng cây quyết định, hay ch g i v i cái tên ng n g n là cây quyỉ ọ ớ ắ ọ ết định 2.1.4 Thu t toán SVM ậ

SVM là phương pháp phân loại nhị phân [6] Cho m t t p các ộ ậđiểm thu c 2 loộ ại trong môi trường N chi u, SVM c g ng tìm ra N-ề ố ắ

1 m t phặ ẳng để phân tách các điểm đó thành 2 nhóm Ví dụ, cho m t ộtập các điểm thuộc 2 loại như hình bên dưới, SVM sẽ tìm ra m t ộđường thẳng nhằm phân cách các điểm đó thành 2 nhóm sao cho khoảng cách giữa đường thẳng và các điểm xa nhất có th ể

Trang 9

9

2.2 ng d ng phân lo i Ứ ụ ạ

2.2.1 T ng quan d li u ổ ữ ệ

In Vehicle Coupon Recommendation

Dữ liệu này được thu th p thông qua m t cu c kh o sát trên Amazon ậ ộ ộ ảMechanical Turk Cu c kh o sát mô t các tình hu ng lái xe khác nhau bao g m ộ ả ả ố ồđiểm đến, thời gian hiện tại, thời tiết, hành khách, v.v., sau đó hỏi người đó liệu anh ta có ch p nh n phi u gi m giá n u anh ta là tài x hay không ấ ậ ế ả ế ế

maritalStatus Tình tr ng hôn nhân ạ

has_Children Tình tr ng con cái ạ

Bar Tần suất đến quán bar m i tháng ỗ

CoffeeHouse Tần suất đến quán café m i tháng ỗ

CarryAway Tần su t nhấ ận đồ ăn mang đi mỗi tháng

RestaurantLessThan20 Đến nhà hàng bao nhiêu l n v i chi phí trung bình ầ ớ

cho mỗi người dưới 20 đô la mỗi tháng Restaurant20To50 Đến nhà hàng bao nhiêu l n v i chi phí trung bình cho mỗi người là $20 - $50 m i tháng ầ ớỗ

Trang 10

Tên thu c tính Ý nghĩa

temperature Nhiệt độ

toCoupon_GEQ5min khoảng cách lái xe đến nhà hàng/quán bar để sử dụng

phiếu gi m giá lả ớn hơn 5 phút hay không toCoupon_GEQ15min khoảng cách lái xe đến nhà hàng/quán bar để sử dụng phiếu gi m giá lả ớn hơn 15 phút hay không toCoupon_GEQ25min khoảng cách lái xe đến nhà hàng/quán bar để sử dụng phiếu gi m giá lả ớn hơn 25 phút hay không direction_same nhà hàng/quán bar có cùng hướng với điểm đến hi n ệ

tại c a bủ ạn không direction_opp nhà hàng/quán bar có cùng hướng với điểm đến hi n ệ

Import thư viện

from sklearn.model_selection import train_test_split #Dùng để chia dữ liệu thành 2 phần train và test

from sklearn.compose import ColumnTransformer #Dùng để xử lý dữ liệu from sklearn.pipeline import Pipeline #Dùng để xử lý dữ liệu

from sklearn.impute import SimpleImputer #Dùng để xử lý dữ liệu from sklearn.preprocessing import StandardScaler, OneHotEncoder #Dùng

để xử lý dữ liệu

from sklearn.linear_model import LogisticRegression,

LogisticRegressionCV #Dùng để xây dựng mô hình Logistic Regression from sklearn.tree import DecisionTreeClassifier #Dùng để xây dựng mô hình Decision Tree

from sklearn.neighbors import KNeighborsClassifier #Dùng để xây dựng mô hình KNN

from sklearn.svm import LinearSVC, SVC #Dùng để xây dựng mô hình SVM from sklearn.utils.fixes import loguniform #Dùng để xây dựng mô hình from sklearn.model_selection import RandomizedSearchCV #Dùng để xây dựng mô hình

from sklearn import metrics #Dùng để đánh giá mô hình

from sklearn.metrics import accuracy_score #Dùng để đánh giá mô hình

Trang 12

Xem thông tin dataset

df.info()

Hình 3: Thông tin dataset

Xử lý d li u r ng và các thu c tính không c n thi t ữ ệ ỗ ộ ầ ế

Như thông tin ở trên, cột car ch có 108 ô có giá tr , chiỉ ị ếm chưa đến 1% dữ liệu,

vì v y chúng ta không th dùng thuậ ể ộc tính này để phân tích nên s ti n hành ẽ ếxóa

df.drop(columns=[ 'car' ], inplace= True )

Tiếp theo, chúng ta dùng hai l nh sau ệ

df.select_dtypes( 'int64' ).nunique()

print(df[ 'toCoupon_GEQ5min' ].unique())

và th y cấ ột toCoupon_GEQ5min chỉ có duy nh t mấ ột giá tr là 1, tị ức là t t c các ấ ảchuyến đi đều có khoảng cách lớn hơn 5 phút, vì vậy chúng ta tiến hành bỏ cột này Đồng th i ph n 2.2.1, chúng ta th y có 2 c t direction_same và ờ ở ầ ấ ộdirection_opp đều có cùng m t thông tin Vì v y chúng ta s b b t m t c t ộ ậ ẽ ỏ ớ ộ ộ

Trang 13

13

df.drop(columns=[ 'toCoupon_GEQ5min' ], inplace= True )

df.drop(columns=[ 'direction_opp' ], inplace= True )

Kiểm tra s ố lượng giá tr r ng mị ỗ ở ỗi c t

for ax, col in zip(axes, clean_df.select_dtypes( 'object' ).columns):

sns.countplot(y=col, data=clean_df, ax=ax,

order=clean_df[col].value_counts().index)

for p in ax.patches:

Trang 14

ax.annotate(format(p.get_width(), '.0f' ), (p.get_width(), p.get_y() + p.get_height() / ), ha = 2 'center' , va = 'center' , xytext = ( 10 , ), 0

textcoords = 'offset points' )

plt.tight_layout()

plt.show()

Hình 5: Bi ểu đồ ổ t ng quan d li u ữ ệ

Hình 6: Bi ểu đồ ổ t ng quan d li u ữ ệ

Trang 15

15

Hình 7: Bi ểu đồ ổ t ng quan d li u ữ ệ

Hình 8: Bi ểu đồ ổ t ng quan d li u ữ ệ

Trang 16

Kiểm tra các c t có giá trị không ph i s ả ố

for i in df.select_dtypes( 'object' ).columns:

print(i, df[i].unique())

Hình 9: Giá tr c a các c t có ki u object ị ủ ộ ể

Ở đây chúng ta thấy có một số cột có giá trị khá đặc biệt như income, CoffeHouse…Đây được gọi là các Ordinal Features Ordinal features (đặc trưng thứtự) là m t loộ ại đặc trưng trong xử lý d liữ ệu, nơi các giá trị có th t ứ ự và tương quan đối với nhau T c là, các giá tr cứ ị ủa đặc trưng này có thể đượ ắc s p x p theo mế ột th t c ứ ự ụthể, nhưng không có thông tin về khoảng cách hoặc mức độ khác biệt giữa chúng Chúng ta c n chuy n chúng sang d ng sầ ể ạ ố để ử lý, còn các đặc trưng còn lạ x i chúng ta sẽ x lý sau ử

Trang 17

Danh sách các Ordinal Features

frequency_cols = [ 'Restaurant20To50' , 'RestaurantLessThan20' ,

'CarryAway' , 'CoffeeHouse' , 'Bar' ]

Tiến hành ánh x giá trị của các đặc trưng trong danh sách trên sang các giá trị

tương ứng trong các dictionaries

for col in frequency_cols:

clean_df[col] = clean_df[col].map(frequency_map)

clean_df.age = clean_df.age.map(age_map)

clean_df.income = clean_df.income.map(income_map)

Trang 18

Vẽ biểu đồ histogram xác nh n các giá tr ậ ị tương ứng đã được ánh x

Trang 19

19

Vẽ biểu đồ th hi n m i quan h gi a m t s ể ệ ố ệ ữ ộ ố đặc trưng với vi c có s d ng ệ ử ụ

coupon hay không

fig, axes = plt.subplots( , , figsize=( 3 3 20 , 15 ))

axes = axes.flatten()

for ax, col in zip(axes, [ 'destination' , 'passanger' , 'weather' , 'time' , 'coupon' , 'expiration' , 'gender' , 'maritalStatus' , 'education' ]):

sns.countplot(y=col, hue= 'Y' , data=clean_df, ax=ax)

for p in ax.patches:

ax.annotate(format(p.get_width(), '.0f' ), (p.get_width(), p.get_y() + p.get_height() / ), ha = 2 'center' , va = 'center' , xytext = ( 10 , 0 ), textcoords = 'offset points' )

plt.tight_layout()

plt.show()

Hình 12: Bi ểu đồ ộ c t

Ngày đăng: 02/12/2024, 15:51

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w