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

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

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 (4.9 MB, 32 trang )

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

<b>TRƯỜNG ĐẠI HỌC NGUYỄN TẤT THÀNHKHOA CƠNG NGHỆ THƠNG TIN </b>

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

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

<b>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</b>

<b>Khoá: 2020</b>

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

Tp HCM, tháng 12 năm 2022

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

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

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

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

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):<b>Tiêu chí (theoCĐR HP)<sup>Đánh giá của GV</sup>Điểm tốiđaĐiểm đạtđược</b>Cấu trúc củabáo cáo...

... <sup>1,5</sup>Nội dung- Các nội dungthành phần...

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

<b>LỜI CẢM ƠN</b>

Lời đầu tiên cho phép em gửi lời cảm ơn sâu sắc tới tồ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 hồn thành tiểu luận mơn học nàyĐể hồ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 <b>Đặng Như Phú</b> ngườitrực tiếp hướng dẫn, chỉ bảo em trong suốt q trình học tập và nghiêncứu để hồ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ì đã lnbê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 hồn thành tốt cơng việc củamình.

Trong q 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 qthầy cô và các bạn.

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

Sinh viên thực hiện

<b> PHAN LÂM VĨNH HƯNG</b>

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

<b>LỜI MỞ ĐẦU</b>

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ề antồ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,<b> Công nghệ thông tin (CNTT)</b> đ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.

Tồ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

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="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 tồ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.

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="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 tố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

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

<b>DANH MỤC HÌNH VẼ</b>

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 tốn KNN...18

Hình 9 Cơng thức thuật tố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

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

<b>DANH MỤC BẢNG BIỂU</b>

1 Bảng 1 Thơng tin lồi hoa Setosa2 Bảng 2 Thơng tin lồi hoa Versicolor3 Bảng 3 Thơng tin lồi hoa virginica

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

<b>CHƯƠNG I: GIỚI THIỆU</b>

<b>1. Đặt vấn đề</b>

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 ln là xuhướng công nghệ tương lai mà các hãng công nghệ trên tồ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

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="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.

<b>2. Mục đích nghiên cứu</b>

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

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

- 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.

<b>CHƯƠNG II. CƠ SỞ LÝ THUYẾT</b>

<b>1. Chuỗi thời gian là gì?</b>

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

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="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.

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

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

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="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

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

Đâ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.

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="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 tố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.

<b>Chuỗi thời gian cộng và chuỗi thời gian nhân</b>

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.

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

Để 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

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="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ụ.

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="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

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

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

<b>Tính dừng và tự tương quan</b>

Ngồ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ể

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="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:

<b>Giá trị trung bình khơng đổi</b>

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ẽ ln là giá trị trung bình trong mọi thời điểm.

<b>Phương sai khơng đổi</b>

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

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

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

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="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 q 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.Ngồ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.

<b>CHƯƠNG III: THUẬT TỐN KNEAREST NEIGHBOR</b>

<b>1. Thuật toán knearest neighbor</b>

<b>Định nghĩa</b>

Knearest neighbor (KNN) là một trong những thuật tố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.

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

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.

<b>2. Mô tả giải thuật </b>

Ví dụ minh họa

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

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

Giả sử bài tố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 vng 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 vng 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ìnhvng xanh có khoảng cách gần chấm xanh nhất, do đó chấm xanh19

</div>

×