tiểu luận phân tích dữ liệu chuỗi thời gian và ứng dụng tên đề tài nghiên cứu thuật toán knearest neighbor

32 0 0
Tài liệu đã được kiểm tra trùng lặp
tiểu luận phân tích dữ liệu chuỗi thời gian và ứng dụng tên đề tài nghiên cứu thuật toán knearest neighbor

Đ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

TRƯỜNG ĐẠI HỌC NGUYỄN TẤT THÀNHKHOA CÔNG NGHỆ THÔNG TIN TIỂU LUẬN PHÂN TÍCH DỮ LIỆU CHUỖI THỜI GIAN VÀ ỨNG DỤNGTên đề tài Nghiên cứu thuật toán KnearestneighborGiảng viên hướng dẫn: Đặng

Trang 1

TRƯỜNG ĐẠI HỌC NGUYỄN TẤT THÀNHKHOA CÔNG NGHỆ THÔNG TIN

TIỂU LUẬN PHÂN TÍCH DỮ LIỆU CHUỖI THỜI GIAN VÀ ỨNG DỤNG

Tên đề tài Nghiên cứu thuật toán Knearestneighbor

Giảng viên hướng dẫn: Đặng Như PhúSinh viên thực hiện: Phan Lâm Vĩnh HưngMSSV: 2000006365

Khoá: 2020

Ngành/ chuyên ngành: Khoa học dữ liệu

Tp HCM, tháng 12 năm 2022

Trang 2

TRƯỜNG ĐẠI HỌC NGUYỄN TẤT THÀNH

TRUNG TÂM KHẢO THÍHỌC KỲ … … NĂM HỌC …… - ….…KỲ THI KẾT THÚC HỌC PHẦN

PHIẾU CHẤM THI TIỂU LUẬN/ĐỒ ÁN

Môn thi: Phân tích dữ liệu chuỗi thời gian

và ứng dụng Lớp học phần:20DTH1D

Nhóm sinh viên thực hiện :

1.Phan Lâm Vĩnh Hưng-2000006365 Tham gia đóng góp:100%2.Võ Quốc Đức-2000005949 Tham gia đóng góp:100%

Ngày thi: 11/5/2023 Phòng thi: L.510

Đề tài tiểu luận/báo cáo của sinh viên :Nghiên cứu thuật toán Knearest neighborPhần đánh giá của giảng viên (căn cứ trên thang rubrics của môn học):Tiêu chí (theoCĐR HP)Đánh giá của GVĐiểm tốiđaĐiểm đạtđượcCấu trúc củabáo cáo

1,5Nội dung- Các nội dungthành phần

Trang 3

LỜI CẢM ƠN

Lời đầu tiên cho phép em gửi lời cảm ơn sâu sắc tới toàn thể các thầycô giáo trong Tường Đại Học Nguyễn Tất Thành, những người đã hếtmình truyền đạt và chỉ dẫn cho chúng em những kiến thức, những bàihọc quý báu và bổ ích để em hoàn thành tiểu luận môn học nàyĐể hoàn thành được tiểu luận môn học này, đặc biệt em xin được bàytỏ sự tri ân và xin chân thành cảm ơn giảng viên Đặng Như Phú ngườitrực tiếp hướng dẫn, chỉ bảo em trong suốt quá trình học tập và nghiêncứu để hoàn thành tiểu luận môn học này.

Sau nữa, em xin gửi tình cảm sâu sắc tới gia đình và bạn bè vì đã luônbên cạnh khuyến khích, động viên, giúp đỡ cả về vật chất lẫn tinh thầnem trong suốt quá trình học tập để em hoàn thành tốt công việc củamình.

Trong quá trình nghiên cứu và làm báo cáo do năng lực, kiến thức, trìnhđộ bản thân còn hạn hẹp nên không tránh khỏi những thiếu sót Emkính mong nhận được sự thông cảm và những ý kiến đóng góp của quýthầy cô và các bạn.

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

Sinh viên thực hiện

PHAN LÂM VĨNH HƯNG

Trang 4

LỜI MỞ ĐẦU

Công nghệ thông tin là một ngành học được đào tạo để sử dụng máytính và các phần mềm máy tính để phân phối và xử lý các dữ liệu thôngtin, đồng thời dùng để trao đổi, lưu trữ và chuyển đổi các dữ liệu thôngtin dưới nhiều hình thức khác nhau.

