Để dự đoán được những đều tương tự ta dùng HỒI QUY TUYẾN TÍNH để đưa ra một dự đoán có khả năng chính xác cao.Mục tiêu của đề tài Hiểu rõ được thuật toán hồi quy tuyến tính và có thể á
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THỰC PHẨM TP HCM
KHOA CÔNG NGHỆ THÔNG TIN
BÀI BÁO CÁO
TP HỒ CHÍ MINH, 2021
Tìm hiểu phương pháp hồi quy tuyến tính
và ứng dụng cho bài toán dự báo
GIẢNG VIÊN HƯỚNG DẪN: HUỲNH THỊ CHÂU LAN
SINH VIÊN THỰC HIỆN: 2
Trang 2TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THỰC PHẨM TP HCM
KHOA CÔNG NGHỆ THÔNG TIN
BÀI BÁO CÁO
Tìm hiểu phương pháp hồi quy tuyến tính
và ứng dụng cho bài toán dự báo
GIẢNG VIÊN HƯỚNG DẪN: HUỲNH THỊ CHÂU LAN
SINH VIÊN THỰC HIỆN: 2
NGUYỄN CÔNG TRUNG 2033180121
PHẠM ĐOÀN MINH HẬU 2033180133
Trang 3BẢN NHẬN XÉT CỦA GVHD
Trang này đính kèm bản nhận xét của GVHD
Trang 4LỜI CAM ĐOAN
Chúng tôi cam đoan rằng bài báo cáo đồ án này là do chính chúng tôi thực hiện dưới
sự hướng dẫn của cô Lan Các số liệu và kết quả phân tích trong báo cáo là trung thực
Trang 52
Trang 6LỜI CẢM ƠN
Để hoàn thành đồ án này, trước hết chúng em xin gửi lời cảm ơn chân thành đến quý thầy, cô trong khoa Công nghệ Thông Tin trường Đại học Công nghiệp thực phẩm Tp Hồ Chí Minh đã truyền đạt kiến thức và kinh nghiệm quý báu cho chúng em trong suốt quá trình học tập và rèn luyện tại trường
Trong quá trình thực hiện đề tài chúng em đã gặp không ít khó khăn Nhưng với sự động viên giúp đỡ của quý thầy cô, người thân và bạn bè, chúng em cũng đã hoàn thành tốt đề tài nghiên cứu của mình và có được những kinh nghiệm, kiến thức hữu ích cho bản thân
Đặc biệt chúng em xin gởi lời cảm ơn sâu sắc đến cô Huỳnh Thị Châu Lan, người đã trực tiếp hướng dẫn và tận tình giúp đỡ chúng em trong suốt thời gian thực hiện đề tài
Dù đã cố gắng nhưng không thể tránh khỏi những sai sót Rất mong sự thông cảm và đóng góp ý kiến của quý thầy cô và các bạn để đồ án được hoàn thiện
Cuối cùng, xin kính chúc quý thầy cô và các bạn sức khỏe, luôn thành công trong công việc và cuộc sống
Chúng em xin chân thành cảm ơn!
Trang 7MỤC LỤ
BẢN NHẬN XÉT CỦA GVHD iii
LỜI CAM ĐOAN i
TÓM TẮT ĐỒ ÁN ii
LỜI CẢM ƠN iii
MỤC LỤC iv
DANH MỤC HÌNH ẢNH v
DANH MỤC TỪ VIẾT TẮT 1
MỞ ĐẦU 2
Đặt vấn đề 2
Mục tiêu của đề tài 2
CHƯƠNG 1 TỔNG QUAN 3
1.1 Tổng quan về hồi quy tuyến tính 3
1.1.1 Khái niệm 3
1.1.2 Bản chất của thuật toán 3
1.2 Phân loại hồi quy tuyến tính 4
1.2.1 Hồi quy tuyến tính đơn giản ( simple linear regression ) 4
1.2.2 Hồi quy tuyến tính đa biến (linear regression multiple features) 5
CHƯƠNG 2 VẼ ĐƯỜNG THẲNG MÔ HÌNH HỒI QUY TUYẾN TÍNH 6
2.1 Vẽ đường hồi quy 6
2.2 Dùng kỹ thuật Gradient Descent 7
CHƯƠNG 3 THỰC NGHIỆM 11
3.1 Yêu cầu 11
3.2 Thực Hiện Trên Python 11
3.3 Tiến hành 11
3.4 Sử dụng SPSS để dự đoán 14
KẾT LUẬN 14
TÀI LIỆU THAM KHẢO 15
4
Trang 8DANH MỤC HÌNH ẢNH
Hình 1: Ví dụ hồi quy tuyến tính 3
Hình 2: Bản chất hồi quy tuyến tính 3
Hình 3: Sơ đồ biểu diễn các điểm (x i ,y i ) 4
Hình 4: Mô hình 1 biến 4
Hình 5: Tập dữ liệu 6
Hình 6: Mô hình vẽ tìm đường thẳng hồi quy 7
Hình 7 Chọn α trên j(α)’ 8
Hình 8 Với giá trị learning rate cao 9
Hình 9 Với giá trị learning rate quá bé 9
Hình 10 Tỷ lệ hàm lỗi và số lần lặp 10
Hình 11 Mỗi α là một đường thẳng dự đoán mới 10
Hình 12: Cài các thư viện cho python 11
Hình 13: Đọc dữ liệu từ file 11
Hình 14: Lệnh biễu diễn các số liệu 12
Hình 15: Biểu đồ thể hiện các giá trị của dữ liệu 12
Hình 16: Lấy ra dữ liệu cần tính 12
Hình 17: Tìm hệ số 13
Hình 18: Công thức đường thẳng cần tìm 13
Hình 19: Kết quả dùng đường hồi quy và kết quả thực 13
Hình 20: Chỉ số MAPE, RMSE và tỷ lệ dự đoán chính xác 13
Hình 21: Sử dụng SPSS 14
Trang 9DANH MỤC TỪ VIẾT TẮT
MAPE (Mean Absolute Percent Error): Sai số tương đối trung bìnhRMSE(Root Mean Squared Error): Root Mean Squared Error
1
Trang 10y khoa có thể dự đoán một bệnh nhân khi có chiều cao và cân nặng sẽ bị tiểu đường hay không Đây không phải là sứ “đoán mò” mà sự ra quyết định có hay không mang tính khoa học và có logic Để dự đoán được những đều tương tự ta dùng HỒI QUY TUYẾN TÍNH để đưa ra một dự đoán có khả năng chính xác cao.
Mục tiêu của đề tài
Hiểu rõ được thuật toán hồi quy tuyến tính và có thể áp dụng dự đoán một vài bài toán hiệu quả Với tỷ lệ chính xác hơn 80%
Trang 11CHƯƠNG 1 TỔNG QUAN
1.1 Tổng quan về hồi quy tuyến tính
1.1.1 Khái niệm
Hồi quy tuyến tính ( linear regression) là một thuật toán có giám sát Nghĩa là từ
dữ liệu đầu vào ta sẽ cho ra một dữ liệu có liên quan đến dữ liệu đầu ra
Mục tiêu của giải thuật hồi quy tuyến tính là dự đoán giá trị của một hoặc nhiều biến mục tiêu liên tục (continuous target variable)
o Ví dụ : Dự đoán bệnh của bệnh nhân dựa vào thông tin chiều cao, cân nặng, tuổi
Hình 1: Ví dụ hồi quy tuyến tính
1.1.2 Bản chất của thuật toán
Về cơ bản thì ta sẽ có một tập huấn luyện chứa các cặp (xi,yi) tương ứng và nhiệm vụ
của ta là phải tìm giá trị y ứng với một đầu x mới vào Để làm điều này ta cần tìm
được quan hệ giữa (xi,yi) để từ đó đưa ra được dự đoán Hay nói cách trừu tượng hơn
là ta cần vẽ được một đường quan hệ thể hiện mối quan hệ trong tập dữ liệu
3
Trang 12Hình 2: Bản chất hồi quy tuyến tính
1.2 Phân loại hồi quy tuyến tính
Hồi quy tuyến tính được chia làm 2 dạng:
1 Hồi quy tuyến tính đơn giản ( 1 biến)
2 Hồi quy tuyến tính đa biến
1.2.1 Hồi quy tuyến tính đơn giản ( simple linear regression )
Ở dạng này ta hiểu sẽ có một biết x cho ra một biến y tương ứng Tương tự
như trong không gian 2 chiều oxy
Ví Dụ: ta có dữ liệu markerting tính ra sales Ở đây chỉ có 1 biến là marketing
Hình 3: Sơ đồ biểu diễn các điểm (x i ,y i )
Mô hình trên ta sẽ đi tìm một đường thưởng y=ax+b có liên quan đến các điểm
trên
Chúng ta không thể tìm một đường thẳng đi qua tất cả điểm trên Nhưng chúng
ta có thể tìm được một đường thẳng tương đối nằm giữa các điểm
Trang 13Hình 4: Mô hình 1 biến
Đường thẳng làm sao để gọi là tương đối chính xác Tìm dùng phương pháp bìnhphương sai nhỏ nhất hay gọi là hàm lỗi (cost) Tức từ một đường thẳng bất kỳ ta sẽtính tổng bình phương các điểm đến đường thẳng sao cho nhỏ nhất thì đường thẳng đóđược coi là đường tương đối chính xác Làm sao để vẽ được đường thẳng này?
Ta có 2 cách để vẻ:
1 Tính đạo hàm của tổng bình phương tìm giá trị sao cho tổng bình phương này lànhỏ nhất
2 Dùng công thức toán học để tìm ra đường thẳng
1.2.2 Hồi quy tuyến tính đa biến (linear regression multiple features)
Mô hình này tương tự như hồi quy tuyến tính đơn giản ( 1 biến) nhưng khác ở chỗ môhình này mở rộng hơn về biến
Ví dụ: ta sẽ có dữ liệu markting, chi phí nhân công, chi phí mặt bằng, … Tính
ra giá của một sản phẩm Ở đây biến là (markting, chi phí nhân công, chi phí mặt bằng,
….)
Do nhiều hơn 1 biến nên ta không thể dùng công thức y=ax+b ta sẽ phải dùng
công thức khác: y=a 1 x 1 +a 2 x 2 +a 3 x 3 +…+a 0
Cách thực hiện ta có thể áp dụng kỹ thuật Gradient Descent để tìm được đường
hồi quy tốt nhất Với cách này ta sẽ tìm min của hàm lỗi (cost).
CHƯƠNG 2 VẼ ĐƯỜNG THẲNG MÔ HÌNH HỒI QUY TUYẾN TÍNH
2.1 Vẽ đường hồi quy.
Ta có tập dữ liệu
5
Trang 15Hình 6: Mô hình vẽ tìm đường thẳng hồi quy
Tới đây ta dùng phương pháp nhân ma trận trong toàn học đẻ tìm 2 số a, b
2.2 Dùng kỹ thuật Gradient Descent
Để dùng kỹ thuật Gradient Descent ta cần nhắc lại hàm lỗi (cost) ở trên, thì
hàm lỗi này chính là khoảng cách giữ các điểm với đường thẳng ta cần dự đoán hàm
này càng gần giá trị min thì càng tốt vì khi đấy đường thẳng chúng ta tìm được sẽ là
đường thẳng tương đối chính xác
Để tìm được giá trị min của hàm lỗi ta cần đạo hàm hàm lỗi này và tìm giá trị
cực tiểu của hàm
Ta có hàm lỗi là J(α) =
H(x0 ) làm đường thằng cần dự đoán
m là tổng số feature
Đạo hàm hàm lỗi ta được J(α)’=
Lúc đầu ta sẽ chọn ngẫu nhiên số α thay vào J(α)’ để biết được tại thời
điểm α là hàm lỗi J(α) đang tăng hay giảm để các vòng lặp sau sẽ tăng hay giảm α.
7
Trang 16Hình 7 Chọn α trên j(α)’
Giá trị α tiếp theo sẽ phụ thuộc vào giá trị learning rate Learning rate là giá trị
chênh lệch giữa 2 α Nếu như giá trị learning rate quá lớn thì khi α giảm sẽ qua khỏi điểm cực trị sẽ không được giá trị như mong muốn
Trang 17Hình 8 Với giá trị learning rate cao
Nếu như giá trị learning rate quá bé thì vòng lặp sẽ hoạt rất lâu tốn rất nhiều tàinguyên của máy
Hình 9 Với giá trị learning rate quá bé
Cho nên chọn learning rate là rất quan trọng với một tập dữ liệu lớn
Sau mỗi lần train lại thì hàm lỗi sẽ giảm cho đến 1 giá trị gần bằng 0
9
Trang 18Hình 10 Tỷ lệ hàm lỗi và số lần lặp
Mỗi lặp là sẽ có 1 α mới suy ra sẽ có 1 đường thằng dự đoán mới Càng về sau
sẽ càng hội tụ lại
Trang 19CHƯƠNG 3 THỰC NGHIỆM
3.1 Yêu cầu
Dùng ngôn ngữ python để thực hiện bài toán Vì python hỗ trợ nhiều công cụ tính toán về ma trận Hoặc có thể dùng phần mềm SPSS có tích hợp công cụ tìm đường hồi quy
3.2 Thực Hiện Trên Python
Hình 3.1 Dữ liệu đầu vào
Ta cần có 1 dữ liệu đầu vào đủ lớn để có thể tìm ra được đường hồi quy chínhxác nhất
3.3 Tiến hành
Bước 1 Cài các thư viện cần thiết cho python
Hình 12: Cài các thư viện cho python
Bước 2 Đọc dữ liệu đầu vào bằng lệnh
pd.read_cgv("D:/Advertising.csv")
Hình 13: Đọc dữ liệu từ file
11
Trang 20Bước 3 Dùng các thư viện matplotlib.pyplot để hiển thị các giá trị sales lên đồ
thị
Hình 14: Lệnh biễu diễn các số liệu
Hình 15: Biểu đồ thể hiện các giá trị của dữ liệu
Bước 4 Lấy ra dữ liệu xi cần tính toán
Trang 21Bước 5 Dùng hàm linear regression trong thư viện skitlearn
Hình 17: Tìm hệ số
Hình 18: Công thức đường thẳng cần tìm
Bước 6 Kiểm tra kết quả từ đường hồi quy với kết quả thực
Hình 19: Kết quả dùng đường hồi quy và kết quả thực
Hình 20: Chỉ số MAPE, RMSE và tỷ lệ dự đoán chính xác
13
Trang 223.4 Sử dụng SPSS để dự đoán
Hình 21: Sử dụng SPSS
Các hệ số khá là tương đồng với thuật toán sử dụng ngôn ngữ python
KẾT LUẬN
Ngày nay xã hội phát triển, khi đưa ra một dự đoán ta đều phải có những căn
cứ Trí tuệ nhân tạo là một phần của tương lai để có thể dạy cho những công cụ AI đó
ta cần hiểu rõ hơn sâu hơn về hồi quy
Trang 23TÀI LIỆU THAM KHẢO
https://www.youtube.com/watch?
v=PNp1prcWbkM&list=PLDpRz2wA0qZzTcDLeXP5PSCfmQ96l9-Qr
https://machinelearningcoban.com/2016/12/28/linearregression/
15