Chiều cao của sinh viên một trường đại học tuân theo phân phối
chuẩn
với trung bình 170 cm và độ lệch chuẩn 5 cm.
• Tính xác suất một sinh viên có chiều cao lớn hơn 175 cm.
• Kiểm tra lại bằng hàm pnorm() trong R.
\[Z(X) = \frac{X - \mu}{\sigma}\]
Trong đó:
• \(\mu\) = Giá trị trung bình (mean) =
170cm
• \(\sigma\) = Độ lệch chuẩn =
5cm
• \(X\) = Biến ngẫu nhiên liên tục
(hoặc cái mẹ gì đó gọi là giá trị quan sát) = 175cm
• \(Z\) = Giá trị chuẩn hóa (Z-score)
cho biết giá trị X đang cách giá trị trung bình \(\mu\) bao nhiêu lần độ lệch chuẩn \(\sigma\)
mu_me_may <- 170
ligma <- 5
yo_maam <- 175
play_yo_maam <- as.numeric((yo_maam - mu_me_may)/ligma)
cat("Z(X) =", play_yo_maam, "\n")
## Z(X) = 1
ket_qua <- pnorm(play_yo_maam)
cat("Ket qua cach 1 P(Z) =", ket_qua, "\n")
## Ket qua cach 1 P(Z) = 0.8413447
ket_qua_cach_2 <- pnorm(175, 170, 5)
cat("Ket qua cach 2 P(Z) =", ket_qua_cach_2, "\n")
## Ket qua cach 2 P(Z) = 0.8413447
Sử dụng bộ dữ liệu hoa Iris trong R để:
• Xây dựng mô hình hồi quy logistic phân loại hoa dựa vào tất cả các
biến.
• Sử dụng kiểm định Hosmer-Lemeshow để đánh giá mức độ phù hợp của mô
hình.
Hồi quy Logistic là một thuật toán thống kê được sử dụng để dự đoán xác suất của một biến mục tiêu rời rạc (thường là nhị phân 0 hoặc 1, Đúng hoặc Sai).
Trong hồi quy tuyến tính, kết quả đầu ra có thể là bất kỳ giá trị nào
từ \(-\infty\) đến \(+\infty\). Tuy nhiên, trong phân loại,
chúng ta cần một giá trị xác suất nằm trong khoảng \([0, 1]\). Để làm được điều này, hồi quy
Logistic sử dụng hàm Sigmoid:
\[f(z) = \frac{1}{1 + e^{-z}}\] Trong
đó, \(z\) là phương trình đường thẳng
(tương tự hồi quy tuyến tính):
\[z = \beta_0 + \beta_1x_1 + \beta_2x_2 + ...
+ \beta_nx_n\]
• Mô hình tính toán giá trị \(z\)
dựa trên các biến đầu vào (\(x_1, x_2,
x_3\) tương ứng với Petal.Length, Petal.Width,
Sepal.Length).
• Giá trị \(z\) được đưa qua hàm
Sigmoid để chuyển thành xác suất \(P\).
• Ngưỡng quyết định (Decision Boundary): Thông thường, nếu \(P \geq 0.5\), mô hình sẽ phân loại vào nhóm
1 (ví dụ: Versicolor), và nếu \(P <
0.5\) sẽ thuộc nhóm 0 (ví dụ: Setosa).
Để biết mô hình hoạt động tốt đến đâu, chúng ta sử dụng hai công cụ chính
| Dự đoán: Lớp 0 | Dự đoán: Lớp 1
------------------------------------------------
Thực tế: Lớp 0 | Đúng (TN) | Sai (FP)
------------------------------------------------
Thực tế: Lớp 1 | Sai (FN) | Đúng (TP)
• TP (True Positive): Thực tế là lớp 1, dự đoán đúng là lớp 1.
• TN (True Negative): Thực tế là lớp 0, dự đoán đúng là lớp 0.
• FP (False Positive): Thực tế là lớp 0, nhưng dự đoán sai là lớp
1.
• FN (False Negative): Thực tế là lớp 1, nhưng dự đoán sai là lớp 0.
Là tỉ lệ giữa số lượng điểm dữ liệu được dự đoán đúng trên tổng số
điểm dữ liệu:
\[\text{Accuracy} = \frac{TP + TN}{TP + TN +
FP + FN}\]
data_iris <- iris # Gán dataset vào biến mới
library(nnet)
# Xây dựng mô hình cho cả 3 loài cùng lúc
model_multi <- multinom(Species ~ Sepal.Length + Sepal.Width + Petal.Length + Petal.Width,
data = iris)
## # weights: 18 (10 variable)
## initial value 164.791843
## iter 10 value 16.177348
## iter 20 value 7.111438
## iter 30 value 6.182999
## iter 40 value 5.984028
## iter 50 value 5.961278
## iter 60 value 5.954900
## iter 70 value 5.951851
## iter 80 value 5.950343
## iter 90 value 5.949904
## iter 100 value 5.949867
## final value 5.949867
## stopped after 100 iterations
pred_prob <- predict(model_multi, data_iris, type = "probs")
pred_class <- predict(model_multi, data_iris)
cat("--- Ket qua nhan dien (6 dong dau) ---\n")
## --- Ket qua nhan dien (6 dong dau) ---
print(head(pred_class))
## [1] setosa setosa setosa setosa setosa setosa
## Levels: setosa versicolor virginica
cat("\n--- Xac suat tuong ung ---\n")
##
## --- Xac suat tuong ung ---
print(head(pred_prob))
## setosa versicolor virginica
## 1 1.0000000 1.526406e-09 2.716417e-36
## 2 0.9999996 3.536476e-07 2.883729e-32
## 3 1.0000000 4.443506e-08 6.103424e-34
## 4 0.9999968 3.163905e-06 7.117010e-31
## 5 1.0000000 1.102983e-09 1.289946e-36
## 6 1.0000000 3.521573e-10 1.344907e-35
(Vì tôi dùng multinorm nên đếch dùng được hoslem.test
(đề như dái) nên câu này chịu chết. Ae dùng glm tính thuần chay từng cặp
loài hoa thôi)