Sau khi được đào tạo, sinh viên học ngành này sẽ được trang bị kiếnthức nền tảng và chuyên sâu về lĩnh vực công nghệ thông tin để nângcao tay nghề nhằm phát triển khả năng sửa chữa, xây dựng, cài đặt,bảo trì các phần cứng của máy tính cũng như nghiên cứu và phát triểncác ứng dụng phần mềm Ngoài ra cũng được trang bị kiến thức về antoàn và bảo mật thông tin mạng, một những lĩnh vực quan trọng đượcquan tâm hàng đầu trên thế giới hiện nay.

Hiện nay, Công nghệ thông tin (CNTT) đang trong giai đoạn pháttriển như vũ báo ở mọi lĩnh vực hoạt động khắp nơi trên thế giới.Điềunày đã làm cho nghành công nghệ thông tin ngày càng được nhiềungười quan tâm đặc biệt là giới trẻ hiện nay, tư tưởng thích cái mới,thích sự tìm tòi sáng tạo là yếu tố quan trọng hấp dẫn các bạn trẻ đếnnghành nghề này

Toàn cầu hóa những năm 1990 đã làm xuất hiện khuynh hướng xã hộiquan trọng, đó là sự chuyển trạng thái từ xã hội công nghiệp sang xãhội kiến thức và trong đó thông tin giữ vai trò trọng yếu Sự phát triểnvà ứng dụng CNTT ngày nay báo trước một thời kỳ mới với những thayđổi xã hội lớn lao CNTT như một công nghệ chung xâm nhập vào mọilĩnh vực kinh tế xã hội Là một ngành tổng thể bao gồm nhiều nhánh.nhỏ như mạng lưới bưu chính viễn thông, truyền thông đa phương tiện,internet , chúng ta có thể khẳng định rằng ở Việt Nam đã xây dựngđược một cơ cấu hạ tầng có đồng bộ, đầy đủ trong hệ thống ngànhcông nghệ thông tin Ở đây chúng ta có thể kể tới một dấu mốc đángnhớ trong sự phát triển ngành CNTT đó là vào năm 1997, nước ta đã3

Trang 5

biến “giấc mơ Internet” thành hiện thực bằng việc tham gia kết nối vàomạng toàn cầu và tính cho tới thời điểm này, Việt nam đã trở thànhquốc gia có tỷ lệ tăng trưởng Internet nhanh nhất trong khu vực và nằmtrong số những quốc gia có tỷ lệ tăng trưởng cao nhất thế giới.

Trang 6

3 Phạm vi và đối tượng nghiên cứu 9

CHƯƠNG II CƠ SỞ LÝ THUYẾT 9

1 Chuỗi thời gian là gì? 9

2 Mục tiêu 10

3 Các phương pháp dự báo chuỗi thời gian 10

CHƯƠNG III: THUẬT TOÁN KNEAREST NEIGHBOR 17

1 Thuật toán knearest neighbor 17

2 Mô tả giải thuật 17

3 Bài làm chi tiết 19

4 Dữ liệu mẫu 24

KẾT LUẬN 29

TÀI LIỆU THAM KHẢO 30

5

Trang 8

DANH MỤC HÌNH VẼ

Hình 1 Mối quan hệ giữa AI, Machine Learning và Deep Learning 9

Hình 2 mô hình phân tách 11

Hình 3 Biểu đồ tính xu hướng theo thời gian 13

Hình 4 Biểu đồ tính thời vụ theo thời gian 14

Hình 5 Biểu đồ tính nhiễu theo thời gian 15

Hình 6 Ví dụ giá trị trung bình không đổi 16

Hình 7 ví dụ phương sai không đổi 16

Hình 8 ví dụ minh họa thuật toán KNN 18

Hình 9 Công thức thuật toán 19

Hình 10 Hình ảnh minh họa về Iris flower dataset 20

Hình 11 Sơ đồ minh họa phân cụm của Iris flower datasets 21

Hình 12 Khai báo thư viện 22

Trang 9

DANH MỤC BẢNG BIỂU

1 Bảng 1 Thông tin loài hoa Setosa2 Bảng 2 Thông tin loài hoa Versicolor3 Bảng 3 Thông tin loài hoa virginica

Trang 10

CHƯƠNG I: GIỚI THIỆU1 Đặt vấn đề

Những năm gần đây, AI nổi lên như một bằng chứng của cuộc cáchmạng công nghiệp lần thứ tư Trí tuệ nhân tạo có thể được định nghĩanhư một nghành của khoa học máy tính liên quan đến việc tự động hóacác hành vi thông minh Trí tuệ nhân tạo là một bộ phận của khoa họcmáy tính và do đó nó phải được đặt trên những nguyên lý lý thuyếtvững chắc, có khả năng ứng dụng được của lĩnh vực này Ở thời điểmhiện tại, thuật ngữ này thường dùng để nói đến các máy tính có mụcđích không nhất định và ngành khoa học nghiên cứu về các lý thuyếtvà các ứng dụng của trí tuệ nhân tạo.

