Tải bản đầy đủ (.docx) (23 trang)

Bài báo cáo linear regression

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (858.48 KB, 23 trang )

TRƯỜ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

TP HỒ CHÍ MINH, 2021


TRƯỜ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 ĐỒN MINH HẬU

2033180133

TP HỒ CHÍ MINH, 2021




BẢN NHẬN XÉT CỦA GVHD
Trang này đính kèm bản nhận xét của GVHD


LỜ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.
TP Hồ Chính Minh, tháng 6 năm 2021
SINH VIÊN THỰC HIỆN
(Kí và ghi rõ họ tên)
Nguyễn Cơng Trung
Phạm Đồn Minh Hậu

1


TĨM TẮT ĐỒ ÁN
Mục đích của nghiên cứu này là hiểu rõ hơn về hồi quy tuyến tính trong
machine learning và ứng dụng vào các bài toán dự đoán.
Với đề tài này, chúng em đã tiến hành tìm hiểu các tài liệu về hồi quy tuyến
tính trong machine learning, các cơng thức tốn học để áp dụng trong hồi quy tuyến
tính và các bài tốn có thể sử dụng hồi quy tuyến tính.

2


LỜ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 hồn thiện.
Cuối cùng, xin kính chúc q 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!
TP Hồ Chí Minh, tháng 06, năm 2021
SINH VIÊN THỰC HIỆN
(Kí và ghi rõ họ tên)
Nguyễn Cơng Trung
Phạm Đồn Minh Hậu

3


MỤ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


DANH 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 (xi,yi).......................................................................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ự đố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ự đốn chính xác.......................................13
Hình 21: Sử dụng SPSS............................................................................................14

5


DANH MỤC TỪ VIẾT TẮT
MAPE (Mean Absolute Percent Error): Sai số tương đối trung bình
RMSE(Root Mean Squared Error): Root Mean Squared Error

1


MỞ ĐẦU

Đặt vấn đề
Bạn nghĩ rằng trên đời này thứ gì là ngẫu nhiên? Thật ra trên đời này khơng có
thứ gì là ngẫu nhiên cả chỉ là ta khơng biết nguyên nhân tại sao nó lại trở nên như vậy
và ta cho rằng nó là ngẩu nhiên. Bạn nghĩ rằng một thuật toán RanDom là ngẫu nhiên,
nếu như đã là thuật tốn thì sẽ khơng ngẫu nhiên chỉ là thuật tốn này ta khơng biết
nên ta nghĩ là ngẫu nhiên. Chúng ta nói về kinh tế một chút, bạn nghĩ giá của một
món đồ hay giá một bất động sản là sự ngẫu nhiên của người bán nói ra. Thế giới này
ln vận hành theo cách của nó chỉ là ta khơng biết. Thế cách vận hành là gì? Ở đây ta
thử xem xét một bệnh viện đã có danh sách chiều cao và cân nặng của hàng nghìn
bệnh nhân tiểu đường, từ dữ liệu đã có sẵn ở trên với người khơng có chun mơn về
y khoa có thể dự đố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ứ “đố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ự đốn có khả năng chính xác cao.
Mục tiêu của đề tài
Hiểu rõ được thuật tố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%.

2


CHƯƠ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 tố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ự đố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ự đố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 tố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ự đố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


Hì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 (xi,yi)

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.


4


Hì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ình
phươ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 tố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=a1x1+a2x2+a3x3+…+a0
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



Hình 5: Tập dữ liệu

Ta đã có các cặp (xi,yi) tương ứng bây giờ ta sẽ tìm đường y=ax+b. (a: hệ số
gốc, b: độ lệch)
Từ bảng trên ta sẽ được:
50=15a+b.1
60=20a+b.1
70=25a+b.1
80=30a+b.1
90=35a+b.1
100=40a+b.1
Ta thấy có 1 sự trùng lặp (50,60,70,80,90,100) = a.(15,25,25,30,35,40) + b.(1),
Có thể hiêu rằng (50,60,70,80,90,100) là tập hợp các yi , và .(15,25,25,30,35,40) là xi. xi
, yi và (1) là 3 vecto => yi=a.xi+b.1 a và b là 2 hằng số biểu diễn cho độ dài cho vecto
cũng là 2 hệ số ta cần phải tìm. Và xi và (1) là 2 vecto nên khi cộng 2 vecto ta sẽ cho ra
1 mặt phẳng gọi là mặt phẳng P. Để khoảng cách các điểm đến đường thẳng cần tìm là
nhỏ nhất ta cần phải tìm a,b sao cho khoảng cách vecto yi đến mặt phẳng P là nhỏ
nhất.

6


Hì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ự đố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


Hì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

8


Hình 8 Với giá trị learning rate cao

Nếu như giá trị learning rate q bé thì vịng lặp sẽ hoạt rất lâu tốn rất nhiều tài

nguyê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


Hì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ự đốn mới. Càng về sau
sẽ càng hội tụ lại.

Hình 11 Mỗi α là một đường thẳng dự đoán mới

10


CHƯƠNG 3. THỰC NGHIỆM
3.1. Yêu cầu
Dùng ngôn ngữ python để thực hiện bài tốn. Vì python hỗ trợ nhiều cơng cụ
tính tố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ính

xá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


Bướ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 tốn

Hình 16: Lấy ra dữ liệu cần tính

12


Bướ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


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

14


TÀI LIỆU THAM KHẢO
 />v=PNp1prcWbkM&list=PLDpRz2wA0qZzTcDLeXP5PSCfmQ96l9-Qr
 />

15



×