Update README.md

This commit is contained in:
2025-12-22 03:33:23 +01:00
parent 9b93595657
commit 8c58623a62

154
README.md
View File

@@ -158,15 +158,29 @@ Y chuẩn hóa: 0.72 0.80 0.85 0.75 0.85 0.60 0.65 0.68 0.90 0.85 0.55 0.60
#### **Phương pháp 2: Min-Max Normalization (Chuẩn hóa Min-Max)** #### **Phương pháp 2: Min-Max Normalization (Chuẩn hóa Min-Max)**
**Công thức:** `x' = (x - min) / (max - min)` **Công thức tổng quát:**
Kết quả nằm trong khoảng [0, 1] ```
x' = (x - min) / (max - min) × (new_max - new_min) + new_min
```
##### **Chuẩn hóa X** Trong đó:
- **min, max**: giá trị nhỏ nhất, lớn nhất của dữ liệu gốc
- **new_min, new_max**: khoảng giá trị mới mong muốn
**Các trường hợp đặc biệt:**
- Chuẩn hóa về [0, 1]: `x' = (x - min) / (max - min)`
- Chuẩn hóa về [-1, 1]: `x' = 2 × (x - min) / (max - min) - 1`
- Chuẩn hóa về [a, b]: `x' = (x - min) / (max - min) × (b - a) + a`
---
##### **Ví dụ 1: Chuẩn hóa X về [0, 1]**
- Min(X) = 4.5 - Min(X) = 4.5
- Max(X) = 9.1 - Max(X) = 9.1
- Range = 9.1 - 4.5 = 4.6 - Range = 9.1 - 4.5 = 4.6
- new_min = 0, new_max = 1
**Tính toán chi tiết:** **Tính toán chi tiết:**
@@ -188,7 +202,61 @@ Kết quả nằm trong khoảng [0, 1]
**Kết quả:** **Kết quả:**
``` ```
X gốc: 7.0 8.5 8.6 6.7 6.5 7.0 6.0 5.5 7.0 9.1 4.5 5.3 X gốc: 7.0 8.5 8.6 6.7 6.5 7.0 6.0 5.5 7.0 9.1 4.5 5.3
X Min-Max: 0.543 0.870 0.891 0.478 0.435 0.543 0.326 0.217 0.543 1.000 0.000 0.174 X Min-Max [0,1]: 0.543 0.870 0.891 0.478 0.435 0.543 0.326 0.217 0.543 1.000 0.000 0.174
```
---
##### **Ví dụ 2: Chuẩn hóa X về [-1, 1]**
new_min = -1, new_max = 1
**Công thức:**
```
x' = (x - 4.5) / 4.6 × (1 - (-1)) + (-1)
= (x - 4.5) / 4.6 × 2 - 1
```
**Tính toán:**
| Giá trị gốc | Bước 1: (x-min)/range | Bước 2: ×2 - 1 | Kết quả |
|-------------|----------------------|----------------|---------|
| 7.0 | 0.543 | 0.543 × 2 - 1 | 0.087 |
| 9.1 | 1.000 | 1.000 × 2 - 1 | 1.000 |
| 4.5 | 0.000 | 0.000 × 2 - 1 | -1.000 |
| 8.5 | 0.870 | 0.870 × 2 - 1 | 0.739 |
**Kết quả:**
```
X gốc: 7.0 8.5 8.6 6.7 6.5 7.0 6.0 5.5 7.0 9.1 4.5 5.3
X Min-Max [-1,1]: 0.087 0.739 0.783 -0.043 -0.130 0.087 -0.348 -0.565 0.087 1.000 -1.000 -0.652
```
---
##### **Ví dụ 3: Chuẩn hóa X về [10, 100]**
new_min = 10, new_max = 100
**Công thức:**
```
x' = (x - 4.5) / 4.6 × (100 - 10) + 10
= (x - 4.5) / 4.6 × 90 + 10
```
**Tính toán:**
| Giá trị gốc | Bước 1: (x-min)/range | Bước 2: ×90 + 10 | Kết quả |
|-------------|----------------------|------------------|---------|
| 7.0 | 0.543 | 0.543 × 90 + 10 | 58.9 |
| 9.1 | 1.000 | 1.000 × 90 + 10 | 100.0 |
| 4.5 | 0.000 | 0.000 × 90 + 10 | 10.0 |
| 6.0 | 0.326 | 0.326 × 90 + 10 | 39.3 |
**Kết quả:**
```
X gốc: 7.0 8.5 8.6 6.7 6.5 7.0 6.0 5.5 7.0 9.1 4.5 5.3
X Min-Max [10,100]: 58.9 88.3 90.2 53.0 49.1 58.9 39.3 29.6 58.9 100.0 10.0 25.7
``` ```
--- ---
@@ -221,29 +289,29 @@ Kết quả có trung bình = 0 và độ lệch chuẩn = 1
Từ câu 1a và 1e, ta có: Từ câu 1a và 1e, ta có:
- μ_x = 6.81 - μ_x = 6.81
- σ_x = 1.398 (từ tính toán correlation) - σ_x = 1.339
**Tính toán chi tiết:** **Tính toán chi tiết:**
| Giá trị gốc | Công thức | Kết quả | | Giá trị gốc | Công thức | Kết quả |
|-------------|-----------|---------| |-------------|-----------|---------|
| 7.0 | (7.0 - 6.81) / 1.398 | 0.136 | | 7.0 | (7.0 - 6.81) / 1.339 | 0.142 |
| 8.5 | (8.5 - 6.81) / 1.398 | 1.209 | | 8.5 | (8.5 - 6.81) / 1.339 | 1.262 |
| 8.6 | (8.6 - 6.81) / 1.398 | 1.280 | | 8.6 | (8.6 - 6.81) / 1.339 | 1.337 |
| 6.7 | (6.7 - 6.81) / 1.398 | -0.079 | | 6.7 | (6.7 - 6.81) / 1.339 | -0.082 |
| 6.5 | (6.5 - 6.81) / 1.398 | -0.222 | | 6.5 | (6.5 - 6.81) / 1.339 | -0.231 |
| 7.0 | (7.0 - 6.81) / 1.398 | 0.136 | | 7.0 | (7.0 - 6.81) / 1.339 | 0.142 |
| 6.0 | (6.0 - 6.81) / 1.398 | -0.579 | | 6.0 | (6.0 - 6.81) / 1.339 | -0.605 |
| 5.5 | (5.5 - 6.81) / 1.398 | -0.937 | | 5.5 | (5.5 - 6.81) / 1.339 | -0.978 |
| 7.0 | (7.0 - 6.81) / 1.398 | 0.136 | | 7.0 | (7.0 - 6.81) / 1.339 | 0.142 |
| 9.1 | (9.1 - 6.81) / 1.398 | 1.638 | | 9.1 | (9.1 - 6.81) / 1.339 | 1.710 |
| 4.5 | (4.5 - 6.81) / 1.398 | -1.652 | | 4.5 | (4.5 - 6.81) / 1.339 | -1.725 |
| 5.3 | (5.3 - 6.81) / 1.398 | -1.080 | | 5.3 | (5.3 - 6.81) / 1.339 | -1.128 |
**Kết quả:** **Kết quả:**
``` ```
X gốc: 7.0 8.5 8.6 6.7 6.5 7.0 6.0 5.5 7.0 9.1 4.5 5.3 X gốc: 7.0 8.5 8.6 6.7 6.5 7.0 6.0 5.5 7.0 9.1 4.5 5.3
X Z-Score: 0.136 1.209 1.280 -0.079 -0.222 0.136 -0.579 -0.937 0.136 1.638 -1.652 -1.080 X Z-Score: 0.142 1.262 1.337 -0.082 -0.231 0.142 -0.605 -0.978 0.142 1.710 -1.725 -1.128
``` ```
--- ---
@@ -252,12 +320,12 @@ X Z-Score: 0.136 1.209 1.280 -0.079 -0.222 0.136 -0.579 -0.937 0.136
Từ câu 1a và 1e, ta có: Từ câu 1a và 1e, ta có:
- μ_y = 7.33 - μ_y = 7.33
- σ_y = 1.177 - σ_y = 1.127
**Kết quả:** **Kết quả:**
``` ```
Y gốc: 7.2 8.0 8.5 7.5 8.5 6.0 6.5 6.8 9.0 8.5 5.5 6.0 Y gốc: 7.2 8.0 8.5 7.5 8.5 6.0 6.5 6.8 9.0 8.5 5.5 6.0
Y Z-Score: -0.110 0.569 0.993 0.144 0.993 -1.130 -0.705 -0.450 1.417 0.993 -1.555 -1.130 Y Z-Score: -0.115 0.595 1.038 0.151 1.038 -1.180 -0.737 -0.470 1.482 1.038 -1.624 -1.180
``` ```
--- ---
@@ -267,13 +335,15 @@ Y Z-Score: -0.110 0.569 0.993 0.144 0.993 -1.130 -0.705 -0.450 1.417 0.9
| Phương pháp | Công thức | Khoảng giá trị | Ưu điểm | Nhược điểm | Khi nào dùng | | Phương pháp | Công thức | Khoảng giá trị | Ưu điểm | Nhược điểm | Khi nào dùng |
|-------------|-----------|----------------|---------|------------|--------------| |-------------|-----------|----------------|---------|------------|--------------|
| **Decimal Scaling** | x' = x / 10^j | (-1, 1) | Đơn giản, nhanh | Không sử dụng hết khoảng giá trị | Khi cần chuẩn hóa nhanh | | **Decimal Scaling** | x' = x / 10^j | (-1, 1) | Đơn giản, nhanh | Không sử dụng hết khoảng giá trị | Khi cần chuẩn hóa nhanh |
| **Min-Max** | x' = (x-min)/(max-min) | [0, 1] | Giữ nguyên phân phối, dễ hiểu | Nhạy cảm với outliers | Khi biết giới hạn min/max rõ ràng | | **Min-Max** | x' = (x-min)/(max-min)×(b-a)+a | [a, b] tùy chọn | Giữ nguyên phân phối, linh hoạt | Nhạy cảm với outliers | Khi biết giới hạn min/max, cần khoảng cụ thể |
| **Z-Score** | x' = (x-μ)/σ | (-∞, +∞) | Không bị ảnh hưởng bởi scale, chuẩn thống kê | Khó diễn giải | Khi dữ liệu có phân phối chuẩn | | **Z-Score** | x' = (x-μ)/σ | (-∞, +∞) | Không bị ảnh hưởng bởi scale, chuẩn thống kê | Khó diễn giải | Khi dữ liệu có phân phối chuẩn |
**Ví dụ so sánh cho X = 9.1 (giá trị max):** **Ví dụ so sánh cho X = 9.1 (giá trị max):**
- Decimal Scaling: 0.91 (91% của max có thể) - Decimal Scaling: 0.91 (91% của max có thể)
- Min-Max: 1.00 (100% - giá trị lớn nhất) - Min-Max [0,1]: 1.00 (giá trị lớn nhất)
- Z-Score: 1.638 (cách trung bình 1.638 độ lệch chuẩn) - Min-Max [-1,1]: 1.00 (giá trị lớn nhất)
- Min-Max [10,100]: 100.0 (giá trị lớn nhất)
- Z-Score: 1.710 (cách trung bình 1.710 độ lệch chuẩn)
--- ---
@@ -515,39 +585,45 @@ r = 0.672
##### **Phương pháp 2: Sử dụng Covariance và Standard Deviation** ##### **Phương pháp 2: Sử dụng Covariance và Standard Deviation**
**Công thức (theo sách giáo khoa):**
```
Cov(A,B) = Σ(ai - Ā)(bi - B̄) / n
σ = √[Σ(ai - Ā)² / n]
r = Cov(A,B) / (σA × σB)
```
**Bước 1: Tính Covariance (Hiệp phương sai)** **Bước 1: Tính Covariance (Hiệp phương sai)**
``` ```
Cov(X,Y) = Σ[(xi - x̄)(yi - ȳ)] / (n-1) Cov(X,Y) = Σ[(xi - x̄)(yi - ȳ)] / n
Cov(X,Y) = 12.164 / (12-1) Cov(X,Y) = 12.164 / 12
Cov(X,Y) = 12.164 / 11 Cov(X,Y) = 1.014
Cov(X,Y) = 1.106
``` ```
**Bước 2: Tính Standard Deviation của X** **Bước 2: Tính Standard Deviation của X**
``` ```
σx = √[Σ(xi - x̄)² / (n-1)] σx = √[Σ(xi - x̄)² / n]
σx = √(21.508 / 11) σx = √(21.508 / 12)
σx = √1.955 σx = √1.792
σx = 1.398 σx = 1.339
``` ```
**Bước 3: Tính Standard Deviation của Y** **Bước 3: Tính Standard Deviation của Y**
``` ```
σy = √[Σ(yi - ȳ)² / (n-1)] σy = √[Σ(yi - ȳ)² / n]
σy = √(15.248 / 11) σy = √(15.248 / 12)
σy = √1.386 σy = √1.271
σy = 1.177 σy = 1.127
``` ```
**Bước 4: Tính hệ số tương quan** **Bước 4: Tính hệ số tương quan**
``` ```
r = Cov(X,Y) / (σx × σy) r = Cov(X,Y) / (σx × σy)
r = 1.106 / (1.398 × 1.177) r = 1.014 / (1.339 × 1.127)
r = 1.106 / 1.646 r = 1.014 / 1.509
r = 0.672 r = 0.672
``` ```
@@ -583,12 +659,12 @@ r = 0.672
| Phương pháp | Công thức | Khoảng giá trị | Đặc điểm | Ứng dụng | | Phương pháp | Công thức | Khoảng giá trị | Đặc điểm | Ứng dụng |
|-------------|-----------|----------------|----------|----------| |-------------|-----------|----------------|----------|----------|
| **Decimal Scaling** | x' = x/10^j | (-1, 1) | Đơn giản, nhanh | Chuẩn hóa nhanh, dữ liệu đơn giản | | **Decimal Scaling** | x' = x/10^j | (-1, 1) | Đơn giản, nhanh | Chuẩn hóa nhanh, dữ liệu đơn giản |
| **Min-Max** | (x-min)/(max-min) | [0, 1] | Giữ phân phối | Neural networks, khi biết min/max | | **Min-Max** | (x-min)/(max-min)×(b-a)+a | [a, b] tùy chọn | Giữ phân phối, linh hoạt | Neural networks, khi biết min/max, cần khoảng cụ thể |
| **Z-Score** | (x-μ)/σ | (-∞, +∞) | Chuẩn hóa thống kê | Phát hiện outliers, so sánh nhiều biến | | **Z-Score** | (x-μ)/σ | (-∞, +∞) | Chuẩn hóa thống kê | Phát hiện outliers, so sánh nhiều biến |
**Khi nào dùng phương pháp nào:** **Khi nào dùng phương pháp nào:**
- **Decimal Scaling:** Khi cần nhanh, dữ liệu đơn giản - **Decimal Scaling:** Khi cần nhanh, dữ liệu đơn giản
- **Min-Max:** Khi cần giá trị trong [0,1], biết rõ min/max, dùng cho neural networks - **Min-Max:** Khi cần giá trị trong khoảng xác định [a,b] (thường [0,1] hoặc [-1,1]), biết rõ min/max, dùng cho neural networks
- **Z-Score:** Khi dữ liệu có phân phối chuẩn, cần so sánh nhiều biến có đơn vị khác nhau - **Z-Score:** Khi dữ liệu có phân phối chuẩn, cần so sánh nhiều biến có đơn vị khác nhau
--- ---