Theo đà phát triển của công nghệ,ứng dụng trí tuệnhân tạo luôn là xuhướng công nghệ tương lai mà các hãng công nghệ trên toàn thế giớiđua nhau sáng tạo, nó là nền tảng cốt lõi của cuốc cách mạng côngnghệ 4.0.

ML (Machine Learning) là một lĩnh vực của trí tuệ nhân tạo, được sinh ratừ khả năng nhận diện mẫu và từ lý thuyết các máy tính có thể học màkhông cần phải lập trình để xử lý các nhiệm vụ cụ thể nào đó.

Hầu hết mọi nghành công nghiệp đang làm việc với hàm lượng lớn dữliệu đều nhận ra tầm quan trọng của công nghệ ML Những cái nhìnsáng suốt từ nguồn dữ liệu này – chủ yếu dạng thời gian thực – sẽ giúpcác tổ chức vận hành hiệu quả hơn hoặc tạo lợi thế cạnh tranh so vớicác đối thủ.

Các ứng dụng của ML đã quá quen thuộc với con người: xe tự hành củaGoogle và Tesla, hệ thống tự tag khuôn mặt trên Facebook, hệ thốnggợi ý sản phẩm của Amazon, hệ thống gợi ý phim của Netflix…, chỉ làmột vài trong vô vàn những ứng dụng của trí tuệ nhân tạo và cụ thể làML

9

Trang 11

Hình 1 Mối quan hệ giữa AI, Machine Learning và Deep LearningXu hướng phát triển công nghệ thông tin ngày càng tăng, song song vớinó lượng dữ liệu được sinh ra cũng ngày một lớn Vì vậy nhu cầu để xửlý dữ liệu cũng lớn hơn, ML đang góp phần giải quyết vấn đề này Mộttrong những thuật toán thường dùng trong ML đó là thuật toán Knearest neighbor.

Ứng dụng của thuật toán này được sử dụng rất nhiều và rộng rãi trongcác bài toán phân lớp.

2 Mục đích nghiên cứu

- Nghiên cứu, tìm hiểu thuật toán KNN.- Đánh giá hiệu quả của thuật toán.

3 Phạm vi và đối tượng nghiên cứu

- Phạm vi nghiên cứu: Thử nghiệm trên Iris flower dataset.- Đối tượng nghiên cứu: Thuật toán KNN và bộ Iris flower dataset.

CHƯƠNG II CƠ SỞ LÝ THUYẾT1 Chuỗi thời gian là gì?

Dự báo chuỗi thời gian (Time Series Forecasting) là một kỹ thuật dựđoán các sự kiện thông qua một chuỗi thời gian Nó dự đoán các sự

Trang 12

kiện trong tương lai bằng cách phân tích các xu hướng trong quá khứ,với giả định rằng các xu hướng trong tương lai sẽ tương tự như vậy.Dự báo chuỗi thời gian cũng là một lĩnh vực quan trọng của học máy vàcó thể được coi là một vấn đề học tập có giám sát Các phương pháphọc máy như Regression, Neural Networks, Support Vector Machines,Random Forests và XGBoost có thể được áp dụng trong trường hợp này.Dự báo chuỗi thời gian thường được sử dụng cùng với việc phân tích.Phân tích chuỗi thời gian liên quan đến việc phát triển các mô hình tìmkiếm tri thức trong dữ liệu Dự báo chuỗi thời gian thực hiện bước tiếptheo với kiến thức vừa tìm được Nó đòi hỏi phải phát triển các mô hìnhdựa trên dữ liệu trước đó và áp dụng chúng để thực hiện các quan sátvà hướng dẫn các quyết định chiến lược trong tương lai

Khoảng thời gian dự đoán: khoảng thời gian ngắn hơn thường dễ dựđoán hơn với độ tin cậy cao so với khoảng thời gian dài hơn.

Tần suất cập nhật dự báo: Dự báo có thể cần được cập nhật thườngxuyên theo thời gian hoặc có thể cần được thực hiện một lần và giữnguyên.

Dự báo tần suất theo thời gian: Thông thường, các dự báo có thể đượcthực hiện ở tần suất thấp hơn hoặc cao hơn, cho phép khai thác việcdownsampling và upsampling của dữ liệu.

