Công Nghệ Thông Tin, it, phầm mềm, website, web, mobile app, trí tuệ nhân tạo, blockchain, AI, machine learning - Công Nghệ Thông Tin, it, phầm mềm, website, web, mobile app, trí tuệ nhân tạo, blockchain, AI, machine learning - Công nghệ thông tin UBND TỈNH QUẢNG NAM TRỜNG ĐẠI HỌC QUẢNG NAM KHOA CÔNG NGHỆ THÔNG TIN ---------- BOUNMY SEESUOMANG HỒI QUI TUYẾN TÍNH VÀ ỨNG DỤNG KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC Quảng Nam, tháng 5 năm 2018 UBND TỈNH QUẢNG NAM TRỜNG ĐẠI HỌC QUẢNG NAM KHOA CÔNG NGHỆ THÔNG TIN ---------- KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC Tên đề tài: HỒI QUI TUYẾN TÍNH VÀ ỨNG DỤNG Sinh viên thực hiện: BOUNMY SEESUOMANG MSSV: 2114011042 CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN KHÓA 2014 – 2018 Cán bộ hƣớng dẫn: ThS. LÊ THỊ NGUYÊN AN MSCB: ……… Quảng Nam, tháng 5 năm 2018 LỜI CẢM ƠN Để hoàn thành khóa luận tốt nghiệp này, em xin tỏ lòng biết ơn sâu sắc đến thầy giáo ThS. Lê Thị Nguyên An đã tận tình hƣớng dẫn trong suốt quá trình thực hiện đề tài. Em chân thành cảm ơn quý thầy, cô giáo trong khoa công nghệ thông tin, trƣờng Đại học Quảng Nam đã tận tình truyền đạt kiến thức trong những năm em học tập tại trƣờng. Những kiến thức đƣợc tiếp thu trong quá trình học tập không ch ỉ là nền tảng cho quá trình nghiên cứu đề tài khóa luận tốt nghiệp mà còn là hành trang quí báu để em bƣớc vào đời. Trong quá trình làm khóa luận do trình độ lý luận cũng nhƣ kinh nghiệm thực tiễn còn hạn chế nên không thể tránh khỏi những thiếu sót, em rất mong nhận đƣợc ý kiến đóng góp của thầy, cô để em học thêm đƣợc nhiều kinh nghiệm và sẽ hoàn thành tốt khóa luận tốt nghiệp này. Em xin chân thành cảm ơn MỤC LỤC PHẦN 1. MỞ ĐẦU ................................................................................................ 1 1.1. Lý do chọn đề tài .......................................................................................... 1 1.2. Mục tiêu của đề tài ....................................................................................... 1 1.3. Đối tƣợng và phạm vi nghiên cứu ................................................................ 1 1.4. Phƣơng pháp nghiên cứu .............................................................................. 2 1.5. Lịch sử nghiên cứu ...................................................................................... 2 1.6. Đóng góp của đề tài ..................................................................................... 2 1.7. Cấu trúc đề tài .............................................................................................. 2 PHẦN 2. NỘI DUNG NGHIÊN CỨU .................................................................. 3 CHƠNG 1 TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU....................................... 3 1.1.Tổng quan về khai phá dữ liệu ..................................................................... 3 1.1.1. Khái niệm .............................................................................................. 3 1.1.2. Mục tiêu của khai phá dữ liệu ............................................................... 3 1.1.3. Quá trình khai phá dữ liệu .................................................................... 4 1.1.4. Ứng dụng của khai phá dữ liệu ............................................................. 5 1.2. Một số phƣơng pháp khai phá dữ liệu hiện đại ........................................... 6 1.2.1. Phân lớp và dự đoán ............................................................................. 6 1.2.2. Phân lớp dữ liệu và hồi quy .................................................................. 6 1.2.3. Phân cụm dữ liệu .................................................................................. 6 1.2.4. Khai phá dữ liệu sử dụng mạng Neural ................................................ 7 1.2.5. Khai phá dữ liệu sử dụng thuật giải di truyền ...................................... 8 1.3. Một số phƣơng pháp khai phá dữ liệu thông dụng ...................................... 9 1.3.1. Khai phá dữ liệu sử dụng cây quyết định ............................................. 9 1.3.2. Luật kết hợp .......................................................................................... 9 1.3.3. Phân tích chuỗi theo thời gian ............................................................ 11 1.4. Ứng dụng khai phá dữ liệu trong lĩnh vực khách hàng ............................. 11 CHƠNG 2 HỒI QUI TUYẾN TÍNH ............................................................... 13 2.1. Mô hình hồi quy ........................................................................................ 13 2.1.2. Khái niệm về hồi quy .......................................................................... 13 2.1.2. Phân tích hồi quy giải quyết vấn đề .................................................... 13 2.1.3. Ví dụ ................................................................................................... 13 2.2. Giới thiệu về hồi qui tuyến tính ................................................................. 14 2.2.1. Khái niệm ............................................................................................ 14 2.1.2. Bài toán Hồi Quy (Regression)........................................................... 14 2.3. Một số phƣơng pháp hồi qui tuyến tính .................................................... 15 2.3.1. Hồi quy tuyến tính với một ẩn ............................................................ 15 2.3.2. Hồi quy tuyến tính với nhiều ẩn ......................................................... 16 2.3.3. Hồi quy tuyến tính đa thức ................................................................. 16 2.4. Áp dụng vào bài toán định giá bất động sản .............................................. 17 CHƠNG 3 THỬ NGHIỆM VÀ ĐÁNH GIÁ HỒI QUI TUYẾN TÍNH ......... 20 3.1. Tổng quan về python ................................................................................. 20 3.1.1. Python là gì? ....................................................................................... 20 3.1.2. Cài đặt Python ..................................................................................... 21 3.1.3. Viết và thực thi một chƣơng trình viết bằng Python .......................... 24 3.2. Giới thiệu bài toán ..................................................................................... 29 3.2.1. Đặt vấn đề ........................................................................................... 29 3.2.2. Hƣớng dẫn giải quyết vấn đề .............................................................. 29 3.2.3. Cơ sở dữ liệu ....................................................................................... 30 3.3. Cài đặt ứng dụng ....................................................................................... 30 3.3.1. Đọc dữ liệu từ file CSV ...................................................................... 30 3.3.2. Lựa chọn thuộc tính và phân chia tập dữ liệu mẫu ............................. 31 3.3.3. Áp dụng mô hình hồi quy tuyến tính .................................................. 32 3.3.4. Áp dụng mô hình hồi quy LASSO dạng chuẩn L1 ............................. 32 3.3.5. Đánh giá mô hình hồi quy vừa áp dụng .............................................. 33 PHẦN 3. KẾT LUẬN ........................................................................................... 35 PHẦN 4. TÀI LIỆU THAM KHẢO .................................................................... 36 DANH MỤC HÌNH ẢNH Hình 1: Quá trình khai phá dữ liệu......................................................................... 4 Hình 2: Mô hình hồi quy ...................................................................................... 13 Hình 3: Ví dụ về hồi quy tuyến tính ..................................................................... 15 Hình 4: Ví dụ về hồi quy đa thức ......................................................................... 17 Hình 5: Cộng đồng ngƣời sử dụng Python .......................................................... 20 Hình 6: Download python .................................................................................... 21 Hình 7: Install python........................................................................................... 22 Hình 8: Đợi quá trình cài đặt ................................................................................ 22 Hình 9: Màn hình báo thành công ........................................................................ 23 Hình 10: Xuất hiện cửa số thì cài đặt thành công ................................................ 23 Hình 11: Các công cụ sau khi cài đặt xong Python ............................................. 24 Hình 12: Giao diện của IDLE PYTHON ............................................................. 25 Hình 13: Kết quả mành hình sẽ hiện dòng “ Hello World” ................................. 25 Hình 14: Vào tab File => New Windows ............................................................ 26 Hình 15: Dùng CMD để biên dịch ....................................................................... 29 Hình 16: Cơ sở dữ liệu của bài toán ..................................................................... 30 Hình 17: Đọc dữ liệu từ cơ sở dữ liệu .................................................................. 31 Hình 18: Lựa chọn thuộc tính và phân chia dữ liệu ............................................. 31 Hình 19: Mô hình hồi quy tuyến tính ................................................................... 32 Hình 20: Mô hình hồi quy LASSO dạng chuẩn L1 ............................................. 33 Hình 21: Đánh giá 3 mô hình hồi quy .................................................................. 33 Hình 22: Kết quả .................................................................................................. 34 1 PHẦN 1. MỞ ĐẦU 1.1. Lý do chọn đề tài Hiện nay cùng với sự phát triển bùng nổ của lĩnh vực Công nghệ thông tin thì lĩnh vực kinh doanh trên thế giới cũng đã trải qua một sự thay đổi to lớn về nội dung cũng nhƣ các cách thức kinh doanh đặc biệt từ khi có sự hỗ trợ đắc lực của công nghệ thông tin thì lĩnh vực kinh doanh đã bắt đầu nhận ra sự cần thiết của các kỹ thuật trong khai phá dữ liệu bởi các kỹ thuật này có thể giúp họ cạnh tranh tốt hơn trên thị trƣờng hiện nay. Họ đã và đang sử dụng các công cụ khai phá dữ liệu cho việc phân khúc khách hàng và lợi nhuận, dự đoán đầu tƣ và hƣớng phát triển, chấm điểm tín dụng và duyệt quảng bá các bản sản phẩm, hay phát hiện các giao dịch gian lận. Có nhiều phƣơng pháp đƣợc đề xuất, tuy nhiên không có phƣơng pháp tiếp cận nào là tối ƣu và chính xác hơn hẳn những phƣơng pháp khác. Dù sao với mỗi phƣơng pháp có một lợi thế và bất lợi riêng khi sử dụng. Một trong những công cụ khai phá tri thức hiệu quả hiện nay là sử dụng hồi qui tuyến tính để tìm ra các quyết định phù hợp. Với mong muốn nghiên cứu về việc ứng dụng hồi qui tuyến tính trong khai phá dữ liệu tôi đã chọn đề tài “Hồi qui tuyến tính và ứng dụng” làm khóa luận tốt nghiệp cuối khóa của mình. 1.2. Mục tiêu của đề tài Đề tài đƣợc thực hiện với mục tiêu cuối cùng là ngƣời làm đề tài nắm bắt và hiểu đƣợc các vấn đề về: Khai phá dữ liệu Hồi qui tuyến tính trong khai phá dữ liệu Ứng dụng hồi qui tuyến tính trong dự báo kinh doanh Cài đặt, đánh giá thuật toán và bƣớc đầu áp dụng vào việc dự báo 1.3. Đối tƣợng và phạm vi nghiên cứu Đối tượng: Các lĩnh vực liên quan có thể dự báo trong kinh doanh Các nội dung liên quan học phần khai phá dữ liệu 2 Phạm vi nghiên cứu là các vấn đề cơ bản về: Khai phá dữ liệu Hồi qui tuyến tính trong khai phá dữ liệu Ứng dụng hồi qui tuyến tính trong dự báo kinh doanh Cài đặt và đánh giá thuật toán và bƣớc đầu áp dụng vào việc dự báo 1.4. Phƣơng pháp nghiên cứu Phƣơng pháp nghiên cứu tài liệu: Phân tích và tổng hợp các tài liệu về khai phá dữ liệu sử dụng hồi qui tuyến tính cho các mô hình dự báo. Phƣơng pháp thực nghiệm: Ứng dụng kết hợp kỹ thuật hồi qui tuyến tính để dự báo trong kinh doanh. 1.5. Lịch sử nghiên cứu Nội dung đã đƣợc học ở học phần Khai phá dữ liệu. Có nhiều ngƣời cũng nhƣ các nhóm nghiên cứu đã chọn kiến th ức này làm nội dung cho đề tài nghiên cứu của họ. 1.6. Đóng góp của đề tài Đề tài đƣợc thực hiện với mong muốn ngƣời làm hiểu rõ hơn các vấn đề trong khai phá dữ liệu đặc biệt là hồi qui tuyến tính và áp dụng trong dự báo. Hiểu hơn nữa một số hàm hồi qui mà excel đã xây dựng với mục đích hỗ trợ cho công việc dự báo kinh doanh. 1.7. Cấu trúc đề tài Chƣơng 1: Tổng quan về khai phá dữ liệu Chƣơng 2: Hồi qui tuyến tính Chƣơng 3: Thử nghiệm và đánh giá hồi qui tuyến tính 3 PHẦN 2. NỘI DUNG NGHIÊN CỨU CHƠNG 1 TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU 1.1.Tổng quan về khai phá dữ liệu 1.1.1. Khái niệm Khai phá dữ liệu là một giai đoạn quan trọng trong quá trình KPTT. Về bản chất nó là giai đoạn duy nhất tìm ra đƣợc thông tin mới. Việc khai phá dữ liệu còn đƣợc coi nhƣ là việc khai phá tri thức từ dữ liệu (knowlegde mining from databases), trích lọc tri thức (knowlegde extraction), phân tích dữ liệu-mẫu (data- partent analysis), khảo cứu dữ liệu (data archaeology), đào xới, nạo vét dữ liệu (data dredging). Khai phá dữ liệu (Data Mining) đƣợc định nghĩa là quá trình trích lọc các thông tin có giá trị ẩn trong lƣợng lớn dữ liệu đƣợc lƣu trữ trong các CSDL hoặc các kho dữ liệu,... Khai phá dữ liệu cũng còn đƣợc coi là một quá trình tìm kiếm, khám phá ở nhiều góc độ để tìm ra các mối tƣơng quan, các mối liên hệ dƣới nhiều góc độ khác nhau nhằm tìm ra các mẫu hay các mô hình tồn tại bên trong cơ sở dữ liệu đang bị che khuất. Để trích rút các mẫu, mô hình tiềm ẩn có tính “tri thức” ta phải tìm và áp dụng các phƣơng pháp, kỹ thuật khai phá sao cho các kỹ thuật và phƣơng pháp này phải phù hợp với tính chất, đặc trƣng của dữ liệu và mục đích sử dụng. Tuy khai phá dữ liệu chỉ là một bƣớc trong quá trình khám phá tri thức nhƣng nó lại là bƣớc tiên quyết, quan trọng và ảnh hƣởng đến toàn bộ quá trình. Tóm lại, khai phá dữ liệu là một quá trình tìm kiếm thông tin “tri thức” tiềm ẩn trong cơ sở dữ liệu lớn, khổng lồ. Vì thế, có thể nói rằng hai thuật ngữ khám phá tri thức và khai phá dữ liệu là tƣơng đƣơng nếu nói ở khía cạnh tổng quan, còn nếu xét ở một góc độ chi tiết thì khai phá dữ liệu là một giai đoạn có vai trò quan trọng trong quá trình khám phá tri thức. 1.1.2. Mục tiêu của khai phá dữ liệu Qua những nội dung đã trình bày ở trên, ta có thể hiểu một cách sơ lƣợc rằng khai phá dữ liệu là quá trình tìm kiếm thông tin hữu ích, tiềm ẩn và 4 mang tính dự báo trong các cơ sở dữ liệu lớn. Việc khai phá dữ liệu nhằm các mục đích chính nhƣ sau: - Khai thác những thông tin tiềm ẩn mang tính dự đoán từ những cơ sở dữ liệu lớn dựa trên các công cụ khai phá dữ liệu nhằm dự đoán những xu hƣớng trong tƣơng lai nhằm giúp các đối tƣợng cần tri thức khai phá nhƣ: các tổ chức, doanh nghiệp, nhà nghiên cứu,.... để hỗ trợ việc đƣa ra những quyết định kịp thời, đƣợc định hƣớng trên những tri thức đƣợc khám phá mang lại; - Thực hiện phân tích xử lý, tính toán dữ liệu một cách tự động cho mỗi quá trình xử lý dữ liệu để tìm ra tri thức. 1.1.3. Quá trình khai phá dữ liệu KPDL là một giai đoạn quan trọng trong quá trình KPTT. Về bản chất, nó là giai đoạn duy nhất tìm ra đƣợc thông tin mới, thông tin tiềm ẩn có trong CSDL chủ yếu phục vụ cho mô tả và dự đoán. Dự đoán là thực hiện việc suy luận trên dữ liệu để đƣa ra các dự báo nhằm phân tích tập dữ liệu huấn luyện và tạo ra một mô hình cho phép dự đoán các mẫu, mô hình mới chƣa biết. Mô tả dữ là tổng kết hoặc diễn tả những đặc điểm chung của những thuộc tính dữ liệu trong kho dữ liệu mà con ngƣời có thể hiểu đƣợc. Quá trình KPDL bao gồm các bƣớc nhƣ trong hình sau: Quá trình KPDL bao gồm các bƣớc nhƣ trong hình sau: Hình 1: Quá trình khai phá dữ liệu Xác định nhiệm vụ Xác định DL liên quan Thu thập và tiền xử lý Thuật toán KPDL DL trực tiếp Thống kê tóm tắt Mẫu 5 Xác định nhiệm vụ: Xác định chính xác các vấn đề cần giải quyết. Xác định các dữ liệu liên quan: Dùng để xây dựng giải pháp. Thu thập và tiền xử lý dữ liệu: Thu thập các dữ liệu liên quan và tiền xử lý chúng sao cho thuật toán KPDL có thể hi ểu đƣợc. Đây là một quá trình rất khó khăn, có thể gặp phải rất nhiều các vƣớng mắc nhƣ: dữ liệu phải đƣợ c sao ra nhiều bản (nếu đƣợc chiết xuất vào các tệp), quản lý tập các dữ liệu, phải lặp đi lặp lại nhiều lần toàn bộ quá trình (nếu mô hình dữ liệu thay đổi), v.v… Thuật toán khai phá dữ liệu: Lựa chọn thuật toán KPDL và thực hiện việc KPDL để tìm đƣợc các mẫu có ý nghĩa, các mẫu này đƣợc biểu diễn dƣới dạ ng luật kết hợp, cây quyết định... tƣơng ứng với ý nghĩa của nó. 1.1.4. Ứng dụng của khai phá dữ liệu Các kỹ thuật KDD có thể đƣợc áp dụng vào trong nhiều lĩnh vực, điển hình: Thông tin thƣơng mại: Phân tích dữ liệu tiếp thị và bán hàng và thị trƣờng; Phân tích vốn đầu tƣ; Quyết định cho vay vốn; Phát hiện gian lận; v.v.. Thông tin sản xuất: Điều khiển và lập lịch; Hệ thống quản lý; Quản trị mạng; Phân tích kết quả thí nghiệm; v.v.. Thông tin khoa học: Dự báo thời tiết; CSDL sinh học; Khoa học địa lý: tìm động đất; v.v.. Thông tin cá nhân, v.v.. 6 1.2. Một số phƣơng pháp khai phá dữ liệu hiện đại 1.2.1. Phân lớp và dự đoán Hƣớng tiếp cận này làm nhiệm vụ đƣa ra các dự đoán dựa vào các suy diễn trên dữ liệu hiện thời. Kỹ thuật này gồm có: phân lớp (classification), hồi quy (regression)... Là quá trình xếp một đối tƣợng vào một trong những lớp đã biết trƣớc (ví dụ: phân lớp các bệnh nhân theo dữ liệu hồ sơ bệnh án, phân lớp vùng địa lý theo dữ liệu thời tiết...). Đối với hƣớng tiếp cận này thƣờng sử dụng một số kỹ thuật của học máy nhƣ cây quyết định (decision tree), mạng nơ- ron nhân tạo (neural network),... 1.2.2. Phân lớp dữ liệu và hồi quy Mục tiêu của phƣơng pháp phân lớp dữ liệu là dự đoán nhãn lớp cho các mẫu dữ liệu. Quá trình phân lớp dữ liệu thƣờng gồm 2 bƣớc: xây dựng mô hình và sử dụng mô hình: - Bƣớc 1: một mô hình sẽ đƣợc xây dựng dựa trên việc phân tích các mẫu dữ liệu sẵn có. Mỗi mẫu tƣơng ứng với một lớp, đƣợc quyết định bởi một thuộc tính gọi là thuộc tính lớp. Các mẫu dữ liệu này còn đƣợc gọi là tập dữ liệu huấn luyện (training data set). Các nhãn lớp của tập dữ liệu huấn luyện đều phải đƣợc xác định trƣớc khi xây dựng mô hình, vì vậy phƣơng pháp này còn đƣợc gọi là học có thầy (supervised learning) khác với phân cụm dữ liệu là học không có thầy (unsupervised learning). - Bƣớc 2: sử dụng mô hình để phân lớp dữ liệu. Trƣớc hết phải tính độ chính xác của mô hình. Nếu độ chính xác là chấp nhận đƣợc, mô hình sẽ đƣợc sử dụng để dự đoán nhãn lớp cho các mẫu dữ liệu khác trong tƣơng lai. Phƣơng pháp hồi qui khác với phân lớp dữ liệu ở chỗ, hồi qui dùng để dự đoán về các giá trị liên tục còn phân lớp dữ liệu thì chỉ dùng để dự đoán về các giá trị rời rạc. 1.2.3. Phân cụm dữ liệu Mục tiêu của phƣơng pháp phân cụm dữ liệu là quá trình nhóm các điểm dữ liệu trong cơ sở dữ liệu thành các cụm sao cho những điểm dữ liệu trong cùng một cụm có độ tƣơng đồng lớn và những điểm không cùng một cụm có sự tƣơng đồng là rất nhỏ. Điểm mạnh của phân cụm dữ liệu là đƣa ra đƣợc những cấu trúc 7 có ích hoặc những cụm các đối tƣợng tìm thấy trực tiếp từ dữ liệu mà không cần bất kì một tri thức cơ sở nào. Giống nhƣ cách tiếp cận học máy, phân cụm dữ liệu đƣợc hiểu nhƣ là phƣơng pháp “học không có thầy”(unsupervised learning). Không giống nhƣ phân lớp dữ liệu, phân cụm dữ liệu không đòi hỏi phải định nghĩa trƣớc các mẫu dữ liệu huấn luyện. Vì thế, có thể coi phân cụm dữ liệu là một cách học bằng quan sát (learning by observation), trong khi phân lớp dữ liệu là học bằng ví dụ (learning by example). Trong phƣơng pháp này sẽ không thể biết kết quả các cụm thu đƣợc sẽ nhƣ thế nào khi bắt đầu quá trình. Vì vậy, cần có một chuyên gia để đánh giá các cụm thu đƣợc. Phân cụm dữ liệu đƣợc sử dụng nhiều trong các ứng dụng về phân đoạn thị trƣờng, phân đoạn khách hàng, nhận dạng mẫu, phân loại trang Web... Ngoài ra, phân cụm dữ liệu còn có thể đƣợc sử dụng nhƣ một bƣớc tiền xử lí cho các thuật toán khai phá dữ liệu khác. 1.2.4. Khai phá dữ liệu sử dụng mạng Neural Mạng Neural là một phƣơng pháp khai phá dữ liệu phát triển dựa trên cấu trúc toán học với khả năng học trên mô hình hệ thần kinh con ngƣời. Mạng Neural có thể đƣa ra ý nghĩa các dữ liệu phức tạp hoặc không chính xác và có thể đƣợc sử dụng để chiết xuất các mẫu và phát hiện xu hƣớng quá phức tạp mà con ngƣời cũng nhƣ các kỹ thuật máy tính khác không thể phát hiện đƣợc. Một trong những ƣu điểm của mạng Neural là khả năng tạo ra các mô hình dự đoán do độ chính xác cao, có thể áp dụng cho nhiều các bài toán khác nhau, đáp ứng đƣợc các nhiệm vụ đặt ra của khai phá dữ liệu nhƣ: phân lớp, phân nhóm, mô hình hóa, dự báo… Mẫu chiết suất bằng mạng Neural đƣợc thể hiện bằng một trong những nút đầu của mạng. Mạng Neural sử dụng các hàm số chứ không sử dụng các hàm biểu tƣợng để tính mức tích cực của các nút đầu ra và cập nhật các trọng số của nó. Đặc điểm của mạng Neural là không cần gia công dữ liệu nhiều, trƣớc khi bắt đầu quá trình học nhƣ các kỹ thuật khác. Tuy nhiên, để có thể sử dụng mạng Neural có hiệu quả cần phải xác định các yếu tố khi thiết kế mạng nhƣ: 8 - Mô hình mạng là gì? - Mạng cần bao nhiêu nút? - Số lớp ẩn sử dụng cho mạng là nhƣ thế nào? - Khi nào thì việc học dừng? Ngoài ra còn có nhiều bƣớc quan trọng cần phải làm để tiền xử lý dữ liệu trƣớc khi đƣa vào mạng Neural để mạng có thể hiểu đƣợc. Mạng Neural đƣợc đóng gói với những thông tin trợ giúp của các chuyên gia đáng tin cậy và đƣợc họ đảm bảo các mô hình này làm việt tốt. Sau khi học, mạng có thể đƣợc coi là một chuyên gia trong lĩnh vực thông tin mà nó vừa đƣợc học 1.2.5. Khai phá dữ liệu sử dụng thuật giải di truyền Đây là phƣơng pháp không chỉ thực hiện phát hiện tri thức mà còn phục vụ rất nhiều bài toán khác. Tƣ tƣởng của thuật toán là áp dụng quy luật của sự chọn lọc tự nhiên. Ngƣời ta mô phỏng tập dữ liệu ban đầu bằng ký tự nhị phân và gọi là những quần thể xuất phát. Bằng các thao tác lai ghép, đột biến nhằm biến đổi quần thể gene ban đầu và loại đi một số gene, làm cho số lƣợng gene trong quần thể là không thay đổi. Một hàm thích nghi đƣợc xây dựng để xác định mức độ thích nghi ngày càng cao. Về mặt lý thuyết giải thuật di truyền cho lời giải tối ƣu toàn cục (khác với phƣơng pháp mạng Neural). Tuy nhiên, ngƣời ta cũng hạn chế lời giải với một mức độ thích nghi nào đó để hạn chế số lƣợng các bƣớc xây dựng quần thể. Nói theo nghĩa rộng, giải thuật di truyền mô phỏng lại hệ thống tiến hoá trong tự nhiên, chính xác hơn là giải thuật chỉ ra tập các cá thể đƣợc hình thành, đƣợc ƣớc lƣợng và biến đổi nhƣ thế nào. Ví dụ nhƣ xác định xem làm thế nào để lựa chọn các cá thể tạo giống và lựa chọn các cá thể nào để loại bỏ. Giải thuật di truyền là một giải thuật tối ƣu hoá, đƣợc sử dụng rất rộng rãi trong việc tối ƣu hoá các kỹ thuật khai phá dữ liệu trong đó có kỹ thuật mạng Neural. Sự kết hợp của nó với các giải thuật khai phá dữ liệu ở chỗ tối ƣu hóa là cần thiết để xác định các giá trị tham số nào tạo ra các luật tốt nhất. 9 1.3. Một số phƣơng pháp khai phá dữ liệu thông dụng 1.3.1. Khai phá dữ liệu sử dụng cây quyết định Phân lớp khai phá dữ liệu luật là cách tiếp cận quan trọng trong quá trình khai phá dữ liệu, với mục tiêu nhằm tạo ra một tập luật tƣơng đối nhỏ có độ đúng đắn cao từ cơ sở dữ liệu lớn. Cây quyết định đƣợc coi là phƣơng pháp tiếp cận truyền thống cho phép phân lớp luật. Cây quyết định đƣa ra cách tiếp cận heuristic nhằm tìm kiếm các thuộc tính tốt nhất và dẫn đến kết quả cao nhất. Tuy nhiên, cây quyết định có một số hạn chế khi triển khai lựa chọn thuộc tính khi xây dựng cây. Hạn chế của cây quyết định là các trƣờng hợp phân rã và tái tạo, vấn đề khi phân rã là khi cây quyết định cần phân chia dữ liệu nhiều lần để có thể nhận biết đƣợc toàn bộ dữ liệu mẫu. Vấn đề khi tái tạo là một cây con cần đƣợc xây dựng lại nhiều lần làm cho cây quyết định có độ sâu quá lớn và khó hiểu. Cây quyết định là một mô tả tri thức dạng đơn giản nhằm phân các đối tƣợng dữ liệu thành một số lớp nhất định. Các nút của cây đƣợc gán nhãn là tên của các thuộc tính, các cạnh đƣợc gán các giá trị có thể của các thuộc tính, các lá mô tả các lớp khác nhau. Các đối tƣợng đƣợc phân lớp theo các đƣờng đi trên cây, qua các cạnh tƣơng ứng với giá trị của thuộc tính của đối tƣợng tới lá. Quá trình xây dựng cây quyết định là quá trình phát hiện ra các luật phân chia dữ liệu đã cho thành các lớp đã đƣợc định nghĩa. Trong thực tế, tập các cây quyết định có thể có đối với bài toán này rất lớn và rất khó có thể duyệt hết một cách tƣờng tận. Có nhiều phƣơng pháp xây dựng cây quyết định khi khai phá dữ liệu, đó là các phƣơng pháp sử dụng các thuật toán CLS, ID3, C4.5,... và một phƣơng pháp tƣơng đối tiên tiến hiện nay và đang là tâm điểm đƣợc nghiên cứu là phƣơng pháp xây dựng cây quyết định dựa trên phụ thuộc hàm.… 1.3.2. Luật kết hợp Có rất nhiều kiểu luật có thể đƣợc phát hiện từ cơ sở dữ liệu nói chung. Ví dụ nhƣ luật đặc trƣng, luật biệt số, luật kết hợp, luật về sự lệch hƣớng và sự phát triển. 10 Phƣơng pháp phát hiện luật kết hợp không gian cũng là một phƣơng pháp quan trọng trong khám phá tri thức. Phƣơng pháp phát hiện luật kết hợp đƣa ra những luật về sự kết hợp giữa một hoặc nhiều thuộc tính đối với một hoặc nhiều thuộc tính khác. Hƣớng tiếp cận này đƣợc ứng dụng nhiều trong lĩnh vực kinh doanh, y học, tin sinh học, giáo dục, viễn thông, tài chính và thị trƣờng chứng khoán,... Khái niệm về luật kết hợp đƣợc phát biể...
TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU
Tổng quan về khai phá dữ liệu
Khai phá dữ liệu là một giai đoạn quan trọng trong quá trình KPTT Về bản chất nó là giai đoạn duy nhất tìm ra đƣợc thông tin mới Việc khai phá dữ liệu còn đƣợc coi nhƣ là việc khai phá tri thức từ dữ liệu (knowlegde mining from databases), trích lọc tri thức (knowlegde extraction), phân tích dữ liệu-mẫu (data- partent analysis), khảo cứu dữ liệu (data archaeology), đào xới, nạo vét dữ liệu (data dredging)
Khai phá dữ liệu (Data Mining) đƣợc định nghĩa là quá trình trích lọc các thông tin có giá trị ẩn trong lượng lớn dữ liệu được lưu trữ trong các CSDL hoặc các kho dữ liệu, Khai phá dữ liệu cũng còn đƣợc coi là một quá trình tìm kiếm, khám phá ở nhiều góc độ để tìm ra các mối tương quan, các mối liên hệ dưới nhiều góc độ khác nhau nhằm tìm ra các mẫu hay các mô hình tồn tại bên trong cơ sở dữ liệu đang bị che khuất Để trích rút các mẫu, mô hình tiềm ẩn có tính
“tri thức” ta phải tìm và áp dụng các phương pháp, kỹ thuật khai phá sao cho các kỹ thuật và phương pháp này phải phù hợp với tính chất, đặc trưng của dữ liệu và mục đích sử dụng Tuy khai phá dữ liệu chỉ là một bước trong quá trình khám phá tri thức nhưng nó lại là bước tiên quyết, quan trọng và ảnh hưởng đến toàn bộ quá trình
Tóm lại, khai phá dữ liệu là một quá trình tìm kiếm thông tin “tri thức” tiềm ẩn trong cơ sở dữ liệu lớn, khổng lồ Vì thế, có thể nói rằng hai thuật ngữ khám phá tri thức và khai phá dữ liệu là tương đương nếu nói ở khía cạnh tổng quan, còn nếu xét ở một góc độ chi tiết thì khai phá dữ liệu là một giai đoạn có vai trò quan trọng trong quá trình khám phá tri thức
1.1.2 Mục tiêu của khai phá dữ liệu
Qua những nội dung đã trình bày ở trên, ta có thể hiểu một cách sơ lƣợc rằng khai phá dữ liệu là quá trình tìm kiếm thông tin hữu ích, tiềm ẩn và mang tính dự báo trong các cơ sở dữ liệu lớn Việc khai phá dữ liệu nhằm các mục đích chính nhƣ sau:
- Khai thác những thông tin tiềm ẩn mang tính dự đoán từ những cơ sở dữ liệu lớn dựa trên các công cụ khai phá dữ liệu nhằm dự đoán những xu hướng trong tương lai nhằm giúp các đối tượng cần tri thức khai phá như: các tổ chức, doanh nghiệp, nhà nghiên cứu, để hỗ trợ việc đƣa ra những quyết định kịp thời, được định hướng trên những tri thức được khám phá mang lại;
- Thực hiện phân tích xử lý, tính toán dữ liệu một cách tự động cho mỗi quá trình xử lý dữ liệu để tìm ra tri thức
1.1.3 Quá trình khai phá dữ liệu
KPDL là một giai đoạn quan trọng trong quá trình KPTT Về bản chất, nó là giai đoạn duy nhất tìm ra đƣợc thông tin mới, thông tin tiềm ẩn có trong CSDL chủ yếu phục vụ cho mô tả và dự đoán Dự đoán là thực hiện việc suy luận trên dữ liệu để đƣa ra các dự báo nhằm phân tích tập dữ liệu huấn luyện và tạo ra một mô hình cho phép dự đoán các mẫu, mô hình mới chƣa biết Mô tả dữ là tổng kết hoặc diễn tả những đặc điểm chung của những thuộc tính dữ liệu trong kho dữ liệu mà con người có thể hiểu được Quá trình KPDL bao gồm các bước như trong hình sau:
Quá trình KPDL bao gồm các bước như trong hình sau:
Hình 1: Quá trình khai phá dữ liệu
Thu thập và tiền xử lý
DL trực tiếp Thống kê tóm tắt
Xác định nhiệm vụ: Xác định chính xác các vấn đề cần giải quyết
Xác định các dữ liệu liên quan: Dùng để xây dựng giải pháp
Thu thập và tiền xử lý dữ liệu: Thu thập các dữ liệu liên quan và tiền xử lý chúng sao cho thuật toán KPDL có thể hiểu đƣợc Đây là một quá trình rất khó khăn, có thể gặp phải rất nhiều các vướng mắc như: dữ liệu phải được sao ra nhiều bản (nếu đƣợc chiết xuất vào các tệp), quản lý tập các dữ liệu, phải lặp đi lặp lại nhiều lần toàn bộ quá trình (nếu mô hình dữ liệu thay đổi), v.v…
Thuật toán khai phá dữ liệu: Lựa chọn thuật toán KPDL và thực hiện việc KPDL để tìm được các mẫu có ý nghĩa, các mẫu này được biểu diễn dưới dạng luật kết hợp, cây quyết định tương ứng với ý nghĩa của nó
1.1.4 Ứng dụng của khai phá dữ liệu
Các kỹ thuật KDD có thể đƣợc áp dụng vào trong nhiều lĩnh vực, điển hình:
Phân tích dữ liệu tiếp thị và bán hàng và thị trường;
Phân tích vốn đầu tƣ;
Quyết định cho vay vốn;
Điều khiển và lập lịch;
Phân tích kết quả thí nghiệm; v.v
Khoa học địa lý: tìm động đất; v.v
Một số phương pháp khai phá dữ liệu hiện đại
1.2.1 Phân lớp và dự đoán
Hướng tiếp cận này làm nhiệm vụ đưa ra các dự đoán dựa vào các suy diễn trên dữ liệu hiện thời Kỹ thuật này gồm có: phân lớp (classification), hồi quy (regression) Là quá trình xếp một đối tƣợng vào một trong những lớp đã biết trước (ví dụ: phân lớp các bệnh nhân theo dữ liệu hồ sơ bệnh án, phân lớp vùng địa lý theo dữ liệu thời tiết ) Đối với hướng tiếp cận này thường sử dụng một số kỹ thuật của học máy nhƣ cây quyết định (decision tree), mạng nơ- ron nhân tạo (neural network),
1.2.2 Phân lớp dữ liệu và hồi quy
Mục tiêu của phương pháp phân lớp dữ liệu là dự đoán nhãn lớp cho các mẫu dữ liệu Quá trình phân lớp dữ liệu thường gồm 2 bước: xây dựng mô hình và sử dụng mô hình:
- Bước 1: một mô hình sẽ được xây dựng dựa trên việc phân tích các mẫu dữ liệu sẵn có Mỗi mẫu tương ứng với một lớp, được quyết định bởi một thuộc tính gọi là thuộc tính lớp Các mẫu dữ liệu này còn đƣợc gọi là tập dữ liệu huấn luyện (training data set) Các nhãn lớp của tập dữ liệu huấn luyện đều phải đƣợc xác định trước khi xây dựng mô hình, vì vậy phương pháp này còn được gọi là học có thầy (supervised learning) khác với phân cụm dữ liệu là học không có thầy (unsupervised learning)
- Bước 2: sử dụng mô hình để phân lớp dữ liệu Trước hết phải tính độ chính xác của mô hình Nếu độ chính xác là chấp nhận đƣợc, mô hình sẽ đƣợc sử dụng để dự đoán nhãn lớp cho các mẫu dữ liệu khác trong tương lai Phương pháp hồi qui khác với phân lớp dữ liệu ở chỗ, hồi qui dùng để dự đoán về các giá trị liên tục còn phân lớp dữ liệu thì chỉ dùng để dự đoán về các giá trị rời rạc
Mục tiêu của phương pháp phân cụm dữ liệu là quá trình nhóm các điểm dữ liệu trong cơ sở dữ liệu thành các cụm sao cho những điểm dữ liệu trong cùng một cụm có độ tương đồng lớn và những điểm không cùng một cụm có sự tương đồng là rất nhỏ Điểm mạnh của phân cụm dữ liệu là đƣa ra đƣợc những cấu trúc có ích hoặc những cụm các đối tƣợng tìm thấy trực tiếp từ dữ liệu mà không cần bất kì một tri thức cơ sở nào Giống nhƣ cách tiếp cận học máy, phân cụm dữ liệu được hiểu như là phương pháp “học không có thầy”(unsupervised learning) Không giống nhƣ phân lớp dữ liệu, phân cụm dữ liệu không đòi hỏi phải định nghĩa trước các mẫu dữ liệu huấn luyện Vì thế, có thể coi phân cụm dữ liệu là một cách học bằng quan sát (learning by observation), trong khi phân lớp dữ liệu là học bằng ví dụ (learning by example) Trong phương pháp này sẽ không thể biết kết quả các cụm thu đƣợc sẽ nhƣ thế nào khi bắt đầu quá trình Vì vậy, cần có một chuyên gia để đánh giá các cụm thu đƣợc Phân cụm dữ liệu đƣợc sử dụng nhiều trong các ứng dụng về phân đoạn thị trường, phân đoạn khách hàng, nhận dạng mẫu, phân loại trang Web Ngoài ra, phân cụm dữ liệu còn có thể được sử dụng như một bước tiền xử lí cho các thuật toán khai phá dữ liệu khác
1.2.4 Khai phá dữ liệu sử dụng mạng Neural
Mạng Neural là một phương pháp khai phá dữ liệu phát triển dựa trên cấu trúc toán học với khả năng học trên mô hình hệ thần kinh con người
Mạng Neural có thể đƣa ra ý nghĩa các dữ liệu phức tạp hoặc không chính xác và có thể được sử dụng để chiết xuất các mẫu và phát hiện xu hướng quá phức tạp mà con người cũng như các kỹ thuật máy tính khác không thể phát hiện đƣợc
Một trong những ƣu điểm của mạng Neural là khả năng tạo ra các mô hình dự đoán do độ chính xác cao, có thể áp dụng cho nhiều các bài toán khác nhau, đáp ứng đƣợc các nhiệm vụ đặt ra của khai phá dữ liệu nhƣ: phân lớp, phân nhóm, mô hình hóa, dự báo…
Mẫu chiết suất bằng mạng Neural đƣợc thể hiện bằng một trong những nút đầu của mạng Mạng Neural sử dụng các hàm số chứ không sử dụng các hàm biểu tƣợng để tính mức tích cực của các nút đầu ra và cập nhật các trọng số của nó Đặc điểm của mạng Neural là không cần gia công dữ liệu nhiều, trước khi bắt đầu quá trình học nhƣ các kỹ thuật khác Tuy nhiên, để có thể sử dụng mạng Neural có hiệu quả cần phải xác định các yếu tố khi thiết kế mạng nhƣ:
- Mô hình mạng là gì?
- Mạng cần bao nhiêu nút?
- Số lớp ẩn sử dụng cho mạng là nhƣ thế nào?
- Khi nào thì việc học dừng?
Ngoài ra còn có nhiều bước quan trọng cần phải làm để tiền xử lý dữ liệu trước khi đưa vào mạng Neural để mạng có thể hiểu được
Mạng Neural đƣợc đóng gói với những thông tin trợ giúp của các chuyên gia đáng tin cậy và đƣợc họ đảm bảo các mô hình này làm việt tốt Sau khi học, mạng có thể đƣợc coi là một chuyên gia trong lĩnh vực thông tin mà nó vừa đƣợc học
1.2.5 Khai phá dữ liệu sử dụng thuật giải di truyền Đây là phương pháp không chỉ thực hiện phát hiện tri thức mà còn phục vụ rất nhiều bài toán khác Tư tưởng của thuật toán là áp dụng quy luật của sự chọn lọc tự nhiên Người ta mô phỏng tập dữ liệu ban đầu bằng ký tự nhị phân và gọi là những quần thể xuất phát Bằng các thao tác lai ghép, đột biến nhằm biến đổi quần thể gene ban đầu và loại đi một số gene, làm cho số lƣợng gene trong quần thể là không thay đổi Một hàm thích nghi đƣợc xây dựng để xác định mức độ thích nghi ngày càng cao Về mặt lý thuyết giải thuật di truyền cho lời giải tối ƣu toàn cục (khác với phương pháp mạng Neural) Tuy nhiên, người ta cũng hạn chế lời giải với một mức độ thích nghi nào đó để hạn chế số lượng các bước xây dựng quần thể
Nói theo nghĩa rộng, giải thuật di truyền mô phỏng lại hệ thống tiến hoá trong tự nhiên, chính xác hơn là giải thuật chỉ ra tập các cá thể đƣợc hình thành, đƣợc ƣớc lƣợng và biến đổi nhƣ thế nào Ví dụ nhƣ xác định xem làm thế nào để lựa chọn các cá thể tạo giống và lựa chọn các cá thể nào để loại bỏ
Giải thuật di truyền là một giải thuật tối ƣu hoá, đƣợc sử dụng rất rộng rãi trong việc tối ƣu hoá các kỹ thuật khai phá dữ liệu trong đó có kỹ thuật mạng Neural Sự kết hợp của nó với các giải thuật khai phá dữ liệu ở chỗ tối ƣu hóa là cần thiết để xác định các giá trị tham số nào tạo ra các luật tốt nhất.
Một số phương pháp khai phá dữ liệu thông dụng
1.3.1 Khai phá dữ liệu sử dụng cây quyết định
Phân lớp khai phá dữ liệu luật là cách tiếp cận quan trọng trong quá trình khai phá dữ liệu, với mục tiêu nhằm tạo ra một tập luật tương đối nhỏ có độ đúng đắn cao từ cơ sở dữ liệu lớn Cây quyết định được coi là phương pháp tiếp cận truyền thống cho phép phân lớp luật Cây quyết định đƣa ra cách tiếp cận heuristic nhằm tìm kiếm các thuộc tính tốt nhất và dẫn đến kết quả cao nhất Tuy nhiên, cây quyết định có một số hạn chế khi triển khai lựa chọn thuộc tính khi xây dựng cây
Hạn chế của cây quyết định là các trường hợp phân rã và tái tạo, vấn đề khi phân rã là khi cây quyết định cần phân chia dữ liệu nhiều lần để có thể nhận biết đƣợc toàn bộ dữ liệu mẫu Vấn đề khi tái tạo là một cây con cần đƣợc xây dựng lại nhiều lần làm cho cây quyết định có độ sâu quá lớn và khó hiểu
Cây quyết định là một mô tả tri thức dạng đơn giản nhằm phân các đối tƣợng dữ liệu thành một số lớp nhất định Các nút của cây đƣợc gán nhãn là tên của các thuộc tính, các cạnh đƣợc gán các giá trị có thể của các thuộc tính, các lá mô tả các lớp khác nhau Các đối tượng được phân lớp theo các đường đi trên cây, qua các cạnh tương ứng với giá trị của thuộc tính của đối tượng tới lá
Quá trình xây dựng cây quyết định là quá trình phát hiện ra các luật phân chia dữ liệu đã cho thành các lớp đã đƣợc định nghĩa Trong thực tế, tập các cây quyết định có thể có đối với bài toán này rất lớn và rất khó có thể duyệt hết một cách tường tận
Có nhiều phương pháp xây dựng cây quyết định khi khai phá dữ liệu, đó là các phương pháp sử dụng các thuật toán CLS, ID3, C4.5, và một phương pháp tương đối tiên tiến hiện nay và đang là tâm điểm được nghiên cứu là phương pháp xây dựng cây quyết định dựa trên phụ thuộc hàm.…
Có rất nhiều kiểu luật có thể đƣợc phát hiện từ cơ sở dữ liệu nói chung Ví dụ như luật đặc trưng, luật biệt số, luật kết hợp, luật về sự lệch hướng và sự phát triển
Phương pháp phát hiện luật kết hợp không gian cũng là một phương pháp quan trọng trong khám phá tri thức Phương pháp phát hiện luật kết hợp đưa ra những luật về sự kết hợp giữa một hoặc nhiều thuộc tính đối với một hoặc nhiều thuộc tính khác Hướng tiếp cận này được ứng dụng nhiều trong lĩnh vực kinh doanh, y học, tin sinh học, giáo dục, viễn thông, tài chính và thị trường chứng khoán,
Khái niệm về luật kết hợp đƣợc phát biểu diễn nhƣ sau: một luật có dạng X
Y (c%) với X và Y là tập các thuộc tính với độ tin cậy là c% đƣợc coi là luật kết hợp nếu có ít nhất c% đối tƣợng trong cơ sở dữ liệu đang xét thoả mãn: nếu điều kiện X đƣợc thoả mãn thì điều kiện Y cũng thoả mãn
Ví dụ, luật sau là luật kết hợp: is_a(x, school) close (x, park) (80%) Luật trên thể hiện là: 80% trường học gần với công viên
Nhƣ vậy, có rất nhiều kiểu thuộc tính có thể tạo thành những luật kết hợp Điều này khiến cho trong nhiều trường hợp số luật kết hợp tìm được vượt quá nhu cầu Để hạn chế số luật kết hợp tìm được, người ta sử dụng khái niệm hỗ trợ tối thiểu α (minimum support) và độ tin cậy tối thiểu δ (minimum confidence)
Hai tham số sẽ giúp loại bớt các luật tìm thấy và chỉ để lại những luật thực sự có ích cho người sử dụng: a Hỗ trợ tối thiểu
Trong cơ sở dữ liệu lớn, có thể có rất nhiều luật giữa các đối tƣợng nhƣng phần lớn các luật đó chỉ có thể áp dụng vào một số nhỏ các đối tƣợng hoặc độ tin cậy của luật là rất thấp Chính vì thế mà phần lớn các luật không có ích với người sử dụng Ví dụ, người sử dụng có thể không quan tâm nhiều tới mối quan hệ giữa nhà ở và trường học nếu luật đó chỉ áp dụng cho 5% số nhà ở trong khi người ta muốn ít nhất luật đó cũng phải đƣợc áp dụng cho trên 50% các ngôi nhà Do đó chúng ta có thể lọc bỏ những luật kết hợp mà chỉ có thể áp dụng cho α% đối tƣợng trong cơ sở dữ liệu b Độ tin cậy tối thiểu
Nếu một luật đƣợc đƣa ra với mức độ tin cậy (độ tin cậy là tỉ lệ số đối tƣợng dữ liệu thoả mãn X và thoả mãn Y so với tổng số các đối tƣợng thoả mãn
X) thấp thì cũng không có ý nghĩa ứng dụng Ví dụ như luật: số người bị bệnh tim do ăn cá biển chỉ đúng 1% thì gần nhƣ không có ý nghĩa trong y học khi chuẩn đoán nguyên nhân bị bệnh tim của một bệnh nhân Do đó, chúng ta sẽ loại bỏ những luật có độ tin cậy thấp mà chỉ giữ lại luật có độ tin cậy cao tỷ lệ đúng tối thiểu δ%
1.3.3 Phân tích chuỗi theo thời gian
Cũng tương tự như khai phá dữ liệu bằng luật kết hợp nhưng có thêm tính thứ tự và tính thời gian Một luật mô tả mẫu tuần tự có dạng tiêu biểu X -> Y, phản ánh sự xuất hiện của biến cố X sẽ dẫn đến việc xuất hiện biến cố Y Hướng tiếp cận này được ứng dụng nhiều trong lĩnh vực tài chính và thị trường chứng khoán bởi chúng có tính dự báo cao.
Ứng dụng khai phá dữ liệu trong lĩnh vực khách hàng
Sau đây là một số lĩnh vực mà KPDL đang được ứng dụng rộng rãi:
Y học và chăm sóc sức khỏe: Chuẩn đoán bệnh trong y tế dựa trên kết quả xét nghiệm
Tài chính và thị trường chứng khoán: Áp dụng vào phân tích các thẻ tín dụng tiêu biểu của khách hàng, phân đoạn tài khoản nhận đƣợc, phân tích đầu tƣ tài chính cũng như chứng khoản, giấy chứng nhận và các quỹ tình thương, đánh giá tài chính, phát hiện kẻ gian Dự báo giá của các loại cổ phiếu trong thị trường chứng khoán
Bảo hiểm: Áp dụng vào việc phân tích mức độ rủi ro xảy ra đối với từng loại hàng hóa, dich vụ hay chiến lƣợc tìm kiếm khách hàng mua bảo hiểm
Quá trình sản xuất: Các ứng dụng giải quyết sự tối ƣu của các nguồn tài nguyên nhƣ máy móc, nhân sự và nguyên vật liệu, thiết kế tối ƣu trong quá trình sản xuất, bố trí phân xưởng và thiết kế sản phẩm, chẳng hạn như quá trình tự động dựa vào yêu cầu khách hàng
Thiên văn học: Quan sát chú trọng tới việc thu thập và phân tích dữ liệu, sử dụng các nguyên tắc cơ bản của vật lý Thiên văn học lý thuyết định hướng theo sự phát triển các mô hình máy tính hay mô hình phân tích để miêu tả các vật thể và hiện tƣợng thiên văn Hai lĩnh vực bổ sung lẫn nhau, thiên văn học lý thuyết tìm cách giải thích các kết quả quan sát, và việc quan sát lại thường được dùng đề xác nhận các kết quả lý thuyết
Quảng cáo: Phân tích, trích chọn những đặc trƣng
HỒI QUI TUYẾN TÍNH
Mô hình hồi quy
2.1.2 Khái niệm về hồi quy
Hình 2: Mô hình hồi quy
Phân tích hồi qui là nghiên cứu sự phụ thuộc của một biến (biến phụ thuộc) vào một hay nhiều biến khác (biến độc lập), nhằm mục đích ƣớc lƣợng (hay dự đoán) giá trị trung bình của biến phụ thuộc trên cơ sở các giá trị biết trước của các biến độc lập
2.1.2 Phân tích hồi quy giải quyết vấn đề
Ƣớc lƣợng giá trị trung bình của biến phụ thuộc với giá trị đã cho của biến độc lập
Kiểm định giả thiết về bản chất của sự phụ thuộc
Dự đoán giá trị trung bình của biến phụ thuộc khi biết giá trị của các biến độc lập
Kết hợp các vấn đề trên
- Nhà nông học có thể quan tâm tới việc nghiên cứu sự phụ thuộc của sản lƣợng lúa vào nhiệt độ, lƣợng mƣa, nắng hay phân bón,…
- Công ty bất động sản rất quan tâm đến việc liên hệ giữa giá bán của một căn nhà với các đặc trưng của nó như kích thước, diện tích sử dụng, số phòng ngủ và phòng tắm, các loại thiết bị gia dụng,…
Giới thiệu về hồi qui tuyến tính
Hồi quy tuyến tính là một phương pháp phân tích quan hệ giữa biến phụ thuộc Y với một hay nhiều biến độc lập X Mô hình hóa sử dụng hàm tuyến tính (bậc 1) Các tham số của mô hình (hay hàm số) đƣợc ƣớc lƣợng từ dữ liệu
Hồi quy tuyến tính đƣợc sử dụng rộng rãi trong thực tế do tính chất đơn giản hóa của hồi quy Đối với mô hình hồi quy tuyến tính, mô hình hóa sử dụng là dạng bậc nhất
Có nghĩa là chúng ta cần tính toán các hệ số Wi trong một biểu thức bậc nhất nhƣ sau:
Tức là trên đồ thị chúng ta đi tìm một đường thẳng (nếu trường hợp có 1 biến độc lập) hoặc một siêu phẳng (với trường hợp nhiều biến độc lập) đi qua tập hợp các điểm trong không gian thuộc tính mà thể hiện gần đúng nhất sự phân bố của tập dữ liệu Trên phương diện tính toán, chúng ta đi tìm các hệ số Wi như trên sao cho lỗi hồi quy đạt đƣợc là nhỏ nhất
2.1.2 Bài toán Hồi Quy (Regression)
Hồi Quy (regression) là một phương pháp học có giám sát (supervised learning) trong máy học Mục tiêu chính là tìm ra mối quan hệ giữa các đặc trƣng của một vấn đề nào đó Cụ thể hơn, từ một tập dữ liệu cho trước, ta xây dựng một mô hình (phương trình, đồ thị, …) khớp nhất với tập dữ liệu, thể hiện được xu hướng biến thiên và mối quan hệ giữa các đặc trưng Khi có một mẫu dữ liệu mới vào, dựa vào mô hình, chúng ta có thể dự đoán giá trị của mẫu dữ liệu đó Lấy ví dụ nhƣ chúng ta cần dự đoán điểm trung bình cuối kỳ dựa vào số ngày đi học và điểm giữa kỳ của học sinh Nhƣ vậy chúng ta cần tìm mối quan hệ giữa điểm cuối kỳ phụ thuộc vào số ngày đi học và điểm giữa kỳ Dựa vào tập dữ liệu (giả sử thu thập điểm cuối kỳ, số ngày học và điểm giữa kỳ của 100 học sinh), ta xây dựng một phương trình y = θ0 + θ1x1 + θ2x2 trong đó y là điểm cuối kỳ phụ thuộc x 1 (số ngày học) và x 2 (điểm giữa kỳ)
Khi có thêm một mẩu dữ liệu của một học sinh mới, chỉ cần áp vào phương trình nhƣ vậy ta sẽ dự đoán đƣợc điểm cuối kỳ của học sinh đó
Trong ví dụ trên, ta thấy phương trình y = θ0+θ1x1+θ2x2 là phương trình của mặt phẳng trong không gian 3 chiều Những mô hình tương tự như phương trình đường thẳng, phương trình mặt phẳng chính là những mô hình tuyến tính Hồi quy tuyến tính (linear regression) là một mô hình đơn giản trong bài toán hồi quy, trong đó chúng ta dùng đường thẳng, mặt phẳng, hay phương trình tuyến tính nói chung để dự đoán xu hướng của dữ liệu Giải bài toán hồi quy tuyến tính chính là đi tìm các tham số θ0, θ1, để xác định phương trình tuyến tính
Hình 3: Ví dụ về hồi quy tuyến tính
Một số phương pháp hồi qui tuyến tính
2.3.1 Hồi quy tuyến tính với một ẩn
Hồi quy tuyến tính một ẩn là chỉ tìm ra sự phụ thuộc vào một đặc trƣng nào đó Ví dụ: tìm sự phụ thuộc của điểm cuối kỳ vào số ngày đi học hoặc tìm sự phục thuộc của giá xăng dầu theo thời gian, ….Tổng quát hơn chính là đi xây dựng hàm h(x) = θ0+θ1x với x là đặc trƣng của dữ liệu hoặc một cách mô tả khác h(x) = θ0x0+θ1x1 với x0 luôn có giá trị là 1 và x 1 là giá trị của đặc trƣng
Nhƣ vậy để giải bài toán hồi quy tuyến tính này chúng ta cần đi tìm θ0 và θ1 Xét hàm lỗi:
E( 𝑚 ∑ 𝑚 𝑚 ∑ 𝑚 Áp dụng phương pháp gradient descent để tìm cực tiểu của hàm lỗi trên ta có: ∑
Trong đó m là số lƣợng mẫu dữ liệu dùng để huấn luyện, x i là mẫu dữ liệu thứ i Lưu ý rằng đây hàm lỗi E là hàm phụ thuộc vào 2 biến và nên sẽ có gradient theo 2 biến đó và đƣợc dùng để cập nhật cho từng giá trị và Nhƣ vậy, theo như phương pháp gradient descent, sau một số lần lặp hữu hạn thì các giá trị và sẽ tiến dần về giá trị cần tìm
2.3.2 Hồi quy tuyến tính với nhiều ẩn
Hồi quy tuyến tính nhiều ẩn là trường hợp mở rộng của hồi quy tuyến tính một ẩn Dữ liệu thay vì chỉ có một đặc trƣng thì sẽ có từ hai đặc trƣng trở lên Nhƣ vậy hàm h(x) sẽ giống nhƣ với mô tả ban đầu:
Phương pháp gradient descent áp dụng cho nhiều đặc trưng cũng giống với một đặc trƣng Hàm lỗi E thay vì chỉ là hàm hai biến giờ sẽ là hàm 3 biến trở lên Việc lấy gradient theo từng biến cũng tƣợng tự và cũng đƣợc dùng để cập nhật cho giá trịθ tương ứng đó Tống quát hóa chúng ta sẽ có một hàm cập như sau:
2.3.3 Hồi quy tuyến tính đa thức
Trong thực tế thì không phải lúc nào dữ liệu cũng đi theo đường thẳng mà có thể đi theo một đường cong đa thức
Hình 4: Ví dụ về hồi quy đa thức
Trong trường hợp như vậy, hàm h sẽ trở thành các hàm đa thức bậc n >= 2: Tuy nhiên, khi tính toán hàm lỗi E 𝑚 thì ta thấy hàm E chỉ phụ thuộc các tham số θ còn các giá trị x đƣợc xem nhƣ hằng số Nhƣ vậy chúng ta có thể xem các bộ giá trị (x, x 2 , x 3 ,
…) nhƣ các bộ (t 1 , t 2 , t 3 , …) Nhƣ vậy h sẽ trở thành và áp dụng gradient descent nhƣ đối với mô hình nhiều ẩn.
Áp dụng vào bài toán định giá bất động sản
Quay lại với bài toán đoán giá bất động sản, hồi quy tuyến tính xác định một đường thẳng hay một mặt phẳng qua các điểm dữ liệu trong không gian thuộc tính Giả sử giá của bất động sản là y và các thuộc tính ảnh hưởng đến giá của nó như diện tích, độ rộng mặt tiền, độ rông đường vào nhà, tình trạng pháp lý qua khu đất, tiện ích của khu dân cư (điều kiện về sinh, điều kiện trường học, y tế), khoảng cách đến trung tâm phường, quận, thành phố…được lượng hóa và ký hiệu là 𝑝 Ta cần xây dựng hàm giá của bất động sản là một hàm tuyến tính theo các biến trên, nghĩa là có dạng sau:
Qua điều tra số liệu ta thu thập đƣợc n bộ số liệu và giả sử 𝑝
𝑛 là các số liệu của bản ghi thứ i Thông thường ta đi tìm các hệ số
𝑤 𝑘 𝑘 𝑝 sao cho bình phương sai số là nhỏ nhất Điều này dẫn đến việc giải một bài toán tối ƣu nhƣ sau:
} Đây là một bài toán tối ƣu lồi, khả vi và không khó khăn để giải bài toán này bằng các công cụ khác nhau Phương pháp hướng giảm thường được sử dụng để giải quyết vấn đề này Hồi quy tuyến tính là một phương pháp hay không phải bởi vì nó là một phương pháp phổ biến được sử dụng trong các mô hình kinh tế mà còn bởi vì nó có một sự giải thích rất trực quan Dựa trên độ lớn của các trọng số, chúng ta có thể thấy thuộc tính nào có tầm ảnh hưởng lớn đến giá trị của một ngôi nhà
Hồi qui phi tuyến LASSO dạng chuẩn L1
Sai số của mô hình biến động theo sự lựa chọn tham số λ Thuật toán gồm các bước như sau:
Bước 1: Tìm các hệ số 𝑤 𝑘 𝑤 𝑘𝑙 tương ứng với giá trị khởi tạo tham số chỉnh hóa , ƣớc lƣợng trung bình sai số tuyệt đối 𝑒 của dữ liệu huấn luyện Bước 2: Tính 𝑚 mà tìm các hệ số 𝑤 𝑘 𝑚 ,𝑤 𝑘𝑙 𝑚 tương ứng với giá trị = 𝑚 uwocs lƣợng trung bình sai số tuyệt đối 𝑒 𝑚 của dữ liệu huấn luyện (
Lặp lại bước 2 cho m = 1,2,… cho đến khi 𝑒 𝑚 𝑒 𝑒 𝑒 , khi đó ở bước cuối cùng ta được m = M Các mô hình hồi qui phi tuyến LASSO này đƣợc kết tập lại hình thành một tổ hợp hồi qui phi tuyến:
Mô hình của chúng ta lựa chọn cho bài toán dự đoán là cố gắng giảm thiểu tối đa lỗi trên tập dữ liệu huấn luyện nhƣng nó lại làm cho lỗi trên tập dữ liệu kiểm tra tăng lên Từ đó mô hình của chúng ta sẽ tìm các tham số phù hợp sao cho cực tiểu hóa hàm lỗi nhƣ sau:
THỬ NGHIỆM VÀ ĐÁNH GIÁ HỒI QUI TUYẾN TÍNH
Tổng quan về python
Python là một ngôn ngữ lập trình kịch bản (scripting language) do Guido van
Rossum tạo ra năm 1990 Đến nay thì cộng đồng người sử dụng ngôn ngữ này rất đông, nếu so sánh từ bảng xếp hạng các ngôn ngữ năm 2016 thì Python đứng tứ 3 trong top 10 ngôn ngữ phổ biến nhất
Hình 5: Cộng đồng người sử dụng Python
Và Python luôn đƣợc biết đến với các đặc điểm sau đây:
Cú pháp rất tường minh, dễ đọc
Các khả năng tự xét mạnh mẽ
Hướng đối tượng trực giác
Cách thể hiện tự nhiên mã thủ tục
Hoàn toàn mô-đun hóa, hỗ trợ các gói theo cấp bậc
Xử lý lỗi dựa theo ngoại lệ
Kiểu dữ liệu động ở mức rất cao
Các thƣ viện chuẩn và các mô-đun ngoài bao quát hầu nhƣ mọi việc
Phần mở rộng và mô-đun dễ dàng viết trong C, C++
Có thể nhúng trong ứng dụng nhƣ một giao diện kịch bản (scripting interface)
Python mạnh mẽ và thực hiện rất nhanh
Phython hỗ trợ hầu hết trên các hệ điều hành hiện nay, và cách cài đặt nó cũng rất đơn giản Tuy nhiên ở bài này chỉ cài đặt Python trên môi trường Windows Đầu tiên ta cần download bộ từ trang chủ của Ở đây chọn phiên bản mới nhất là phiên bản 3.6.1
Tiếp đó chạy file vừa tải về và cài đặt theo các bước như sau:
Hình 8: Đợi quá trình cài đặt
Hình 9: Màn hình báo thành công Để chắc chắn lại đã thành công hay chƣa mở cmd lên và gõ lệnh Python
Hình 10: Xuất hiện cửa số thì cài đặt thành công
3.1.3 Viết và thực thi một chương trình viết bằng Python
Có 2 cách chính để thực hiện một chương trình viết bằng Python
Cách 1: Biên dịch trực tiếp sau khi kết thúc lệnh Với cách này viết lệnh nào chương trình biên dịch sẽ thực hiện và hiển thị kết quả của lệnh đó Nếu đã sử dụng CMD của WINDOWS thì có thể hình dung: Ví dụ sau khi gõ lệnh ipconfig vào cửa sổ CMD và ấn ENTER thì kết quả hiển thị là IP của các interface trong máy xuất hiện
Cách 2: Nội dung của chương trình Python được viết trên file bằng bằng công cụ soạn thảo (ví dụ nhƣ Notepad++ hoặc Python Shell) và save file với đuôi mở rộng py hoặc py vào trong thƣ mục C:\Python27\ Sau đó biên dịch file này bằng lệnh python Ví dụ có file helloworld.py, em sẽ biên dịch nhƣ sau:
Sau đây em sẽ thực hiện chương trình Python bằng cả hai cách sau:
Cách 1 Viết đến đâu biên dịch (chạy và thực thi) đến đó:
Viết chương trình nhập vào dòng "Hello world" và hiển thị dòng này ra màn hình
Khởi động Python IDLE (Python GUI) trong Start
Hình 11: Các công cụ sau khi cài đặt xong Python
Sau khi khởi động sẽ có giao diện nhƣ hình, chú ý và quan sát các tab trong cửa sổ này bởi vì ở phần sau sẽ có một cửa sổ tương tự nhưng có các tab khác nhau Chú ý dấu ">>>" đƣợc gọi là dấu nhắc lệnh, có ý nghĩa thông báo cho biết là hãy bắt đầu gõ từ đây
Hình 12: Giao diện của IDLE PYTHON
Trong cửa sổ này hãy gõ dòng >>>print “hello word”
Hình 13: Kết quả mành hình sẽ hiện dòng “ Hello World”
Và kết quả màn hình sẽ hiện dòng "Hello world" Đây chính là một bài tập kinh điển mà 99,99% các lập trình viên phải làm khi mà họ bắt đầu học về một ngôn ngữ
Nhƣ vậy là chúng ta đã hoàn thành bài tập bằng Cách 1 đã đƣợc đề cập trong phần trên Sau đây sẽ là cách thứ 2 để làm bài tập này
Cách 2: Thực hiện chương trình viết bằng Python sau khi đã lưu thành file
(Cách này phổ thông hơn và đƣợc khuyên dùng Sau khi thành thạo sẽ sử dụng các Editor chuyên dụng hơn)
Khởi động Python IDLE (Python GUI) nhƣ Cách 1 nhƣng khoan hãy gõ lệnh Tại cửa sổ này ấn tổ hợp phím Ctrl + N hoặc vào tab FileNew File
Hình 14: Vào tab File => New Windows
Sẽ xuất hiện cửa sổ như bên dưới, tới đây hãy quan sát các tab, sẽ nhìn thấy có tab Run
Tại cửa sổ này bắt đầu gõ:>>>print “hello word”
Sau khi kết thúc dòng trên ấn tổ hợp phím Ctrl+S (hoặc chọn tab FileSave để lưu lại thành file Khi lưu chọn đuôi mở rộng là py Ở đây sẽ lưu file với tên là "helloworld.py" vào thƣ mục cài đặt Python mặc định (C:\Python27) Sau này có thể lưu vào các thư mục khác sao cho việc quản lý là thuận tiện nhất
Sau khi lưu xong, a bắt đầu thực thi file này Có 2 cách để thực thi trên Windows Cách 2.1: Thực thi chương trình Python bằng tiện ích mà IDLE Python cung cấp Trong cửa sổ quan sát có tab Run, sau khi viết xong click vào RunRun Mode hoặc ấn phím tắt F5 để thực thi biên dịch và thực thi chương trình
Kết quả của chương trình sẽ hiển thị tại cửa sổ IDLE Python Shell
Tới đây là đã thực hiện thành công chương trình đầu tiên bằng cách 2.1, sau đây sẽ giới thiệu biên dịch và thực thi chương trình viết bằng Python qua cách 2.2 Cách 2.2: Biên dịch và thực thi chương trình Python bằng dòng lệnh (CMD trong Windows)
Thực ra cách này không khác cách 2.1 nhiều Để thực hiện cách 2.2 chúng ta có thể sử dụng lại chương trình helloworld.py trong cách 2.1 đã thực hiện hoặc sử dụng Notepad++ để viết Cú pháp và nội dung giống của chương trình giống như trong cách 2.1
Và để thực thi chương trình này, hãy mở cửa sổ CMD (Ấn tổ hợp phím (phím cửa sổ))
+ R rồi gõ CMD để thực hiện các bước sau:
Di chuyển về thư mục chứa code (file vừa lưu) bằng lệnh CD
Gọi chương trình Python và thực thi chương trình vừa viết và kết thức bằng ENTER
Kết quả sẽ hiện thị ra dòng Hello World trong cửa sổ CMD
Dưới là hình minh họa cách 2.2
Giới thiệu bài toán
Bây giờ ta cần xây dụng một tập dữ liệu gồm các thuộc tính của bất động sản và giá của chúng
Các thuộc tính nhƣ: số phòng ngủ, số phòng tắm, vị trí địa lý, năm xây dụng…và giá bán
Giờ chúng ta muốn tìm một công thức nào đó để từ một bất động sản bất kì, cho biết một vài thông tin nhƣ số phòng ngủ, vị trí địa lý…có thể tính toán đƣợc giá bán
3.2.2 Hướng dẫn giải quyết vấn đề
Với lý thuyết đã trình bày, bài toán này chúng ta sẽ ứng dụng mô hình hồi quy Bản chất của hồi quy chính là tìm ra mối quan hệ nào đó giữa biến phụ thuộc (dependence) Y (ví dụ nhƣ kết quả xổ số hay giá nhà) và một hay nhiều biến độc lập X (independence) ví dụ nhƣ các thuộc tính của ngôi nhà chẳng hạn
3.2.3 Cơ sở dữ liệu Đầu tiên, ta xây dụng file CSV chứa thông tin về các bất động sản nhƣ số phòng ngủ, số phòng tắm, năm xây dụng… và giá bán tương ứng của nó Chúng ta sẽ áp dụng lý thuyết về mô hình hồi quy để từ tập dữ liệu này, xây dựng một hàm sử dụng để định giá cho một bất động sản bất kì trong tương lai
Trong bài toán này, ta lựa chọn các thuộc tính của một căn nhà nhƣ: Số giường ngủ, Năm xây dựng, Kinh độ, Số phòng,…, Giá bán Sau khi tham khảo số liệu của các nghiên cứu đã có; sau đây là bộ cơ sở dữ liệu đƣợc xây dựng cho máy có thể học.
Cài đặt ứng dụng
3.3.1 Đọc dữ liệu từ file CSV
Trước tiên cần cài đặt Python và các thư viện cần thiết Như phiên bản hiện tại đang sử dụng là Python2.7 và Scikit-learn 0.18.1 Sau k hi cài đặt các môi trường cần thiết, viết một hàm để load dữ liệu từ file CSV bên trên nhƣ sau:
Hình 17: Đọc dữ liệu từ cơ sở dữ liệu
3.3.2 Lựa chọn thuộc tính và phân chia tập dữ liệu mẫu
Chúng ta sẽ phân chia tập dữ liệu mẫu thành 2 tập con là tập dữ liệu huấn luyện(training) và tập dữ liệu kiểm tra (test) Việc này sử dụng tư tưởng của kiểm tra chéo (cross validation) Ngoài ra, trong tập dữ liệu mẫu có rất nhiều thuộc tính có ý nghĩa và có thể khai thác thêm, ví dụ nhƣ từ kinh độ và vĩ độ chúng ta có thể tìm thêm các thuộc tính nhƣ khoảng cách trung tâm thành phố, số bệnh viện lân cận… Tuy nhiên để cho đơn giản, ta lựa chọn một cách chủ quan một số thuộc tính mà mình cho rằng có thể ảnh hưởng đến giá của bất động sản như số phòng ngủ, số phòng tắm, năm xây dựng và diện tích…
Hình 18: Lựa chọn thuộc tính và phân chia dữ liệu
3.3.3 Áp dụng mô hình hồi quy tuyến tính
Về cơ bản, việc huấn luyện theo mô hình tuyến tính bản chất là đi tìm các giá trị m và b sao cho cực tiểu hóa hàm lỗi sau:
𝑏 Chúng ta sử dụng gói thƣ viện Scikit-learn của Python để làm việc này nhƣ sau:
Hình 19: Mô hình hồi quy tuyến tính
Hàm trên chạy mô hình hồi quy tuyến tính trên tập dữ liệu huấn luyện gồm X_train đại diện cho tập các thuộc tính của bất động sản và Y_train đại diện cho giá của nhà Hàm trả về một giá trị đánh giá điểm của mô hình khi chạy trên tập kiểm tra Về cơ bản, chúng ta có thể sử dụng điểm này để so sánh giữa các phương pháp hồi quy khác sẽ trình bày ở phần tiếp theo Có nghĩa là điểm càng tiến gần đến 1 thì mô hình của chúng ta càng tốt
3.3.4 Áp dụng mô hình hồi quy LASSO dạng chuẩn L1
Các dạng chuẩn (Regularization) thường được đưa vào các mô hình để nhằm giảm thiểu hiện tƣợng over-fitting Nói về overfitting là cả một câu chuyện dài Chúng ta có thể hiểu nôm na nhƣ sau, một mô hình của chúng ta lựa chọn đang cố gắng giảm thiểu tối đa lỗi trên tập dữ liệu huấn luyện nhƣng nó lại làm cho lỗi trên tập dữ liệu kiểm tra tăng lên Và LASSO ra đời để hạn chế điều đó Nó bổ sung thêm vào hàm lỗi của mô hình tuyến tính một đại lƣợng phạt lỗi lamda Từ đó mô hình của chúng ta sẽ tìm các tham số phù hợp sao cho cực tiểu hóa hàm lỗi nhƣ sau:
Chúng ta sẽ viết một hàm tính toán điểm của phương pháp LASSO như sau:
Hình 20: Mô hình hồi quy LASSO dạng chuẩn L1
3.3.5 Đánh giá mô hình hồi quy vừa áp dụng
Trong hàm main chúng ta chạy và so sánh hai hàm nhƣ sau:
Hình 21: Đánh giá 3 mô hình hồi quy
Kết quả chạy nhƣ sau:
Nếu dữ liệu và số lƣợng thuộc tính đủ lớn, có thể quan sát rõ tốc độ hội tụ của phương pháp Lasso nhanh hơn phương pháp hồi quy tuyến tính, nhờ vào cơ chế tính đạo hàm cho từng thuộc tính và tính đạo hàm cùng lúc cho các thuộc tính Cuối cùng, việc lựa chọn mô hình đƣợc dựa vào chỉ số đánh giá mô hình Mô hình càng tốt thì model score càng gần đến 1.0
Có thể thấy đƣợc hiệu quả của mô hình hồi quy có nâng bậc tốt hơn một chút so với mô hình tuyết tính đơn thuần Tuy nhiên không có một phương pháp nào là đúng cho mọi tập dữ liệu Phương pháp nâng bậc cho chúng ta thấy được sự ảnh hưởng của các thuộc tính kết hợp tuy nhiên nó cũng có những nhược điểm của nó
Qua việc nâng bậc của mô hình hồi quy có thể tìm ra đƣợc sự phụ thuộc kết hợp giữa các Feature đến giá của bất động sản Tuy nhiên nếu tập dữ liệu quá nhỏ so với số lƣợng Feature thì khi nâng bậc sẽ dẫn đến bài toán tối ƣu với số chiều cao và làm giảm độ chính xác của mô hình Điều đó có thấy việc lựa chọn khéo léo các Feature là vô cùng cần thiết trước khi áp dụng bất kỳ mô hình nào