CHƯƠNG 1: MẠNG ANN (NƠRON NHÂN TẠO) 1 1.1. TÌM HIỂU THUẬT TOÁN ANN 1 1.1.1. GIỚI THIỆU 1 1.1.2. KHÁI QUÁT ANN 2 1.1.3. MẠNG THẦN KINH 3 1.1.4. MẠNG NHÂN TẠO 4 1.1.5. QUY TRÌNH ĐÀO TẠO ANN 6 1.1.6. ĐIỂM MẠNH VÀ HẠN CHẾ CỦA ANN 7 1.2. TÌM HIỂU PHÂN CỤM DỮ LIỆU 8 1.2.1. ĐỊNH NGHĨA PHÂN CỤM 8 1.2.2. CÁC YÊU CẦU CỦA PHÂN CỤM DỮ LIỆU 10 1.3. TÌM HIỂU PHÂN LỚP DỮ LIỆU 11 1.3.1. MỘT SỐ THUẬT NGỮ PHÂN LỚP TRONG MACHINE LEARNING ...................................................................................................................... 12 1.3.1. CÁC KIỂU HỌC TRONG PHÂN LỚP 12 1.3.3. CÁC THUẬT TOÁN PHÂN LỚP 13 CHƯƠNG 2: TÌM HIỂU MÔT SỐ THUẬT TOÁN 18 2.1. DATA MINING 18 2.1.1. STATISTICS 18 2.1.2. MACHINE LEARNING 19 2.1.3. DATABASE SYSTEMS AND DATA WAREHOUSES 21 2.1.4. INFORMATION RETRIEVA (Thông tin truy xuất) 22 2.1.5. DATA CLEANING 22 2.2. THUẬT TOÁN KMEAN 23 2.3. THUẬT TOÁN SVM (SUPPORT VECTOR MACHINGE) 30 2.3.1. MÁY HỖ TRỢ VECTOR 30 2.3.2. CÁCH HOẠT ĐỘNG 31 CHƯƠNG 3: BÀI TOÁN 37 CHƯƠNG 4: DEMO 40 CHƯƠNG 5: KẾT LUẬN 47 TÀI LIỆU THAM KHẢO 48
MẠNG ANN (NƠRON NHÂN TẠO)
TÌM HIỂU THUẬT TOÁN ANN
Mạng thần kinh nhân tạo (ANN) đang ngày càng được ưa chuộng trong nhiều lĩnh vực như nhận dạng mẫu, dự đoán thời tiết, và tự động hóa Trong ngành kỹ thuật điện, ANN được nghiên cứu để dự báo tải trọng, xử lý báo động tại trạm biến áp và dự đoán thời tiết cho các trang trại năng lượng tái tạo Đặc biệt, với sự phát triển của lưới điện thông minh, vai trò của ANN càng trở nên quan trọng ANN là một phần của lĩnh vực trí tuệ nhân tạo, cùng với các công nghệ như Fuzzy Logic, Expert Systems và Support Vector Machines.
1.1.1 GIỚI THIỆU Ở dạng đơn giản nhất, một mạng lưới thần kinh nhân tạo (ANN) là một sự bắt chước của bộ não con người Một bộ não tự nhiên có khả năng học hỏi những điều mới, thích nghi với môi trường mới và thay đổi Bộ não có khả năng tuyệt vời nhất để phân tích thông tin không đầy đủ và không rõ ràng, mờ nhạt và đưa ra phán đoán của riêng mình từ nó Ví dụ, chúng ta có thể đọc chữ viết tay của người khác mặc dù cách họ viết có thể hoàn toàn khác với cách chúng ta viết Một đứa trẻ có thể xác định rằng hình dạng của một quả bóng và màu cam đều là một vòng tròn Ngay cả một em bé vài ngày tuổi cũng có khả năng nhận ra mẹ của nó từ cảm ứng, giọng nói và mùi Chúng ta có thể xác định một người được biết đến ngay cả từ một bức ảnh mờ Não là một cơ quan rất phức tạp kiểm soát toàn bộ cơ thể
Bộ não của các loài động vật, kể cả những loài nguyên thủy nhất, sở hữu khả năng vượt trội hơn cả những máy tính tiên tiến nhất Nó không chỉ đảm nhiệm việc điều khiển các bộ phận vật lý của cơ thể mà còn thực hiện các hoạt động phức tạp như suy nghĩ, hình dung, mơ mộng, tưởng tượng và học tập.
Hình 1 1 Mô phỏng ý tưởng cấu hình mạng ANN 1.1.2 KHÁI QUÁT ANN
Mạng thần kinh nhân tạo (ANN) đang ngày càng được ứng dụng rộng rãi trong nhiều lĩnh vực như nhận dạng mẫu, dự đoán thời tiết, nhận diện chữ viết tay và khuôn mặt, cũng như trong công nghệ lái tự động và robot Trong lĩnh vực kỹ thuật điện, ANN được nghiên cứu để dự báo tải trọng, xử lý báo động tại các trạm biến áp và dự đoán thời tiết cho các trang trại năng lượng mặt trời và gió Đặc biệt, trong bối cảnh phát triển lưới điện thông minh, ANN đóng vai trò quan trọng trong việc tối ưu hóa và nâng cao hiệu quả hoạt động ANN là một phần của trí tuệ nhân tạo, bên cạnh các công nghệ như Fuzzy Logic, Expert Systems và Support Vector Machines.
Hình 1 2 Sơ đồ minh họa neural nhân tạo và neural sinh học[7]
Não được cấu thành từ các tế bào thần kinh, tạo thành một mạng lưới thần kinh phức tạp Trong não người có khoảng 1011 tế bào thần kinh, với khoảng 10.000 kết nối giữa chúng Mạng nơ-ron nhân tạo (ANN) mô phỏng cấu trúc của mạng lưới thần kinh tự nhiên, với các tế bào thần kinh nhân tạo được kết nối tương tự như trong não.
Một tế bào thần kinh sinh học bao gồm ba phần chính: cơ thể tế bào, sợi trục và dendrite Dendrite có nhiệm vụ nhận tín hiệu điện hóa học từ các tế bào thần kinh khác và truyền vào cơ thể tế bào, hay còn gọi là Soma, nơi chứa nhân và các cấu trúc hóa học cần thiết cho sự sống của tế bào Sợi trục, hay axon, mang tín hiệu từ tế bào thần kinh đến các tế bào thần kinh khác Kết nối giữa các dendrite của hai tế bào thần kinh hoặc giữa tế bào thần kinh với các tế bào cơ được gọi là khớp thần kinh.
Neuron nhận tín hiệu từ các tế bào thần kinh khác qua dendrites Khi tín hiệu đủ mạnh, neuron kích hoạt tín hiệu riêng và truyền đến tế bào thần kinh tiếp theo qua sợi trục và các khớp thần kinh Quá trình này kích hoạt nhiều tế bào thần kinh khác nhau, cho phép hàng triệu neuron hoạt động đồng thời Bộ não có khả năng lưu trữ một lượng lớn dữ liệu nhờ vào sự kết nối phức tạp giữa các tế bào thần kinh.
Mạng lưới thần kinh nhân tạo bao gồm các đơn vị xử lý gọi là tế bào thần kinh, nhằm tái tạo cấu trúc và hành vi của tế bào thần kinh tự nhiên Mỗi neuron bao gồm đầu vào (dendrites) và đầu ra (khớp thần kinh thông qua sợi trục), với chức năng xác định sự kích hoạt của tế bào thần kinh.
Hình 1 4 noron nhân tạo đơn giản
Input: dữ liệu đầu vào, mỗi input tương ứng với 1 thuộc tính của dữ liệu.(X1 Xn)
Output: Kết quả của 1 ANN, 1 tế bào thân kinh nhận được nhiều đầu vào từ các nguồn khác nhau và có 1 đầu ra duy nhất.
Weights(W): trọng số liên kết, thể hiện độ mạnh của dữ liệu đầu vào đối với quá trình xử lý thông tin.(W1 Wn)
Sum: hàm tính tổng trọng số của tất cả các input được đưa vào:
Activation Function: hàm kích hoạt, mô phỏng tỉ lệ truyền của 1 neural thần kinh.(hàm Sigmoid, hàm Tanh, ) [9]
Có nhiều chức năng khác nhau được sử dụng để kích hoạt trong các mô hình học máy Trong số đó, chức năng sigmoid là một trong những chức năng kích hoạt phổ biến nhất, được ứng dụng rộng rãi trong các bài toán phân loại.
Ví dụ: ta có các giá trị Input x1 = 1, x2 = 2, x3 = 3, có trọng số liên kết lần lượt w1 0.4, w2 = 0.1, w3 = 0.2 Tìm giá trị Output?
Hình 1 5 Sigmoid (Hàm truyền Sigmoid) [5] Ý nghĩa hàm Sigmoid [8]: (hay còn gọi là hàm Logistic) là 1 hàm số toán học có đường cong dạng chữ “S” với công thức F(x).
Mọi giá trị khi đi qua hàm Sigmoid sẽ nằm trên miền giá trị số thực chạy từ 0 đến
1, hàm Sigmoid dùng để nén giá trị lại với đồ thị (Hình 3).
Các hàm khác được sử dụng bao gồm Hàm Bước, Hàm Tuyến tính, Hàm Ramp và Hàm tiếp tuyến Hyperbolic Hàm tiếp tuyến hyperbolic (tanh) có hình dạng tương tự như hàm sigmoid, nhưng giá trị của nó nằm trong khoảng từ -1 đến +1, trong khi hàm sigmoid chỉ giới hạn từ 0 đến 1.
Tổng trọng số trong mạng nơ-ron được tính bằng cách nhân các đầu vào với trọng số giữa các lớp Hàm kích hoạt sử dụng là hàm sigmoid, cung cấp một sự xấp xỉ liên tục và khác biệt cho hàm bước Các tế bào thần kinh kết nối với nhau tạo thành mạng lưới thần kinh.
Kiến trúc mạng nơ-ron nhân tạo (ANN) bao gồm ba thành phần chính: lớp đầu vào, lớp ẩn và lớp đầu ra Lớp đầu vào nhận các giá trị đầu vào, trong khi lớp ẩn gồm một hoặc nhiều tế bào thần kinh kết nối giữa lớp đầu vào và lớp đầu ra Cuối cùng, lớp đầu ra thường có một tế bào thần kinh với giá trị dao động từ 0 đến 1, nhưng cũng có thể có nhiều đầu ra khác nhau.
Hình 1 6 Kiến trúc mạng ANN[3]
Khả năng xử lý trong các kết nối liên đơn vị, hay còn gọi là trọng số liên kết, ảnh hưởng đến độ mạnh của giá trị đầu vào Trọng số này có thể lớn hơn, nhỏ hơn hoặc bằng không; trọng số âm biểu thị tín hiệu bị giảm hoặc ức chế, trong khi trọng số bằng không cho thấy không có mối liên hệ giữa hai tế bào thần kinh Để đạt được đầu ra chính xác, trọng số cần được điều chỉnh thông qua nhiều thuật toán khác nhau Quá trình điều chỉnh này được gọi là học tập hoặc đào tạo.
1.1.5 QUY TRÌNH ĐÀO TẠO ANN
Các danh mục mạng nơ-ron nhân tạo (ANN) bao gồm phương pháp học tập giám sát và không giám sát Kiến trúc đơn giản nhất của ANN là Nhận thức, với một tế bào thần kinh có hai đầu vào và một đầu ra, sử dụng chức năng kích hoạt bước hoặc đường dốc để phân loại dữ liệu thành hai lớp Đối với các ứng dụng phức tạp hơn, mạng nơ-ron nhiều lớp (MLP) được áp dụng, bao gồm một lớp đầu vào, một lớp đầu ra và một hoặc nhiều lớp ẩn.
Thuật toán lan truyền ngược (Backpropagation) là phương pháp phổ biến nhất trong đào tạo mạng nơ-ron, nơi sự khác biệt giữa đầu ra thực tế và mục tiêu được điều chỉnh bằng cách lan truyền ngược qua các lớp Mạng nơ-ron lan truyền ngược (BPNN) sử dụng phương pháp học có giám sát và kiến trúc mạng nơ-ron feed-forward, bao gồm lớp đầu vào nhận dữ liệu, lớp ẩn làm trung gian, và lớp đầu ra đưa ra giải pháp Kỹ thuật này thường được áp dụng để phân loại và dự đoán trong nhiều lĩnh vực khác nhau.
TÌM HIỂU PHÂN CỤM DỮ LIỆU
Phân cụm dữ liệu là một trong những hướng nghiên cứu trọng tâm của lĩnh vực khai phá dữ liệu (Data Mining) và lĩnh vực khám phá tri thức.
Phân cụm dữ liệu là quá trình chia tách một tập dữ liệu ban đầu thành các nhóm dữ liệu, trong đó các phần tử trong cùng một cụm có sự tương đồng cao, trong khi các phần tử thuộc các cụm khác lại khác biệt rõ rệt.
Hình 1 7 Phân cụm dữ liệu
Sau khi xác định các đặc tính của dữ liệu, bước tiếp theo là tìm cách đo khoảng cách giữa các đối tượng, thông qua các hàm đo sự giống nhau Những hàm này thường được sử dụng để tính độ tương tự hoặc độ phi tương tự giữa các cặp đối tượng dữ liệu Giá trị của độ tương tự càng cao thì mức độ giống nhau giữa các đối tượng càng lớn, trong khi đó, hàm tính độ phi tương tự lại tỉ lệ nghịch với độ tương tự.
Các bước chính trong quá trình phân cụm dữ liệu:
Xây dựng hàm tính độ tương tự
Xây dựng các tiêu chuẩn phân cụm
Xây dựng mô hình cho cấu trúc phân cụm dữ liệu
Xây dựng thuật toán phân cụm và cách xác lập các điều kiện khởi tạo
Xây dựng các thủ tục biểu diễn và đánh giá kết quả phân cụm
Phân cụm dữ liệu là một bài toán trong lĩnh vực học máy không giám sát, được áp dụng phổ biến để khai thác thông tin từ dữ liệu.
1.2.2 CÁC YÊU CẦU CỦA PHÂN CỤM DỮ LIỆU
Phân cụm là một thách thức lớn trong nghiên cứu, bởi vì các ứng dụng tiềm năng của nó thường phụ thuộc vào những yêu cầu cụ thể Yêu cầu cơ bản của phân cụm trong khai phá dữ liệu là xác định các nhóm dữ liệu có đặc điểm tương đồng, từ đó giúp phát hiện các mẫu và xu hướng trong dữ liệu.
Nhiều thuật toán phân cụm thường hoạt động hiệu quả với các tập dữ liệu nhỏ, nhưng khi áp dụng cho dữ liệu lớn, kết quả có thể bị ảnh hưởng Do đó, cần phát triển các thuật toán phân cụm có khả năng mở rộng cao để xử lý hiệu quả các cơ sở dữ liệu lớn.
Nhiều thuật toán phân cụm dữ liệu chủ yếu được phát triển cho kiểu khoảng (kiểu số), nhưng thực tế, nhiều ứng dụng yêu cầu khả năng phân cụm với các kiểu dữ liệu đa dạng như kiểu nhị phân, kiểu tường minh (định danh không thứ tự), cũng như dữ liệu có thứ tự hoặc dạng hỗn hợp của các kiểu dữ liệu này.
Khám phá các cụm với hình dạng bất kỳ là một nhiệm vụ quan trọng trong lĩnh vực phân tích dữ liệu Nhiều thuật toán phân cụm hiện tại dựa vào các phép đo khoảng cách Euclidean và Manhattan, thường tìm kiếm các cụm hình cầu với mật độ và kích thước tương tự Tuy nhiên, thực tế cho thấy các cụm có thể có nhiều hình dạng khác nhau, do đó cần phát triển các thuật toán mới có khả năng phát hiện các cụm với hình dạng đa dạng.
Để xác định các tham số đầu vào cho phân tích phân cụm, người dùng cần có một lượng tri thức tối thiểu Nhiều thuật toán phân cụm phụ thuộc vào các tham số này, và kết quả phân cụm thường nhạy cảm với các tham số đầu vào Việc xác định các tham số, đặc biệt trong các tập dữ liệu lớn, là một thách thức không nhỏ, gây khó khăn cho người dùng và làm giảm khả năng điều chỉnh chất lượng của phân cụm.
Khả năng thích nghi với dữ liệu nhiễu là yếu tố quan trọng trong phân tích cơ sở dữ liệu, vì hầu hết các cơ sở dữ liệu thực tế thường chứa dữ liệu ngoại lai, dữ liệu lỗi, hoặc dữ liệu không chính xác Những thuật toán phân cụm nhạy cảm với loại dữ liệu này có thể ảnh hưởng tiêu cực đến chất lượng của kết quả phân cụm.
Một số thuật toán phân cụm có thể nhạy cảm với thứ tự của dữ liệu đầu vào, dẫn đến việc tạo ra các cụm khác nhau từ cùng một tập dữ liệu Do đó, việc phát triển các thuật toán ít nhạy cảm với thứ tự dữ liệu là rất quan trọng để đảm bảo tính nhất quán và độ tin cậy trong phân tích.
Cơ sở dữ liệu hoặc kho dữ liệu có thể chứa nhiều chiều hoặc thuộc tính khác nhau Các thuật toán phân cụm thường hoạt động hiệu quả với dữ liệu có số chiều thấp, thường từ 2 đến 3 chiều.
Phân cụm ràng buộc là một kỹ thuật quan trọng trong nhiều ứng dụng thực tế, nơi cần xác định các nhóm dữ liệu có trạng thái phân cụm tối ưu đồng thời đáp ứng các ràng buộc khác nhau Nhiệm vụ này đòi hỏi việc tìm kiếm và phân tích các nhóm dữ liệu sao cho phù hợp với các tiêu chí đã đặt ra.
Phân cụm dễ hiểu và dễ sử dụng giúp người dùng nhanh chóng nhận diện kết quả một cách rõ ràng Điều này đòi hỏi sự giải thích chi tiết về ý nghĩa và ứng dụng của các phân cụm để người sử dụng có thể áp dụng hiệu quả.
TÌM HIỂU PHÂN LỚP DỮ LIỆU
Phân lớp trong học máy và thống kê là một phương pháp học có giám sát, cho phép chương trình máy tính học từ dữ liệu đầu vào và thực hiện các quan sát hoặc phân loại mới.
Phân lớp là quá trình phân loại dữ liệu thành các lớp khác nhau, áp dụng cho cả dữ liệu có cấu trúc và phi cấu trúc Quá trình này khởi đầu bằng việc dự đoán lớp của các điểm dữ liệu cụ thể, với các lớp này thường được gọi là đích, nhãn hoặc danh mục.
Mô hình dự báo phân lớp là quá trình xấp xỉ hàm ánh xạ giữa các biến đầu vào và đầu ra rời rạc Mục tiêu chính của mô hình này là xác định lớp hoặc danh mục mà dữ liệu mới sẽ thuộc về.
Phát hiện bệnh tim là một vấn đề phân loại nhị phân, với hai loại là mắc bệnh hoặc không mắc bệnh Để xây dựng một mô hình chính xác, cần có dữ liệu huấn luyện giúp hiểu mối quan hệ giữa các biến đầu vào và lớp bệnh Khi bộ phân loại được đào tạo đúng cách, nó có khả năng xác định liệu một bệnh nhân cụ thể có bị bệnh tim hay không.
1.3.1 MỘT SỐ THUẬT NGỮ PHÂN LỚP TRONG MACHINE LEARNING
Classifier (phân loại) : Nó là 1 thuật toán dùng để ánh xạ dữ liệu đầu vào đến một danh mục cụ thể.
Mô hình phân lớp là một công cụ dự đoán, giúp đưa ra kết luận cho dữ liệu đầu vào trong quá trình đào tạo Nó có khả năng xác định lớp hoặc danh mục cho dữ liệu, từ đó hỗ trợ trong việc phân tích và xử lý thông tin hiệu quả.
Feature (đặc tính) : đặc điểm là 1 thuộc tính có thể đo lường được của hiện tượng đang được quan sát.
Binary Classification (phân lớp nhị phân) : nó là 1 kiểu phân lớp với 1 trong
2 loại kết quả Ví dụ: đúng hoặc sai, có hoặc không.
Phân loại nhiều lớp (Multi-Class Classification) là một phương pháp phân loại trong đó có hơn hai lớp Trong mô hình này, mỗi mẫu chỉ được gán cho một nhãn hoặc mục tiêu duy nhất.
Multi-Label Classification (phân loại nhiều nhãn) : đây là 1 kiểu phân lớp trong đó mỗi mẫu sẽ được gán cho một tập hợp các nhãn hoặc mục tiêu.
Initialize (khởi tạo) : dùng để gán bộ phân lớp được sử dụng.
Để đào tạo bộ phân lớp trong scikit-learn, chúng ta sử dụng phương pháp fit(X, y) để phù hợp mô hình huấn luyện X với các nhãn y tương ứng.
Objective prediction (dự đoán mục tiêu) : cho X không được gán nhãn, dự đoán X trả lại nhãn y.
1.3.1 CÁC KIỂU HỌC TRONG PHÂN LỚP
Người học lười biếng là những người chỉ lưu trữ dữ liệu đào tạo và chờ đợi đến khi cần kiểm tra Họ sử dụng dữ liệu liên quan nhất từ kho lưu trữ để phân loại thông tin So với những người ham học hỏi, họ có nhiều thời gian hơn để dự đoán kết quả, thường áp dụng các phương pháp như láng giềng gần nhất và suy luận dựa trên trường hợp.
Người học tích cực (Eager Learners) là một kiểu học máy xây dựng mô hình phân loại dựa trên dữ liệu đào tạo đã được cung cấp trước khi thực hiện dự đoán Kiểu học này yêu cầu khả năng cam kết một giả thuyết duy nhất cho toàn bộ không gian, dẫn đến việc tiêu tốn nhiều thời gian cho quá trình đào tạo nhưng ít thời gian hơn cho dự đoán Một số ví dụ điển hình bao gồm Cây quyết định, Naive Bayes và Mạng thần kinh nhân tạo.
1.3.3 CÁC THUẬT TOÁN PHÂN LỚP
Trong học máy, thuật toán phân lớp là một phương pháp học có giám sát, nhằm phân loại dữ liệu thành các lớp khác nhau Các ứng dụng phổ biến của phân lớp bao gồm nhận diện giọng nói, nhận diện khuôn mặt và nhận dạng chữ viết tay Bài toán phân lớp có thể là phân loại nhị phân hoặc phân loại nhiều lớp, và có nhiều thuật toán học máy khác nhau được sử dụng để thực hiện các nhiệm vụ phân loại này.
Logistic Regression (hồi quy logistic) :
Hồi quy logistic là một thuật toán phân lớp trong học máy, sử dụng một hoặc nhiều biến độc lập để xác định kết quả, với kết quả được đo bằng một biến phân đôi, tức là chỉ có hai khả năng xảy ra Mục tiêu chính của hồi quy logistic là xác định mối quan hệ tối ưu giữa biến phụ thuộc và tập hợp các biến độc lập Thuật toán này vượt trội hơn so với các phương pháp phân loại khác như k-nearest neighbors (KNN) nhờ khả năng giải thích định lượng các yếu tố ảnh hưởng đến phân lớp.
Phân lớp có ý nghĩa đặc biệt trong việc phân tích dữ liệu, giúp hiểu rõ cách mà một tập hợp các biến độc lập tác động đến kết quả của biến phụ thuộc Điều này mang lại lợi ích lớn trong việc tối ưu hóa quy trình ra quyết định và cải thiện hiệu suất.
Nhược điểm của phương pháp này là nó chỉ áp dụng cho các biến dự đoán nhị phân, đồng thời giả định rằng dữ liệu không có giá trị thiếu và các yếu tố dự đoán độc lập với nhau.
Trường hợp sử dụng : xác định yếu tố nguy cơ gây bệnh, phân loại từ, dự báo thời tiết
Đây là một thuật toán phân lớp dựa trên định lý Bayes, đưa ra giả định về tính
Mô hình Naive Bayes dựa trên giả định rằng sự hiện diện của một đối tượng trong một lớp không bị ảnh hưởng bởi các đặc tính khác Dù các đặc tính có thể phụ thuộc lẫn nhau, chúng vẫn đóng góp vào xác suất một cách độc lập Naive Bayes rất dễ triển khai và đặc biệt hiệu quả với các tập dữ liệu lớn Dưới đây là định lý Bayes được sử dụng trong Naive Bayes.
Ưu điểm của phương pháp này là chỉ cần một lượng dữ liệu huấn luyện tối thiểu để ước tính các tham số cần thiết, giúp đạt được kết quả nhanh chóng So với các bộ phân lớp khác, nó có tốc độ xử lý cực kỳ nhanh.
Điểm bất lợi duy nhất là nó biết đến là một công cụ ước tính tồi.
Dự đoán dịch bệnh, phân loại tài liệu, phân tích cảm xúc…
K-Nearest Neighbor (hàng xóm gần nhất) :
TÌM HIỂU MÔT SỐ THUẬT TOÁN
DATA MINING
Hình 2 1 Mô hình data mining 2.1.1 STATISTICS
Thống kê là lĩnh vực nghiên cứu liên quan đến việc thu thập, phân tích, giải thích và trình bày dữ liệu Khai thác dữ liệu có mối liên hệ chặt chẽ với thống kê, giúp nâng cao khả năng hiểu và sử dụng thông tin.
Mô hình thống kê là một tập hợp hàm toán học dùng để mô tả hành vi của các đối tượng trong một lớp mục tiêu thông qua các biến ngẫu nhiên và phân phối xác suất liên quan Chúng được áp dụng phổ biến trong việc lập mô hình dữ liệu và phân tích các lớp dữ liệu.
Trong các tác vụ khai thác dữ liệu như mô tả và phân loại, các mô hình thống kê có thể được xây dựng từ các lớp mục tiêu Những mô hình này không chỉ là kết quả của việc khai thác dữ liệu mà còn có thể được sử dụng để cải thiện các tác vụ khai thác khác Chẳng hạn, chúng ta có thể áp dụng thống kê để lập mô hình cho nhiễu và dữ liệu bị thiếu giá trị Khi khai thác mẫu trong tập dữ liệu lớn, mô hình thống kê sẽ hỗ trợ xác định và xử lý các giá trị nhiễu hoặc thiếu hụt trong dữ liệu.
Nghiên cứu thống kê tập trung vào việc phát triển các công cụ dự đoán và dự báo thông qua việc sử dụng dữ liệu và mô hình thống kê Các phương pháp thống kê không chỉ giúp tóm tắt mà còn mô tả một tập hợp dữ liệu một cách hiệu quả.
Dữ liệu được trình bày với các mô tả thống kê cơ bản trong Chương 2, giúp khai thác các mẫu khác nhau và hiểu rõ các cơ chế ảnh hưởng đến chúng Thống kê suy luận, hay còn gọi là dự đoán thống kê, mô hình hóa dữ liệu để giải thích sự ngẫu nhiên và không chắc chắn trong quan sát, từ đó rút ra các kết luận về quá trình hoặc dân số đang được nghiên cứu.
Machine learning (máy học) là lĩnh vực nghiên cứu về khả năng của máy tính trong việc học hỏi và cải thiện hiệu suất dựa trên dữ liệu Nó tập trung vào việc phát triển các chương trình máy tính có khả năng tự động nhận diện các mẫu phức tạp và đưa ra quyết định thông minh Một ví dụ điển hình của học máy là lập trình máy tính để tự động nhận dạng mã bưu điện viết tay trên thư, sau khi đã được huấn luyện từ một tập hợp các ví dụ.
Học máy là một lĩnh vực đang bùng nổ và phát triển mạnh mẽ Trong bài viết này, chúng tôi sẽ trình bày những vấn đề cổ điển trong học máy, đặc biệt là những vấn đề liên quan đến khai thác dữ liệu.
Học tập có giám sát, hay còn gọi là phân loại, là phương pháp học máy dựa trên các ví dụ được gán nhãn trong tập dữ liệu đào tạo Ví dụ, trong nhận dạng mã bưu chính, một tập hợp hình ảnh mã bưu chính viết tay cùng với các bản dịch có thể đọc được sẽ được sử dụng để đào tạo mô hình phân loại, từ đó giám sát quá trình học tập.
Học tập không giám sát, hay còn gọi là phân cụm, là quá trình mà các ví dụ đầu vào không được gắn nhãn lớp Phương pháp này thường được sử dụng để khám phá các lớp trong dữ liệu, chẳng hạn như khi xử lý một tập hợp hình ảnh chữ số viết tay Nếu mô hình phát hiện ra 10 cụm dữ liệu, những cụm này có thể tương ứng với 10 chữ số từ 0 đến 9 Tuy nhiên, do dữ liệu đào tạo không có nhãn, mô hình không thể xác định ý nghĩa ngữ nghĩa của các cụm đã tìm thấy.
Học tập bán giám sát là một kỹ thuật máy học kết hợp cả ví dụ được gắn nhãn và không gắn nhãn để xây dựng mô hình Trong phương pháp này, các ví dụ gắn nhãn giúp xác định các lớp, trong khi các ví dụ không gắn nhãn giúp cải thiện ranh giới giữa các lớp Đối với bài toán hai lớp, các ví dụ tích cực và tiêu cực có thể được phân loại, và nếu không xem xét các ví dụ không gắn nhãn, ranh giới quyết định sẽ không chính xác Bằng cách sử dụng các ví dụ không gắn nhãn, chúng ta có thể điều chỉnh ranh giới này để đạt được độ chính xác cao hơn, đồng thời nhận diện các ví dụ gắn nhãn có thể là tiếng ồn hoặc ngoại lệ.
Học tập tích cực là một phương pháp học máy cho phép người dùng tham gia chủ động vào quá trình học Phương pháp này yêu cầu người dùng, chẳng hạn như chuyên gia trong lĩnh vực, gán nhãn cho các ví dụ từ một tập hợp dữ liệu không được gán nhãn hoặc do chương trình học tổng hợp Mục tiêu chính của học tập tích cực là nâng cao chất lượng mô hình bằng cách thu thập kiến thức từ người dùng, đồng thời giới hạn số lượng ví dụ mà họ cần gán nhãn.
Hình 2 2 Bước đầu của việc tối ưu hoá
Khai thác dữ liệu và học máy có nhiều điểm tương đồng, đặc biệt trong các nhiệm vụ phân loại và phân cụm Trong khi nghiên cứu học máy thường chú trọng đến độ chính xác của mô hình, khai thác dữ liệu lại nhấn mạnh vào hiệu quả và khả năng mở rộng của các phương pháp trên tập dữ liệu lớn Bên cạnh đó, khai thác dữ liệu còn tập trung vào việc xử lý các loại dữ liệu phức tạp và khám phá các phương pháp thay thế mới.
2.1.3 DATABASE SYSTEMS AND DATA WAREHOUSES
Nghiên cứu hệ thống cơ sở dữ liệu tập trung vào việc phát triển, duy trì và sử dụng cơ sở dữ liệu cho tổ chức và người dùng Các nhà nghiên cứu đã thiết lập các nguyên tắc quan trọng trong mô hình dữ liệu, ngôn ngữ truy vấn, xử lý truy vấn, tối ưu hóa, lưu trữ dữ liệu, cũng như lập chỉ mục và truy cập Hệ thống cơ sở dữ liệu nổi bật với khả năng mở rộng cao, cho phép xử lý hiệu quả các tập dữ liệu lớn và có cấu trúc Ngoài ra, nhiều tác vụ khai thác dữ liệu hiện nay yêu cầu xử lý dữ liệu lớn hoặc dữ liệu truyền trực tuyến theo thời gian thực.
Khai thác dữ liệu có thể tối ưu hóa công nghệ cơ sở dữ liệu, mở rộng khả năng của hệ thống hiện tại để đáp ứng nhu cầu phân tích dữ liệu phức tạp từ người dùng nâng cao.
Các hệ thống cơ sở dữ liệu hiện đại đã phát triển khả năng phân tích dữ liệu một cách hệ thống thông qua việc sử dụng kho dữ liệu và các phương pháp khai thác dữ liệu Kho dữ liệu tích hợp dữ liệu từ nhiều nguồn và khung thời gian khác nhau, giúp hợp nhất thông tin trong không gian đa chiều Điều này tạo ra các khối dữ liệu được vật chất hóa một phần, không chỉ hỗ trợ OLAP trong cơ sở dữ liệu đa chiều mà còn thúc đẩy quá trình khai thác dữ liệu một cách hiệu quả.
2.1.4 INFORMATION RETRIEVA (Thông tin truy xuất)
THUẬT TOÁN K-MEAN
K-Means Clustering là một thuật toán học không giám sát được sử dụng để giải quyết các vấn đề phân cụm trong học máy hoặc khoa học dữ liệu Cùng với việc triển khai phân cụm k-mean trong Python. Để nhóm các tập dữ liệu không được gắn nhãn thành các cụm khác nhau Ở đây K xác định số lượng cụm được xác định trước cần được tạo trong quá trình này, như nếu
K = 2, sẽ có hai cụm, và đối với K = 3, sẽ có ba cụm, v.v.
Phân cụm dữ liệu cho phép tổ chức thông tin thành các nhóm khác nhau, giúp người dùng dễ dàng khám phá các danh mục trong tập dữ liệu chưa được gán nhãn mà không cần phải trải qua quá trình đào tạo phức tạp.
Thuật toán này dựa trên centroid, với mỗi cụm được gán một centroid riêng Mục tiêu chính của nó là tối ưu hóa tổng khoảng cách giữa các điểm dữ liệu và cụm tương ứng, nhằm nâng cao hiệu quả phân nhóm.
Thuật toán này sử dụng tập dữ liệu không gán nhãn làm đầu vào và tiến hành phân chia dữ liệu thành k cụm Quá trình lặp lại cho đến khi không tìm thấy cụm tối ưu hơn Giá trị của k cần được xác định trước khi thực hiện thuật toán.
Thuật toán phân cụm k- mean chủ yếu thực hiện hai tác vụ:
Xác định giá trị tốt nhất cho K tâm điểm hoặc trọng tâm bằng một quy trình lặp lại.
Gán mỗi điểm dữ liệu cho trung tâm k gần nhất của nó Những điểm dữ liệu gần trung tâm k cụ thể sẽ tạo ra một cụm.
Do đó mỗi cụm có các điểm dữ liệu với một số điểm chung và nó nằm cách xa các cụm khác.
Sơ đồ dưới đây giải thích hoạt động của Thuật toán phân cụm K-mean:
Hình 2 3 Biễu diễn thuật toán K-Means
Hoạt động của thuật toán K-Means được giải thích theo các bước dưới đây:
Bước 1: Chọn số K để quyết định số lượng cụm.
Bước 2: Chọn K điểm hoặc trọng tâm ngẫu nhiên (Nó có thể khác với tập dữ liệu đầu vào).
Bước 3: Gán mỗi điểm dữ liệu cho trung tâm gần nhất của chúng, sẽ tạo thành các cụm K được xác định trước.
Bước 4: Tính toán phương sai và đặt một trung tâm mới của mỗi cụm.
Bước 5: Lặp lại các bước thứ ba, có nghĩa là chỉ định lại mỗi điểm dữ liệu cho trung tâm gần nhất mới của mỗi cụm.
Bước 6: Nếu có bất kỳ sự phân công lại nào xảy ra, hãy chuyển sang bước-4, sau đó chuyển đến HOÀN TẤT.
Bước 7: Mô hình đã sẵn sàng. Để hiểu rõ các bước trên ta có thể xem xét các biểu đồ trực quan:
Giả sử chúng ta có hai biến M1 và M2 Biểu đồ phân tán trục xy của hai biến này được đưa ra dưới đây:
Hình 2 4 Phân bố dữ liệu
Để xác định tập dữ liệu, hãy lấy số k của các cụm, với K = 2, và tiến hành phân loại chúng vào hai cụm khác nhau Mục tiêu là nhóm các tập dữ liệu này thành hai cụm riêng biệt.
Chọn k điểm ngẫu nhiên hoặc centroid để hình thành cụm, có thể là từ tập dữ liệu hoặc bất kỳ điểm nào khác Hãy sử dụng hai điểm dưới đây làm k điểm.
Hình 2 5 Dữ liệu phân bổ sẳn tâm
Gán mỗi điểm dữ liệu trong biểu đồ phân tán cho tâm K gần nhất bằng cách tính khoảng cách giữa các điểm Sau đó, vẽ một đường trung bình nối liền cả hai centroid để thể hiện mối quan hệ giữa chúng.
Hình 2 6 Đường chia cụm của đoạn nối tâm
Hình ảnh cho thấy các điểm bên trái của đường gần với tâm K1 (màu xanh lam), trong khi các điểm bên phải gần với tâm màu vàng Để dễ hình dung, chúng tôi đã tô màu các điểm này thành xanh lam và vàng.
Hình 2 7 Đổi màu điểm thuộc cụm theo tâm
Để tìm cụm gần nhất, chúng ta sẽ lặp lại quá trình bằng cách chọn một trung tâm mới Việc chọn các trung tâm mới sẽ dựa trên việc tính toán trọng tâm của các cụm hiện tại để xác định các trung tâm mới.
Hình 2 8 Tâm mới cho cụm dữ liệu
Tiếp theo, sẽ gán lại từng điểm dữ liệu cho centroid mới Lặp lại quá trình tương tự để tìm đường trung tuyến
Hình 2 9 Biểu diễn tâm mới
Một điểm màu vàng nằm bên trái đoạn thẳng, trong khi hai điểm màu xanh lam nằm bên phải Do đó, ba điểm này sẽ được gán cho các trung tâm mới.
Hình 2 10 Phân chia cụm theo tâm mới
Khi việc phân công lại đã diễn ra, vì vậy chúng ta sẽ lại chuyển sang bước 4, đó là việc tìm kiếm trọng tâm hoặc điểm K mới.
Lặp lại quá trình bằng cách tìm trọng tâm của các trọng tâm, vì vậy các trọng tâm mới sẽ như trong hình dưới đây:
Hình 2 11 Tâm mới hình thành theo môi trường
Có các trung tâm mới, một lần nữa sẽ vẽ đường trung tuyến và gán lại các điểm dữ liệu.
Hình 2 12 Xác định trung tuyến mới của cụm
Có thể thấy trong hình ảnh trên; không có điểm dữ liệu khác nhau ở hai bên đường, có nghĩa là mô hình đã được hình thành.
Hình 2 13 Bước đầu hình thành cụm
Khi mô hình đã hoàn thiện, chúng ta có thể loại bỏ các trung tâm giả định, và hai cụm cuối cùng sẽ được hiển thị như trong hình ảnh dưới đây.
Hình 2 14 Các cụm hình thành đã được loại bỏ tâm cụm
Hiệu suất của thuật toán phân cụm K-mean phụ thuộc vào việc tạo ra các cụm chất lượng cao Tuy nhiên, việc xác định số lượng cụm tối ưu là một thách thức lớn Có nhiều phương pháp khác nhau để xác định số lượng cụm tối ưu, nhưng bài viết này sẽ tập trung vào phương pháp phù hợp nhất để tìm giá trị K.
THUẬT TOÁN SVM (SUPPORT VECTOR MACHINGE)
Máy vectơ hỗ trợ (SVM) là một thuật toán học máy giám sát, chủ yếu được áp dụng trong các bài toán phân loại và hồi quy Trong SVM, mỗi mục dữ liệu được biểu diễn dưới dạng điểm trong không gian n chiều, với n là số lượng đặc trưng Quá trình phân loại diễn ra bằng cách xác định siêu mặt phẳng phân tách hai lớp dữ liệu.
Vectơ hỗ trợ đại diện cho tọa độ của mỗi quan sát cá nhân, trong khi bộ phân loại SVM xác định biên giới tối ưu để phân tách hai lớp dữ liệu, được biểu diễn bằng siêu mặt phẳng hoặc đường thẳng.
Xác định đúng siêu mặt phẳng:
Để xác định siêu phẳng bên phải trong tình huống 1, chúng ta có ba siêu phẳng A, B và C Việc lựa chọn siêu mặt phẳng phù hợp là rất quan trọng để phân loại các ngôi sao và vòng tròn một cách chính xác.
Hình 2 16 Xác định và phân loại điểm
Để xác định siêu phẳng phù hợp, bạn có thể áp dụng quy tắc ngón tay cái: "Chọn siêu phẳng giúp phân tách hai lớp tốt hơn" Trong bối cảnh này, siêu phẳng "B" đã thực hiện nhiệm vụ này một cách xuất sắc.
Để xác định siêu phẳng bên phải trong tình huống có ba siêu phẳng A, B và C, ta cần phân tích cách mà mỗi siêu phẳng này phân tách các lớp Tất cả các siêu phẳng đều hoạt động hiệu quả trong việc phân chia lớp, nhưng việc xác định siêu phẳng chính xác đòi hỏi một phương pháp đánh giá cụ thể để chọn ra siêu phẳng phù hợp nhất.
Việc tối đa hóa khoảng cách giữa các điểm dữ liệu gần nhất của hai lớp và siêu mặt phẳng là rất quan trọng để xác định siêu mặt phẳng tối ưu Khoảng cách này được gọi là Margin, và nó giúp phân tách rõ ràng các lớp trong mô hình học máy.
Hình 2 18 Khoản cách tốt của các điểm support vector
Lề của siêu phẳng C cao hơn so với A và B, do đó, chúng ta gọi siêu phẳng bên phải là C Việc lựa chọn siêu phẳng có lề cao sẽ mang lại lợi nhuận tốt hơn và độ mạnh mẽ cao hơn Ngược lại, nếu chọn siêu phẳng với lề thấp, khả năng bị trượt phân loại sẽ tăng lên.
Xác định siêu phẳng bên phải (Tình huống-3): Gợi ý: Sử dụng các quy tắc trong phần trước để xác định siêu phẳng bên phải
Hình 2 19 Xác định siêu phẳng
Một số người có thể chọn siêu phẳng B do có lề cao hơn so với A, nhưng SVM yêu cầu siêu phẳng phải phân loại chính xác các lớp trước khi tối đa hóa lề Trong trường hợp này, siêu phẳng B có một lỗi phân loại trong khi A phân loại đúng tất cả Vì vậy, siêu phẳng đúng là A.
Trong phân loại hai lớp (Kịch bản-4), việc tách biệt hai lớp bằng một đường thẳng là không khả thi, do một trong các ngôi sao thuộc về lớp này lại nằm trong lãnh thổ của lớp khác (hình tròn), được xem như một điểm ngoại lai.
Hình 2 20 Sau phân chia xuất hiển điểm ngoại lai
Ngôi sao ở đầu kia được coi như một ngoại nhân trong hạng sao Thuật toán SVM có khả năng loại bỏ các giá trị ngoại lai và xác định siêu mặt phẳng với lợi nhuận tối đa Do đó, phân loại SVM rất hiệu quả trong việc xử lý các trường hợp ngoại lệ.
Hình 2 21 Phân loại bất chấp ngoại lai
SVM có khả năng phân loại hai lớp không thể tách rời bằng siêu phẳng tuyến tính thông qua việc giới thiệu tính năng bổ sung Cụ thể, tính năng mới được thêm vào là z = x^2 + y^2, cho phép vẽ biểu đồ các điểm dữ liệu trên trục x và z Nhờ vào phương pháp này, SVM có thể giải quyết hiệu quả vấn đề phân loại các lớp dữ liệu phức tạp.
Hình 2 23 Siêu phẳng tách lớp
Tất cả các giá trị của z sẽ luôn dương vì z là tổng bình phương của cả x và y
Trong biểu đồ ban đầu, các vòng tròn màu đỏ gần gốc của trục x và y cho thấy giá trị z thấp, trong khi các sao tương đối xa dẫn đến giá trị z cao hơn.
Trong phân loại SVM, việc tạo ra siêu phẳng tuyến tính giữa hai lớp là khả thi Tuy nhiên, để có được siêu phẳng này không phải lúc nào cũng đơn giản Thuật toán SVM sử dụng một kỹ thuật gọi là thủ thuật hạt nhân, cho phép chuyển đổi không gian đầu vào có chiều thấp thành không gian có chiều cao hơn, giúp biến đổi bài toán không phân tách thành bài toán có thể phân tách Kỹ thuật này rất hữu ích trong việc giải quyết các vấn đề phân tách phi tuyến tính, thực hiện các biến đổi dữ liệu phức tạp và tìm ra quy trình để phân tách dữ liệu dựa trên các nhãn hoặc đầu ra đã xác định.
Nhìn vào siêu phẳng trong không gian đầu vào ban đầu, nó trông giống như một vòng tròn:
Hãy xem xét các phương pháp để áp dụng thuật toán phân loại SVM trong một thử thách khoa học dữ liệu.
Làm thế nào để triển khai SVM trong Python và R?
Trong Python, thư viện scikit-learn là công cụ phổ biến cho việc triển khai các thuật toán học máy Thư viện này hỗ trợ SVM và có cấu trúc sử dụng tương tự, bao gồm các bước như nhập thư viện, tạo đối tượng, huấn luyện mô hình và thực hiện dự đoán.
Hãy xem xét một tuyên bố vấn đề thực tế và tập dữ liệu để hiểu cách áp dụng SVM để phân loại.
BÀI TOÁN
#K MEAN: phân cụm theo bài toán sau
VD ta có bài toán cụ thể như sau:
Dùng thuật toán K-means để xác định các cụm
B1: chọn ngẫu nhiên trung tâm cụm m1=3; m2=4
B2: gán các đối tượng vào 2 cụm
Chất lượng nhóm được tính theo tổng bình phương sai (SSE) với giá trị 1523 Để tính lại trung tâm cụm, sử dụng công thức trung bình cộng, m1 được tính là (2+3)/2=2.5 và m2 là trung bình của các giá trị (4+10+12+20+30+11+25)/7 Cuối cùng, quay lại bước 2 để gán các đối tượng vào hai cụm, kết quả là K1={2,3,4}.
Hai cụm mới nên tiếp tục tính lại K1={2,3,4}
B5: Tính lại trung tâm cụm m1=3; m2 gán lại các cụm K1 {2,3,4,10}
Trung tâm cụm mới là m1=4.75, m2 = 19.6
B6: Thu được trung tâm cụm cuối cùng 7 và 25 tương ứng 2 cụm thu được là:
Thuật toán dừng vì trung tâm cụm không thay đổi nữa.
#SVM: được thực hiện theo công thức và bài toán sau
Phương trình không gian 2 chiều (phương trình mặt phẳng): { a,b,c là các hằng số } ax+by+c=0
Khoảng cách từ một điểm có toạ độ (a, b) tới đường thẳng ax+by+c=0 có phương trình được xác định bởi:
Phương trình không gian 3 chiều: { a,b,c,d là các hằng số } ax+by+cz+d=0
Khoảng cách từ một điểm có toạ độ (a, b, c) tới đường thẳng ax+by+c=0 có phương trình được xác định bởi:
Từ đó ta suy ra phương trình tổng quát
VD: Xét các điểm toạ độ trong không gian : M(-1; 2; 0.5), N(4; 6; 0), O(2; -3; 5)
Ta sẽ luôn luôn có khoảng cách đến các đường thằng trong không gian:
(d): + y - = 0 thì khoảng cách được tính:
(d) => M(-1; 2; 0.5)= (d) => N(4; 6; 0)= (d) => O(2; -3; 5)= Để tìm đường thẳng đi qua 2 điểm toạ độ hay khoản cách giữa các điểm đến đường thẳng trong một mặt phẳng bằng 0
Ta có công thức tổng quát của phương trình đường thẳng như sau: ax+by+c=0
(1): Thay toạ độ của điểm ban đầu vào phương trình tổng quát
(2): Thay toạ độ của điểm đi qua thứ 2 vào phương trình tổng quát
DEMO
- Chuẩn bị data trên Jupyter notebook gồm các bước thực hiện như sau:
Bước 1: Cài đặt yfinance: là thành phần API tham gia truy cập vào Yahoo Finance để được cung cấp quyền thông tin về các hoạt động cổ phiếu.
Bước 2: Thêm thư viện yfinance để dễ dàng thực hiện download dữ liệu: download bằng cách nhập mã cổ phiếu
Hình 4 2 Import thư viện yfinance
Để thực hiện bước 3, bạn cần nhập thời gian tải xuống vào đoạn mã dưới đây và đặt tên cho file mà bạn mong muốn.
Hình 4 3 Các thông tin về dữ liệu download
Bước 4: Vào CMD để mở file theo tên vừa đặt.
#SVR: là một thành phần của thuật toán svm
- Các thư viện tham gia phân tích và tính toán
Hình 4 4 Các thư viện hỗ trợ bái toán
- Đưa file dữ liệu đầu vào chuẩn bị cho quá trình
Hình 4 5 Chọn file thực hiện
- Đọc và hiển thị các thành phần của dữ liệu
Hình 4 6 Dữ liệu của file input
- Vẽ biểu đồ biểu hiện giá đóng: cho biết được quá trính tăng giảm của dữ liệu
Hình 4 7 Biểu đồ biểu diễn giá đóng theo ngày
- Biểu hiện kiểu dữ liệu
- Hiển thị giá trị của giá đóng
Hình 4 8 Hiển thị dữ liệu của giá đóng
- Tạo biểu đồ hiển thị giá đóng
Hình 4 9 biểu đồ biễu diễn sự tăng giảm
- Các thành phần hiển thị và hỗ trợ quá trình
Hình 4 10 Thông tin hiển thị
- Các giá trị cung cấp môi trường train dữ liệu
Hình 4 11 khởi tạo các biến train dữ liệu
Hình 4.12: kết quả dự đoán
#SVM: thuật toán học máy hỗ trợ vector
- Các thư viện tham gia hỗ trợ bài toán
Hình 4 12 Các thư viện hỗ trợ bài toán
- Tải file dữ liệu vào hệ thống cho quá trình chuẩn bị
- Thực hiện đọc file theo thư vien IO
Hình 4 14 Dữ liệu của file input
- Hiển thị các kiểu dữ liệu để biết rỏ hơn về mô hình dữ liệu
Hình 4 15 Kiểu dữ liệu file input
- Biểu đồ biểu hiện các thành phần giá bao gồm: giá đống, giá mở, giá cao nhất và thấp nhất
Hình 4 16 Biểu đồ nến biểu diễn data cổ phiếu
- Biểu đồ biễu diễn giá đóng theo ngày
Hình 4 17 Biểu đồ biểu diễn giá đóng theo ngày
- Biểu đồ học máy của thuật toán SVM
Hình 4 18 Biểu đồ training thuật toán theo giá đóng
- Kết quả dự đoán tăng vs 4 trường dữ liệu tiếp theo
Hình 4 19 Hình ảnh kết quả dự đoán