CHƯƠNG I: Thực hiện giảm kích thước dữ liệu và trực quan hóa dữ liệu Phân tích thành phần chính PCA xác định ra một tổ hợp tuyến tính của một số cácbiến trong bộ các biến ban đầu mà có s
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI ĐẠI HỌC KHOA HỌC TỰ NHIÊN
BÁO CÁO TỔNG QUAN
Dự báo doanh số bảo hiểm với các mô hình học máy
(Insurance purchasing forecasting with Machine Learning Model)
Nhóm thực hiện : Nhóm trưởng - Kiều Thị Ngọc Linh
Thành viên - Nguyễn Việt Dũng Lớp chuyên biệt : K66 & K65 - Toán Tin
Hướng dẫn của giảng viên : Cao Văn Chung
Trang 2LỜI NÓI ĐẦU
Dự báo doanh số là một trong những quy trình kinh doanh quan trọng nhất vì nó quyếtđịnh cách công ty đầu tư, phát triển và có thể có tác động lớn đến giá trị, tài nguyên, lợinhuận cũng như thua lỗ của công ty Nhóm chúng em đã chọn bộ dữ liệu Caravan: TheInsurance Company (TIC) Tập dữ liệu này chứa 5822 bản ghi khách hàng thực tế đãđược đưa vào thư viện của ngôn ngữ R (Caravan , ISLR) Mỗi bản ghi bao gồm 86 biến,bao gồm dữ liệu xã hội và dân số (biến 1-43) và sở hữu sản phẩm (biến 44-86) Dữ liệu
xã hội và dân số được lấy từ mã zip Câu hỏi chính mà tập dữ liệu này đặt ra là: Có thể dựđoán ai sẽ quan tâm đến việc mua một chính sách bảo hiểm caravan và đưa ra lý do tạisao không? Bằng các mô hình và phương pháp của học máy như là: PCA, LinearRegression, K-Means, Logistic Regression, LDA, QDA Chúng em sử dụng Googlecolab để train mô hình, dùng Runtime type R
Tuy nhiên, do kiến thức và thời gian còn hạn chế nên báo cáo chắc chắn sẽ còn nhữngthiếu sót Đội ngũ chúng em luôn mong đợi và nhận được những nhận xét, đánh giá chânthành, quý báu từ thầy và bạn bè để chúng em có thể hoàn thiện và ngày càng hoàn thiệnhơn
Nhóm chúng em xin chân thành cảm ơn ạ!
Hà Nội, ngày tháng năm 2024
Nhóm thực hiện
THÀNH VIÊN NHÓM
Trang 3MỤC LỤC
LỜI NÓI ĐẦU 2
THÀNH VIÊN NHÓM 2
MỤC LỤC 3
MỞ ĐẦU: Giới thiệu về bộ dữ liệu 4
CHƯƠNG I: Thực hiện giảm kích thước dữ liệu và trực quan hóa dữ liệu 4
1 Giảm kích thước dữ liệu (PCA) 4
2 Trực quan hoá dữ liệu 5
CHƯƠNG II: Dự đoán kết quả đầu ra với một tập dữ liệu đầu vào nhất định 6
1 Thực hiện mô hình hồi quy tuyến tính (Linear regression) 6
2 Giải thích ý nghĩa của kết quả và các hệ số thu được 7
CHƯƠNG III: Kiểm tra sự phân bố của các nhóm dữ liệu 8
1 Triển khai mô hình phân cụm (K-Means) 8
CHƯƠNG IV: Bài toán phân loại dữ liệu đầu vào thành các nhóm (khoảng ) dữ liệu đầu ra khác nhau 11
1. Các mô hình phân loại tuyến tính 11
a Logistic Regression 11
b Linear Discriminant Analysis 16
2 Các mô hình phân loại phi tuyến 18
a Quadratic Discriminant Analysis 18
3. So sánh kết quả của các mô hình (độ chính xác), giải thích ý nghĩa của các kết quả 20
Trang 4MỞ ĐẦU: Giới thiệu về bộ dữ liệu
Tập dữ liệu Caravan (link xem file csv) bao gồm 86 biến, 5822 mẫu Dưới đây là một
số thông tin chi tiết về các biến:
1 MOSTYPE: Lớp khách hàng với mức độ cao nhất.
2 MAANTHUI: Số lượng nhà trong hộ.
3 MGEMOMV: Kích thước trung bình của hộ.
4 MGEMLEEF: Độ tuổi trung bình.
5 MOSHOOFD: Lớp khách hàng chính.
Và còn nhiều biến khác nữa Tất cả các biến đều là dạng số Biến cuối cùng,
Purchase, chỉ ra liệu khách hàng có mua bảo hiểm caravan hay không và là biến nhị
phân
CHƯƠNG I: Thực hiện giảm kích thước dữ liệu và trực quan hóa dữ liệu
Phân tích thành phần chính (PCA) xác định ra một tổ hợp tuyến tính của một số cácbiến trong bộ các biến ban đầu mà có sự biến thiên (phương sai - variance) lớn nhất Nóicách khác, PCA là để tìm ra các biến mà có thể được sử dụng để giải thích phần lớn sựbiến thiên trong dữ liệu (chứa nhiều thông tin có giá trị nhất)
1 Giảm kích thước dữ liệu (PCA)
Ta có hình dáng của thành phần chính thứ nhất : gồm một bộ tổ hợp tuyến tính của cácbiến (tương ứng là các cột trong bộ Caravan):
Trong đó, đã chuẩn hóa các hệ số loadings : Chúng ta giới hạn cáctải sao cho tổng bình phương (độ dài vectơ loadings) của chúng bằng 1, vì nếu không,việc đặt các phần tử này có giá trị tuyệt đối lớn tùy ý có thể dẫn đến phương sai lớn tùy ý.Cho n = 5822 mẫu và p = 86 biến, cần tính phương sai của
như sau:
Trang 5Ta có thể tìm được các thành phần chính qua việc giải bài toán tối ưu trên, các bước cụthể như sau, đã được chứng minh:
● Tính vector kỳ vọng của toàn bộ dữ liệu (vectơ kỳ vọng của các cột):
𝑥 = 58221
𝑛=1
5822
∑ 𝑥𝑛
● Tính các độ lệch của các giá trị trong cột so với giá trị kỳ vọng lấy từ vectơ ởtrên:𝑥 = 𝑥 , lập thành một ma trận mới gồm toàn các giá trị độ lệch
● Chọn k (1<=k<=n) giá trị riêng lớn nhất và k vector riêng trực chuẩn tươngứng Xây dựng ma trận Uk
● Các cột của Ui (1<=i<=k) là hệ cơ sở trực chuẩn, tạo thành không gian con của
k thành phần chính, gần với phân bố của dữ liệu ban đầu đã chuẩn hóa
● Dữ liệu mới chính là toạ độ của các điểm dữ liệu trên không gian mới:
Z = 𝑈𝑘𝑇 * 𝑋
● Dữ liệu ban đầu được xấp xỉ theo dữ liệu mới : x ≈ Uk*Z + 𝑥
Chương trình của ác bước trên đã được trình bày đầy đủ trong file Chương I ipynb
2 Trực quan hoá dữ liệu
Vẽ đồ thị trực quan cho hai chiều dữ liệu đã được chọn sau khi đã được chiếu, sau khi
đã xấp xỉ, và hai cột bất kì từ dữ liệu ban đầu để so sánh:
Trang 6CHƯƠNG II: Dự đoán kết quả đầu ra với một tập dữ liệu đầu vào nhất định.
1 Thực hiện mô hình hồi quy tuyến tính (Linear regression): Dự đoán biến (cột)
ABYSTAND = Y (cần là một biến dạng số) thông qua:
1diễn sự bị chặn và độ dốc của đồ thị tuyến tính X là một cột dữ liệu đầu vào nào đótrong bộ Từ đó ta có các bộ tương ứng:
● Mục tiêu là để tìm ra các giá trị của β và mà khi thay các giá trị vào thì các
𝑖 giá trị ước tính có các giá trị biến thiên (phần dư thứ i) so với cácgiá trị thực𝑦 : là giá trị nhỏ nhất có thể
𝑖
● Ta cần tìm các hệ số để tổng
● là nhỏ nhất, haytổng các khoảng cách đường xám nối điểm dữ liệu
đến đường hồi quy như hình bên là nhỏ nhất Bằng
các biến đổi giải tích đã được chứng minh, ta có các
giá trị tối ưu củaβ và như sau ( là các kỳ
liệu ban đầu để test và cho ra các giá trị ước tính
𝑌
● Khi áp dụng vào bộ dữ liệu Caravan, chọn cột giá
trị cần dự đoán là Y = ABYSTAND, bộ giá trị
đầu vào là X = MOTYPE, áp dụng các hàm lm()
có sẵn để tính các mô hình hồi quy, đã cho ra kết
quảβ và là:
1
Trang 72 Giải thích ý nghĩa của kết quả và các hệ số thu được.
Dựa trên biểu đồ phân tán trong hình trên và giá trị các hệ số tính được, có vẻ nhưkhông có mối quan hệ tuyến tính đáng kể nào giữa hai biến MOSTYPE và ABSTAND.Các điểm dữ liệu được phân tán và không tuân theo một mô hình tuyến tính rõ ràng.Đường đỏ tại ABSTAND = 0, cho thấy một nỗ lực phù hợp với hồi quy tuyến tính, nhưngkhông thực sự phù hợp chặt chẽ với các điểm dữ liệu Điều này gợi ý rằng mô hình hồiquy tuyến tính có thể không phải là phương pháp phù hợp tốt nhất cho dữ liệu này Có thểnếu khám phá các loại mô hình hồi quy khác hoặc biến đổi các biến
P-value của kết quả là 4.117e-05 Đây là một con số rất nhỏ, thấp hơn nhiều so với
ngưỡng ý nghĩa phổ biến là 0.05 hoặc 0.01 Trong kiểm định giả thuyết thống kê, một giátrị p nhỏ hơn mức ý nghĩa đã chọn (như 0.05 hoặc 0.01) cho thấy bằng chứng mạnhchống lại giả thuyết không, vì vậy bạn từ chối giả thuyết không Cho thấy X và Y không
có mối tương quan Các kết quả và chương trình đều có trong fileChương II.ipynb
● Đánh giá độ chính xác của các ước tính hệ số:
Chúng ta giả sử rằng mối quan hệ thực sự của X và Y có thể được biểu diễn thông qua:
với hàm f() có thể ở dạng rất đặc biệt ( không phải là tuyến tính hay
đa thức), chưa được biết đến Việc ép sự liên hệ của X và Y dưới dạng tuyến tính, do
đó sẽ được đầy đủ hơn nữa dưới dạng:
Tính độ lệch chuẩn của kỳ vọng,β và , phần dư lần lượt là:
1
Độ lệch chuẩn có thể được sử dụng để tính khoảng tin cậy Đối với hồi quy tuyến tính,khoảng tin cậy 95 % cho β1 xấp xỉ có dạng:
Tương tự, khoảng tin cậy cho β0 xấp xỉ có dạng:
Độ lệch chuẩn cũng có thể được sử dụng để thực hiện kiểm định giả thuyết về các hệ sốgiả thuyết
Trang 8CHƯƠNG III: Kiểm tra sự phân bố của các nhóm dữ liệu
1 Triển khai mô hình phân cụm (K-Means Clustering)
Phân cụm để tìm các nhóm con (subgroup) hoặc phân cụm (cluster) trong một tập dữliệu Trong bộ Caravan, chúng ta có một tập hợp 5822 quan sát, mỗi quan sát có 86 đặcđiểm Các quan sát có thể tương ứng với các khách hàng được khảo sát và các đặc điểm
có thể tương ứng với các phép đo về các thông tin cụ thể của khách hàng đó Với một bộmẫu lớn, có khả năng rất cao rằng tất cả các khách hàng sẽ không có các đặc điểm giốngnhau, chúng ta cần kiểm tra xem 5822 người có chia thành các nhóm, “câu lạc bộ" có sựtương đồng về một hay nhiều đặc điểm hay là không, là những khách hàng “khác biệt"trong bộ dữ liệu (rất quan trọng cho market segmentation trong marketing)
Để thực hiện phân cụm K-means, trước tiên chúng ta phải chọn số cụm K mong muốn;sau đó thuật toán K-mean sẽ gán mỗi quan sát cho chính xác một trong các cụm K đó
Cho tập dữ liệu X ={𝑥 với mỗi là một quan sát (hàng) và số cụm cần chia là
𝑛}
𝑛 =1
5822
𝑥𝑛0<k<N=5822 (Số cụm k tối ưu nhất tùy theo độ lớn của N, thường sẽ được tìm ra sau khithử một số giá trị k)
Lấy k điểm dữ liệu khác nhau𝐶 từ tập X - sẽ là
1, 𝐶
2, , 𝐶
𝑘các điểm trung tâm mối cụm (các điểm không quá gần nhau, chọn𝐶 bất kỳ , chọn xa
2nhất có thể với khoảng cách Euclid, chọn sao cho dist( ) + dist( ) lớn𝐶
𝑘)
nào cùng thuộc về nhiều hơn một cụm)
● Một cụm tốt tức là các phương sai bên trong cùng một cụm (within-clustervariation) là nhỏ nhất có thể, vậy ta cần giải bài toán tối ưu (1):
Trong đó, là độ chênh lệch (khoảng cách) của các điểm (các quan sát)bên trong cùng một cụm𝐶 Vậy chúng ta muốn phân chia các quan sát thành K
𝑘cụm sao cho tổng chênh lệch bên trong mỗi cụm, rồi tính tổng đó của tất cả Kcụm, càng nhỏ càng tốt Ta có bài toán tối ưu (2):
Trang 9Kết hợp (1) và (2) ta có bài toán tối ưu là định nghĩa cho một cụm thứ k nào đó với:
là số các quan sát cho một cụm thứ k đó (3):
Ta có𝑘𝑛 cách để phân chia n=5822 quan sát vào k cụm có thể có, do vậy bài toán (3)
có thể giải theo thuật toán như sau:
● Dừng khi tâm cụm tìm được ở bước t+1 hoàn toàn trùng với tâm cụm tìm được
ở bước t, tức là khi cực trị địa phương đã đạt được
Thuật toán trên làm giảm giá trị của (3) sau mỗi bước lặp t bởi, ta có:
Với chính là 𝐶 và là trung bình cộng của j đặc điểm trong
𝑗 𝑛𝑒𝑤
bộ n đặc điểm trong cụm 𝐶 Vì thuật toán k-means tìm cực trị địa phương nên kết quả
𝑘
có thể thay đổi tùy theo số cụm k được khởi tạo ban đầu Nên sau đó, chúng ta nên lặp lạithuật toán với các giá trị k ban đầu khác nhau xem giá trị k nào cho ra các kết quả trựcquan màu , nhãn dán với đồ thị trực quan nhất Chương trình thực hiện thuật toán trênđược trình bày trong các file:Chương III.ipybnvàthuchanhkmeans.ipybn
Trang 11CHƯƠNG IV: Bài toán phân loại dữ liệu đầu vào thành các nhóm (khoảng ) dữ liệu
đầu ra khác nhau
Ở chương II, chúng ta đã được biết mô hình hồi quy tuyến tính giả định tất cả các biếnmuốn dự đoán đều phải ở dạng số, định lượng (quantitative), nhưng trong thực tế, nhât làtrong kinh doanh, bán hàng, những khía cạnh mang tính cảm giác, cảm xúc, màu sắc, tínhchất thường được đặt cho một cái tên, có thể rất trừu tượng, khi đó chúng ta có các biến
dữ liệu ở dạng định tính (qualitative) Do vậy, chúng ta cần phải phân loại các mẫu quansát vào các mục hay các lớp với các nhãn khác nhau Nói cách khác là dự đoán xác suấtcủa một quan sát rơi vào mỗi biến định tính khác nhau Chúng ta có một bộ các quan sát
chuyên dùng để huấn luyện, tạo các mô hình phân loại, cái màkhông chỉ cần phải hoạt động tốt cho các dữ liệu dùng để huấn luyện, mà còn cho nhữngmẫu quan sát chuyên dùng để kiểm tra mô hình, chưa từng có trong việc huấn luyện môhình ấy
*Tại sao lại không thể dùng linear regression cho các biến dạng định tính?
● Phương pháp hồi quy không thể đáp ứng được phân loại định tính với nhiềuhơn hai lớp
● Phương pháp hồi quy sẽ không cung cấp các ước tính có ý nghĩa của Pr(Y |X),thậm chí chỉ với hai lớp Vì vậy, tốt nhất nên sử dụng phương pháp phân loạithực sự phù hợp với các giá trị dự đoán định tính
● Hồi quy logistic, rất phù hợp cho trường hợp làm việc với các biến định tính nhịphân; trong các phần sau, LDA, QDA là các phương pháp phân loại phù hợpkhi phản hồi định tính có hai lớp trở lên
1 Các mô hình phân loại tuyến tính
a Logistic Regression
Trong tập dữ liệu Caravan, trong đó biến mục tiêu Y=Purchase thuộc một trong hailoại Yes hoặc No Thay vì lập mô hình trực tiếp dự đoán Y này, hồi quy logistic mô hìnhxác suất Y thuộc một danh mục cụ thể Ví dụ: Xác suất để một mẫu quan sát rơi vàonhóm phân loại Yes của Purchase là: Pr(Purchase = Yes|X_train)
Trang 12Làm sao để lập ra được mô hình mối quan hệ giữa và X (*) ?(để tiện, quy hai giá trị nhị phân của biến Y thành 0 và 1) Và với mỗi x thuộc X - cácbiến quan sát, ta có mô hình dự báo ℎ (x) như sau:
θ
với hàm sigmoid (logistic) được xác định như dưới đây:
Do y chỉ nhận một trong hai giá trị 0 hoặc 1( xung khắc), nên ta có mô hình hồi quylogistic:
với là tham số của mô hình , giả sử ta đã biết vectơ hệ số (tham số) , ( cầnθđược tính sau), ta sẽ có mô hình phân loại như sau:
Mô hình trên có thể được viết gọn dưới dạng (1) - cũng chính là câu trả lời cho (*) :
Khi ta thay y = 1, thì bị triệt tiêu, khi thay y = 0 thì phần còn lạicủa vế phải sẽ bị triệt tiêu
Ta cần đi tìm tham sốθ để làm biểu thức (1) đạt cực đại, ta sẽ tìm nó thông qua hàmhợp lý (likelihood function) và log-hợp lý (log-likelihood function):
Trang 14Thuật toán trên được trình bày theo mã giả như sau:
Trang 15Khi áp dụng mô hình này vào bộ dữ liệu Caravan trong file: Logistic regression.ipybnđược các kết quả sau:
Chia bộ dữ liệu thành hai phần phục vụ cho training và testing:
Ma trận hệ số θ:
So sánh giữa kết quả dự đoán cột Purchase
của bộ train và bộ test:
Trang 16Độ chính xác của mô hình huấn luyện:
b Linear Discriminant Analysis LDA.ipybn
Mô hình này phù hợp cho sự phân loại cho các biến có nhiều phân lớp hơn là hai (K
2, nhưng trong trường hợp này của Purchase K = 2 Chúng ta cần phải xác định xác
≥
suất rơi vào các lớp khác nhau của các mẫu một cách riêng biệt Giả sử ta có biến cầnphân loại vào K≥ 2 phân lớp có thể và không xác định thứ tự Y=Purchase, X = bộ biếndùng để dự đoán kết quả Y (các biến còn lại)
● là xác suất tiên nghiệm (prior probability): xác suất để một quan sát đượcchọn ra ngẫu nhiên từ bộ rơi vào một phân lớp thứ K nào đó
● (X là một biến định tính ngẫu nhiên) là hàm mật độcủa biến X có một quan sát nào đó rơi vào phân lớp thứ k Suy ra
có thể có giá trị khá lớn nếu một quan sát nào đó trong phân lớp thứ k nào đó có
X≈ 𝑥 Ngược lại thì nó sẽ có giá trị lớn
mà
một quan sát X≈ 𝑥rơi vào phân lớp thứ k (tức là giá trị của các biến dùng để
dự đoán đã được cho trước cho quan sát đó)
❖ Với p = 1 (chỉ có một biến dùng để dự đoán):
a.Ước lượng để áp dụng cho (2) Ta coi như nó có phân bố chuẩn, vậy nó có dạng
và phương sai của phân lớp thứ k Ta cũng coi thêm rằng phương sai của k phân lớp làbằng nhau
● Sau đó, thay (3) vào (2), ta có (4) :
b Phân loại một quan sát vào một lớp k mà là lớn nhất
Trang 17● Lấy căn của (4), và biến đổi đại số, ta có một cách tương đương để gán cácquan sát vào một phân lớp nào đó mà giá trị của
(5) là lớn nhất
=> Từ phương trình (5), nếu K = 2 và thì bộ phân loại Bayes sẽgán quan sát đang xét cho phân nhóm 1 nếu và vàophân nhóm 2 nếu ngược lại
● Trong thực tế, mặc dù khi chúng ta đã khá chắc chắn rằng X có phân bố chuẩnGaussian, thì ta vẫn phải ước lượng các đại lượng tham số:
bằng cách thay các tham số sau vào (5) (n là số lượng các quan sát dùng đểtrain,𝑛 là số lượng các quan sát dùng để train trong một lớp thứ k):
𝑘
● Sau khi gán X = x, ta có phương trình (5) khi này bằng (6):
=> Đây là hàm tuyến tính theo x , nên mới có tên gọi có chữ Linear trong LDA
❖ Với p >1 ( nhiều hơn một biến phân loại):
Ta có bộ dùng để dự đoán cho biến mục tiêu Y , kí hiệu:
Bộ này tuân theo phân phối chuẩn đa biến (multivariate Gaussian),mỗi biến dự đoán riêng tuân theo một phân phối chuẩn một chiều Với một vectơ kỳvọng riêng gồm p phần tử cho từng class , và một ma trận hiệp phương
● Hàm mật độ của phân phối chuẩn Gaussian đa chiều được định nghĩa như sau(7):