3 Các phương pháp dự báo chuỗi thời gianMô hình phân tách

Dữ liệu chuỗi thời gian có thể thể hiện nhiều mẫu khác nhau, do đó,người ta thường chia chuỗi thời gian thành các thành phần, mỗi thành11

Trang 13

phần đại diện cho một loại mẫu cơ bản Như đã đề cập ở bài viết trước,một chuỗi thời gian thường được phân tích thành 3 thành phần chính:xu hướng (trend), mùa vụ (seasonality), thành phần bất quy tắc có thểcoi là dư (residuals) hay nhiễu trắng (white noise).

Hình 2 mô hình phân tách

Phân tách dựa trên tốc độ thay đổi

Đây là một kỹ thuật phân tích chuỗi thời gian quan trọng, đặc biệt là đểđiều chỉnh theo mùa vụ Nó tìm cách xây dựng một số chuỗi thànhphần từ một chuỗi thời gian gốc (sau đó có thể tái tạo lại chuỗi gốcbằng phép cộng hoặc phép nhân) trong đó mỗi chuỗi này có một đặcđiểm hoặc kiểu hành vi nhất định.

Nếu dữ liệu cho thấy một số tính thời vụ (ví dụ: hàng ngày, hàng tuần,hàng quý, hàng năm) thì có thể phân tách chuỗi thời gian ban đầuthành tổng của ba thành phần:

trong đó là thành phần theo mùa, là thành phần xu hướng và làSt Tt Rtthành phần còn lại.

Trang 14

Có một số kỹ thuật để ước tính sự phân tách như vậy Cơ bản nhất đượcgọi là phân tách cổ điển và bao gồm:

Ước tính xu hướng thông qua giá trị trung bìnhTt

Tính toán dưới dạng chuỗi giảm dần trung bình St Yt−Tt cho mỗimùa (ví dụ: cho mỗi tháng)

Tính chuỗi còn lại là Rt=Yt−Tt−St.

Chuỗi thời gian cộng và chuỗi thời gian nhân

Trong một chuỗi thời gian cộng (additive time series), các thành phầncộng lại với nhau để tạo thành chuỗi thời gian Trong một chuỗi thờigian nhân (multiplicative time series), các thành phần nhân với nhau đểtạo thành chuỗi thời gian.

Ví dụ về chuỗi thời gian sử dụng mô hình cộng:yt Tt Ct St It= + + +

Một mô hình cộng được sử dụng khi các biến thể xung quanh xu hướngkhông thay đổi theo cấp độ của chuỗi thời gian.

Ví dụ về chuỗi thời gian sử dụng mô hình nhân:yt Tt Ct St It= ∗ ∗ ∗

Một mô hình nhân là phù hợp nếu xu hướng tỷ lệ thuận với mức độ củachuỗi thời gian.

Phân tách chuỗi thời gian bằng Python-Pandas

Để làm rõ vai trò của các thành phần trong chuỗi thời gian, chúng taxem qua một cách phân tách chuỗi thời gian viết bằng ngôn ngữPython Chúng ta sẽ xây dựng tính xu hướng, tính thời vụ và các thànhphần còn lại bằng những dữ liệu hư cấu.

Giả sử chúng ta có một cảm biến đo nhu cầu điện của người dùng.Chúng ta giả định thời gian, xu hướng và trước hết bỏ qua các đơn vịtính để mọi thứ đơn giản.

13

Trang 15

Hình 3 Biểu đồ tính xu hướng theo thời gianBây giờ là giả định biến mùa vụ.

Trang 16

Hình 4 Biểu đồ tính thời vụ theo thời gian

Xây dựng các thành phần còn lại để tạo một mô hình nhanh về số dư:

15

Trang 17

Hình 5 Biểu đồ tính nhiễu theo thời gian

Tính dừng và tự tương quan

Ngoài 3 thành phần chính nêu trên, một yếu tố quan trọng trong việcdự báo chuỗi thời gian nữa là tính dừng của dữ liệu (stationary) Mộtchuỗi thời gian được gọi là có tính dừng nếu các thuộc tính có ý nghĩathống kê của nó (ví dụ như là trung bình, độ lệch chuẩn) không đổi theothời gian Nếu một chuỗi không dừng, việc dự báo sẽ không có giá trịứng dụng thực tiễn Lý do là nếu chuỗi không dừng, chúng ta chỉ có thểnghiên cứu hành vi của nó cho riêng giai đoạn đang xem xét, chẳnghạn tỉ giá đồng Việt Nam trong giai đoạn 1/1/2020 đến 5/5/2021 Vì thế,mỗi chuỗi thời gian là một giai đoạn riêng biệt, nên chúng ta không thể

