Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 30 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
30
Dung lượng
3,44 MB
Nội dung
TRƯỜNG ĐẠI HỌC ĐIỆN LỰC KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO CHUYÊN ĐỀ HỌC PHẦN MÔN NHẬP MÔN HỌC MÁY ĐỀ TI: DỰ ĐOÁN GIÁ NH BẰNG LINE REGRESSION Sinh viên thực : NGÔ ANH ĐỨC NGUYỄN TRUNG QUÂN Giảng viên hướng dẫn : Ths.ĐO NAM ANH Ngành : CÔNG NGHỆ THÔNG TIN Chuyên ngành Lớp : HỆ THỐNG THƯƠNG MẠI ĐIỆN TỬ : D15HTTMDT2 Khóa : 2020-2024 Hà Nội, tháng 12 năm 2022 PHIẾU CHẤM ĐIỂM ST T Họ tên sinh viên NGÔ ANH ĐỨC NGUYỄN TRUNG QUÂN Họ tên giảng viên Giảng viên chấm 1: Giảng viên chấm 2: Nội dung thực Chữ ký Điể m Ghi Chữ ký MỤC LỤC LỜI MỞ ĐẦU .1 CHƯƠNG 1: GIỚI THIỆU VỀ HỌC MÁY VÀ THUẬT TOÁN HỒI QUY TUYẾN TÍNH TRONG HỌC MÁY 1.1 Giới thiệu học máy 1.1.1 Khái niệm học máy 1.1.2 Ứng dụng học máy .4 1.2 Thuật tốn hồi quy tuyến tính học máy .5 1.2.2 Dạng Linear Regression 1.2.3 Hàm mát 1.2.4 Tìm nghiệm mơ hình hồi quy tuyến tính 1.2.5 Mức độ lỗi mơ hình hồi quy tuyến tính CHƯƠNG ỨNG DỤNG THUẬT TOÁN .9 2.1 Giới thiệu toán 2.2 Giải toán 10 2.2.1 Phân tích liệu dataset 10 2.2.2 Xây dựng mơ hình dự đốn thư viện Scikit – Learn 15 2.2.2.1 Phân tách liệu thành train test .15 2.2.2.2 Tạo model training Linear Regression .17 2.2.3 Hệ số coeff 18 2.2.4 Dự đốn đánh giá mơ hình 19 KẾT LUẬN 25 MỤC LỤC HÌNH ẢNH Hình import thư viện Hình 2.2 load liệu từ file csv Hình 2.3 tổng quát dataset .6 Hình 2.4 thống kê liệu describe() Hình 2.5 Phân bố Seaborn Hình 2.6 sử dụng histplot() để vẽ biểu đồ giá nhà Hình 2.7 đồ nhiệt để kiểm tra độ tương quan cột 10 Hình 2.8 cần tách liệu thành mảng X chứa tính cần đào tạo mảng y với biến mục tiêu 10 Hình 2.9 tạo mơ hình hồi quy 11 Hình 2.10 Tạo model training Linear Regression 11 Hình 2.11 train liệu phương thức fit() 11 Hình 2.12 hệ số Coeff .12 Hình 2.13 dùng phương thức predict() truyền đối số X_test 13 Hình 2.14 biểu đồ phân tán .13 Hình 2.15 chênh lệch giá dự đoán giá trị thực tế ban đầu .14 Hình 2.16 Mean Absolute Error 15 Hình 2.17 Mean Squared Error 15 Hình 2.18 Root Mean Squared Error 15 Hình 2.19 import metrics từ sklearn lấy tất số hồi quy .16 LỜI MỞ ĐẦU Công nghệ ngày phổ biến khơng phủ nhận tầm quan trọng hiệu mà đem lại cho sống Bất kỳ lĩnh vực nào, góp mặt trí tuệ nhân tạo giúp người làm việc hồn thành tốt cơng việc Và gần đây, thuật ngữ “machine learning” nhiều người quan tâm.Thay phải code phần mềm với cách thức thủ công theo hướng dẫn cụ thể nhằm hoàn thành nhiệm vụ đề máy tự “học hỏi” cách sử dụng lượng lớn liệu thuật toán cho phép thực tác vụ Đây lĩnh vực khoa học không mới, cho thấy lĩnh vực trí tuệ nhân tạo ngày phát triển tiến xa tương lai Đồng thời, thời điểm xem lĩnh vực “nóng” dành nhiều mối quan tâm để phát triển cách mạnh mẽ, bùng nổ Hiện nay, việc quan tâm machine learning ngày tăng lên nhờ có machine learning giúp gia tăng dung lượng lưu trữ loại liệu sẵn, việc xử lý tính tốn có chi phí thấp hiệu nhiều Những điều hiểu thực tự động, nhanh chóng để tạo mơ hình cho phép phân tích liệu có quy mơ lớn phức tạp đồng thời đưa kết cách nhanh xác Chính hiệu cơng việc lợi ích vượt bậc mà đem lại cho khiến machine learning ngày trọng quan tâm nhiều Vì chúng em định chọn đề tài: “Dự đoán giá nhà Linear-Regression” để làm báo cáo Chúng em xin chân thành gửi lời cảm ơn tới thầy cô giáo Trường Đại học Điện Lực nói chung thầy giáo Khoa Cơng nghệ thơng tin nói riêng tận tình giảng dạy, truyền đạt cho chúng em kiến thức kinh nghiệm quý báu suốt trình học Đặc biệt, em gửi lời cảm ơn đến thầy Đào Nam Anh tận tình theo sát giúp đỡ, trực tiếp bảo, hướng dẫn suốt trình nghiên cứu học tập chúng em CHƯƠNG 1: GIỚI THIỆU VỀ HỌC MÁY V THUẬT TOÁN HỒI QUY TUYẾN TÍNH TRONG HỌC MÁY 1.1 Giới thiệu học máy 1.1.1 Khái niệm học máy Học máy (Machine learning) lĩnh vực Trí tuệ nhân tạo (Artificial Intelligence) sử dụng thuật toán cho phép máy tính học từ liệu để thực cơng việc thay lập trình cách rõ ràng, cung cấp cho hệ thống khả tự động học hỏi cải thiện hiệu suất, độ xác dựa kinh nghiệm từ liệu đầu vào Học máy tập trung vào việc phát triển phần mềm, chương trình máy tính truy cập vào liệu tận dụng nguồn liệu để tự học Học máy địi hỏi đánh giá người việc tìm hiểu liệu sở lựa chọn kĩ thuật phù hợp để phân tích liệu Đồng thời, trước sử dụng, liệu phải sạch, khơng có sai lệch khơng có liệu giả Các mơ hình học máy yêu cầu lượng liệu đủ lớn để "huấn luyện" đánh giá mơ hình Trước đây, thuật toán học máy thiếu quyền truy cập vào lượng lớn liệu cần thiết để mơ hình hóa mối quan hệ liệu Sự tăng trưởng liệu lớn (big data) cung cấp thuật toán học máy với đủ liệu để cải thiện độ xác mơ hình dự đoán 1.1.2 Ứng dụng học máy Nhiều hoạt động hàng ngày trợ giúp thuật toán machine learning, bao gồm: Trong y tế: xác định bệnh lý người bệnh dựa liệu lịch sử bệnh nhân có bệnh lý có đặc điểm chữa khỏi trước đây, hay xác định loại thuốc phù hợp Trong lĩnh vực ngân hàng: xác định khả khách hàng chậm trả khoản vay rủi ro tín dụng nợ xấu dựa phân tích Credit score; xác định xem liệu giao dịch có hành vi phạm tội, lừa đảo hay khơng •Trong giáo dục: phân loại học sinh theo hoàn cảnh, học lực để xem xem cần hỗ trợ cho học sinh ví dụ hồn cảnh sống khó khăn học lực lại tốt Trong thương mại điện tử: phân loại khách hàng theo sở thích cụ thể để hỗ trợ personalized marketing hay xây dựng hệ thống khuyến nghị, dựa liệu từ website, social media 1.2 Thuật tốn hồi quy tuyến tính học máy 1.2.1 Khái niệm Hồi quy tuyến tính la phương pháp thống kê để hồi quy liệu với biến phụ thuộc có giá trị liên tục biến độc lập có hai giá trị liên tục giá trị phân loại Hồi quy tuyến tính hai dạng lớn học có giám sát (supervised learning) dựa tập liệu mẫu Nói cách khác "Hồi quy tuyến tính" phương pháp để dự đoán biến phụ thuộc (Y) dựa giá trị biến độc lập (X) Nó sử dụng cho trường hợp muốn dự đốn số lượng liên tục Ví dụ, dự đốn giao thơng cửa hàng bán lẻ, dự đoán thời gian người dùng dừng lại trang số trang truy cập vào website v.v 1.2.2 Dạng Linear Regression Hồi quy tuyến tính có phương trình đạng : F(x) = w0 + w1x1 + w2x2 + … + wnxn (1) Trong đó, w1, w2, wn, w0 số, w0 gọi bias hay sai số Mối quan hệ y f(x) bên mối quan hệ tuyến tính (linear) Bài Avg Area Income: Thu nhập trung bình khu vực nhà bán Avg Area House Age: Trung bình tuổi ngơi nhà bán Avg Area Number of Rooms: Trung bình diện tích phịng Avg Area Number of Bedrooms: Trung bình diện tích phòng ngủ Area Population: Dân số khu vực bán nhà Price: Giá nhà bán Address: Địa ngơi nhà bán Để xem tổng quát dataset ta sử dụng 11 Hình 2.3 tổng quát dataset Dựa liệu ta có 5000 dịng tương ứng với 5000 nhà bán Lượng liệu đủ để xây dựng mơ hình học máy Ngồi ta cịn thống kê liệu describe(): Hình 2.4 thống kê liệu describe() Nhờ hàm describe() giúp trả dataframe với số hàng hiển thị thông số số hàng, giá trị trung bình, độ lệch chuẩn, min, max, tỉ lệ phần tram cột Phân bố Seaborn ta thấy tương quan liệu 12 Hình 2.5 Phân bố Seaborn Về tương quan cột, ta thấy Cột Price có kiểu phân tán theo mơ hình tuyến tính, dựa thơng tin này, ta xây dựng mơ hình máy học hồi quy 13 tuyến tính để dự đốn dựa giá trị cột khác, trừ cột địa (Address) nhà Bây sử dụng histplot() để vẽ biểu đồ giá nhà : Hình 2.6 sử dụng histplot() để vẽ biểu đồ giá nhà Ta thấy giá nhà bán thường tập trung mức giá 0.5 đến 2.0, nhiều 0.8 đến 1.7 Chúng ta sử dụng đồ nhiệt để kiểm tra độ tương quan cột: 14 Hình 2.7 đồ nhiệt để kiểm tra độ tương quan cột Qua đó, ta phân tích cột có giá trị tương quan như với Về bản, cột giá (price) có chút tương quan với cột cịn lại nhiều nhất, chứng tỏ yếu tố có tác động nhiều lên giá nhà 2.2.2 Xây dựng mơ hình dự đốn thư viện Scikit – Learn 2.2.2.1 Phân tách liệu thành train test Bây bắt đầu đào tạo mơ hình hồi quy Trước tiên, cần tách liệu thành mảng X chứa tính cần đào 15 tạo (các biến độc lập) mảng y với biến mục tiêu (biến phụ thuộc), trường hợp cột Giá Chúng ta loại bỏ cột Địa có thơng tin văn mà mơ hình hồi quy tuyến tính khơng thể sử dụng Hình 2.8 tách liệu thành mảng X chứa tính cần đào tạo mảng y với biến mục tiêu Giờ ta có hai biến x, y theo yêu cầu mơ hình, hai biến dựa liệu dataset ta có để đào tạo mơ hình Giờ ta tách biến thành giá trị train test, hai giá trị gặp sử dụng qua trình xây dựng mơ hình máy học Đầu tiên, ta từ thư viện Scikti – Learn model_selection ta import train_test_split, phương thức giúp ta tạo mơ hình hồi quy Hình 2.9 tạo mơ hình hồi quy 16 Sau ta tạo biến, gồm X_train, y_train X_test, y_test Với đối số truyền vào giá trị X, y ta lấy từ liệu bên trên, test_size trả cho ta phần trăm liệu chia, ví dụ 0.4 tương ứng với liệu chia thành 40% giá trị test, lại liệu train random_state số tương ứng để đảm bảo lần ta chạy lại mơ hình, giá trị phân tách ngẫu nhiên nhận giống nhau, bạn cho số 2.2.2.2 Tạo model training Linear Regression Từ thư viện Scikit – Learn , linear_model import module LinearRegression Hình 2.10 Tạo model training Linear Regression Tiến hành train liệu phương thức fit() Hình 2.11 train liệu phương thức fit() 17 Nếu kết trả hàm LinearRegression(), chứng tỏ mơ hình train xong 2.2.3 Hệ số coeff Để đánh giá sực tác động tính ( biến độc lập) lên kết đầu (biến phụ thuộc), ta sử dụng hệ số Coeff Hệ số cho ta biết giá trị biến độc lập thay đổi đơn vị, giá trị đầu thay đổi Hình 2.12 hệ số Coeff Diễn giải hệ số trên: Giữ tất tính khác khơng thay đổi, tăng đơn vị Cột: Avg Area Income tăng $ 21, 52 giá nhà 18 Giữ tất tính khác khơng thay đổi, tăng đơn vị Cột: Avg Area House Age tăng $164883.28 giá nhà Giữ tất tính khác không thay đổi, tăng đơn vị Cột: Avg Area Number of Rooms tăng $122368.67 giá nhà Giữ tất tính khác không thay đổi, tăng đơn vị Cột: Avg Area Number of Bedrooms tăng $2233.80 giá nhà Giữ tất tính khác không thay đổi, tăng đơn vị Cột: Area Population tăng $15.15 giá nhà 2.2.4 Dự đốn đánh giá mơ hình Để dự đốn kiểm tra mơ hình, ta sử dụng liệu test bên mà ta tách Trong đó, X_test tính mà mơ hình chưa biết, y_test kết biết trước để ta so sánh với kết dự đoán từ X_test Lấy kết dự đoán từ X_test, ta dùng phương thức predict() truyền đối số X_test vào 19 Hình 2.13 dùng phương thức predict() truyền đối số X_test Kết dự đoán bên mảng numpy chứa kết dự đoán từ giá trị X_test, để kiểm tra kết dự đoán (predictions) kết ban đầu (y_test) xem mơ hình ta trực quan quan sát biểu đồ phân tán (scatter) truyền vào giá trị vào để quan sát: 20 Hình 2.14 biểu đồ phân tán Trong biểu đồ phân tán trên, thấy liệu có dạng đường, có nghĩa mơ hình dự đốn tốt Để nhìn cách trực quan độ chênh lệch ta dùng vẽ đồ thị histplot() Seaborn tìm hiểu phân phối độ lệch Hình 2.15 chênh lệch giá dự đốn giá trị thực tế ban đầu Nhìn vào biểu đồ trên, bạn thấy giá trị chênh lệch giá dự đoán (predictions) giá trị thực tế ban đầu (y_test), phân bố tập trung 100.000 USD, chứng tỏ mơ hình có độ xác tương đối 21 cao hợp lý kết dự đốn kết ban đầu có chênh lêch thấp phần lớn dao động khoảng + (-) 10% Nhưng nhìn vào biểu đồ trên, khơng cho ta biết giá trị cụ thể mà dựa phán đoán trực quan tổng thể Bây giờ, ta tìm số liệu cụ thể để có nhìn xác dựa số liệu phân tích Ta dựa vào số đánh giá hồi quy Chúng ta có ba số đánh giá hồi quy để có số liệu xác: Mean Absolute Error (MAE): MAE phương pháp đo lường khác biệt (độ chênh lệch giá trị) hai biến liên tục Giả sử X Y hai biến liên tục thể kết dự đoán mơ hình kết thực tế, số dễ hiểu nhất, giá trị chênh lệch trung bình xác định cơng thức: Hình 2.16 Mean Absolute Error Mean Squared Error (MSE): giá trị trung bình bình phương sai số (Hàm mát), khác biệt giá trị mơ hình dự đốn gía 22 trị thực MSE gọi hàm rủi ro, tương ứng với giá trị kỳ vọng mát sai số bình phương mát bậc hai số phổ biến số MAE bên trên, xác định cơng thức: Hình 2.17 Mean Squared Error Root Mean Squared Error (RMSE): bậc hai giá trị trung bình sai số bình phương (MSE) Thông thường, ta thường dùng số để xác định giá trị chênh lệch trung bình giá dự đoán giá trị test ban đầu, xác định cơng thức: Hình 2.18 Root Mean Squared Error Đầu tiên, import metrics từ sklearn lấy tất số hồi quy nói 23 Hình 2.19 import metrics từ sklearn lấy tất số hồi quy Ta thấy, sử dụng số RMSE, cho thấy giá trị chênh lệch trung bình giá dự đốn từ mơ hình giá trị thực tế 102.278 USD 24 KẾT LUẬN Kết đạt được: chúng em cài đặt thuật toán sử dụng dụng thư viện scikit-learn q trình học tập Nhưng bên cạnh thuật tốn cịn ưu nhược điểm như: Ưu điểm: Nhanh chóng để mơ hình hóa đặc biệt hữu ích mối quan hệ mơ hình hóa khơng q phức tạp bạn khơng có nhiều liệu Hồi quy tuyến tính đơn giản để hiểu, có giá trị cho định kinh doanh Nhược điểm: Đối với liệu phi tuyến tính, hồi quy đa thức khó khăn để thiết kế, người ta phải có số thông tin cấu trúc liệu mối quan hệ biến tính Do thời gian kiến thức có hạn nên báo cáo chúng em cịn nhiều sai sót, mong thầy góp ý giúp chúng em hồn thiện 25