Trang 18

Để dữ liệu chuỗi thời gian có tính dừng, dữ liệu phải thể hiện các thuộctính theo thời gian:

Giá trị trung bình không đổi

Hình 6 Ví dụ giá trị trung bình không đổi

Ở ví dụ hình trên, nếu chúng ta vẽ giá trị trung bình của chuỗi, thì giátrị này sẽ luôn là giá trị trung bình trong mọi thời điểm.

Phương sai không đổi

Hình 7 ví dụ phương sai không đổi

Cấu trúc tự tương quan hằng số

Tự tương quan đơn giản có nghĩa là phép đo chuỗi thời gian hiện tạitương quan với phép đo trong quá khứ.

17

Trang 19

Khoảng thời gian giữa các giá trị tương quan được gọi là LAG Một ví dụcụ thể là chúng ta sẽ muốn biết liệu giá cổ phiếu ngày hôm nay tươngquan tốt hơn với giá của ngày hôm qua hay giá của hai ngày trước đểđưa ra được những dự báo tốt hơn cho các ngày tiếp theo.

Hầu hết các mô hình về chuỗi thời gian hiện tại được xây dựng trên mộtgiả định tính dừng Có nghĩa là nếu chuỗi thời gian ở trong quá khứ cómột hành vi nào đó, thì khả năng cao là nó sẽ lặp lại trong tương lai.Ngoài ra, các lý thuyết liên quan đến tính dừng đã được các nhà nghiêncứu khai thác một cách triệt để và dễ ràng thực hiện hơn là các lýthuyết về tính không dừng.

CHƯƠNG III: THUẬT TOÁN KNEAREST NEIGHBOR1 Thuật toán knearest neighbor

Định nghĩa

Knearest neighbor (KNN) là một trong những thuật toán học có giámsát đơn giản nhất trong Machine Learning Ý tưởng của KNN là tìm raoutput của dữ kiệu dựa trên thông tin của những dữ liệu training gần nónhất.

Quy trình làm việc của thuật toán KNN

o Bước 1: xác định tham số K= số láng giềng gần nhất.

o Bước 2: tính khoảng cách đối tượng cần phân lớp với tất cả cácđối tượng trong ttraining data

o Bước 3: sắp xếp khoảng cách theo láng giềng gần nhất với đốitượng cần phân lớptự tăng dần và xác định K láng

o Bước 4: lấy tất cả các lớp của K láng giềng gần nhất.

o Bước 5: dựa vào phần lớn lớp của K để xác định lớp cho đối tượngcần phân lớp.

2 Mô tả giải thuật

Ví dụ minh họa

Trang 20

Hình 8 ví dụ minh họa thuật toán KNN

Giả sử bài toán được đặt ra: mình mới quen một người bạn, tuy nhiênmình là fan của UsUk vậy nên mình cần biết người bạn này có phải làfan của KPop hay không Qua thời gian tìm hiểu mình đã thu thập đượcmột số dữ liệu và đã biểu hiện dưới dạng hình vẽ trên.

Ta dễ dàng nhìn thấy có hai loại: hình vuông màu xanh biểu diễn chonhững người là fan của Kpop, tam giác màu đỏ biểu diễn cho nhữngngười không là fan của Kpop, hình tròn màu xanh là người bạn mìnhmuốn biết có phải là fan Kpop hay không, khoảng cách giữa chấm trònvà các điểm còn lại biểu diễn độ thân thiết của bạn đó với những ngườibạn.

Phương pháp đơn giản nhất để kiểm tra xem bạn đó chơi thân với ngườibạn nào nhất, tức là tìm xem điểm gần chấm xanh thuộc class nào(hình vuông hay tam giác) Từ hình trên ta dễ dàng nhận thấy điểm gầnchấm xanh nhất là hình tam giác màu đỏ, do đó nó sẽ được phân vàolớp tam giác màu đỏ.

Có một vấn đề trong phương pháp trên, xung quanh cấm xanh xuấthiện rất nhiều hình vuông màu xanh nên việc xét điểm gần nhất làchưa khả thi Vì vậy, ta sẽ xét k điểm gần nhất Giả sử, ta lấy K=3, dựatheo hình trên ta dễ dàng nhận ra có hai hình tam giác đỏ và một hìnhvuông xanh có khoảng cách gần chấm xanh nhất, do đó chấm xanh19

Ngày đăng: 08/05/2024, 16:25

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan