Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 45

Đề tài

Phân tích PCA để


giảm chiều dữ
liệu

Đề tài
Đinh Như Khánh

THÀNH VIÊN NHÓM


Đinh Trác Đức Anh

Đoàn Minh Quang

Dương Minh Khánh

Hoàng Đình Nguyên

Hoàng Gia Phát


MỤC LỤC

MỤC LỤC
2. Cơ sở toán
1. Mở đầu
học

5. Đoạn
code Python 3. Phân tích
PCA

4. Ứng dụng
thực tế
2. Cơ sở toán
1. Mở đầu
học

5. Đoạn
code Python 3. Phân tích
PCA
2. Cơ sở toán
1. Mở đầu
học

5. Đoạn
code Python 3. Phân tích
PCA
1. Mở đầu
2. Cơ sở
toán học
2. Cơ sở toán
học
3. MATLAB
4. Nhận xét và kết
luận
ĐỀ TÀI YÊU CẦU
1. Nêu cơ sở lý thuyết của phân tích thành phần chính
“Phân tích PCA để giảm (PCA: Principle Component Analysis)
chiều dữ liệu”
2. Ứng dụng của phân tích PCA để giảm chiều dữ liệu
ĐIỀU NHIỆM VỤ
KIỆN
1. Sinh viên cần có kiến thức về bộ môn
1. Tìm hiểu về cơ sở lý thuyết nền tảng của
thuật toán PCA
ĐSTT nói chung và hiểu biết cơ bản về
phép phân tích thành phần chính trong 2. Thực hành: Input là một file f tùy ý. Số

Machine Learning nói riêng hóa file f. Phân tích PCA. Giảm chiều dữ
liệu. Đánh giá sai số
2. Tìm hiểu các ứng dụng phân tích thành
3. Sản phẩm: là một phần mềm (code
phần chính PCA thực tiễn
Matlab, hoặc Python, ...) có khả năng
giảm chiều của một file dữ liệu tùy ý
QUỸ ĐẠO VECTOR VỊ
TRÍ
Vector vị trí ,y,z)
Xác định được vị trí của điểm M

Chất điểm M vạch ra một đường


trong không gian suốt quá trình
chuyển động
TRÍ
VECTOR VẬN TỐC
Vector vận tốc trung bình Vector vận tốc tức thời

lim Δ ⃗
𝑟
ⅆ⃗
𝑟
Δ 𝑟⃗ ⃗ = Δ𝑡→0
𝑣
Δ𝑡
=
ⅆ𝑡

𝑣 𝑇𝐵 =
Δ𝑡 ⅆ𝑥 ⃗ ⅆ𝑦 ⃗ ⅆ𝑧 ⃗
⇒⃗
𝑣= 𝑖+ j+ 𝑘
ⅆ𝑡 ⅆ𝑡 ⅆ𝑡
Δ⃗
𝑟 =𝑟 2 − 𝑟 1

|⃗𝑣|= √ 𝑣 +𝑣 +𝑣
Δ 𝑡 =𝑡 2 −𝑡 1 2 2 2
𝑥 𝑦 𝑧
VECTOR GIA TỐC
Vector gia tốc trung bình Vector gia tốc tức thời

lim Δ ⃗
𝑣
ⅆ⃗
𝑣
Δ ⃗
𝑣 ⃗= Δ𝑡→0
𝑎 =
ⅆ𝑡

𝑎 𝑇𝐵 = Δ𝑡
Δ𝑡 ⅆ 𝑣𝑥 ⃗ ⅆ 𝑣 𝑦 ⅆ𝑣𝑧 ⃗
⇒⃗
𝑎= 𝑖+ ⃗
j+ 𝑘
ⅆ𝑡 ⅆ𝑡 ⅆ𝑡
Δ⃗
𝑣=⃗
𝑣2− ⃗
𝑣1

Δ 𝑡 =𝑡 2 −𝑡 1
|⃗𝑎|=√ 𝑎 +𝑎 +𝑎
2
𝑥
2
𝑦
2
𝑧
VECTOR GIA TỐC
Vector gia tốc tiếp tuyến Vector gia tốc pháp tuyến

• Phương: trùng với tiếp tuyến của • Phương: trùng với phương pháp
quỹ đạo tại M tuyến của quỹ đạo tại M

• Chiều: + Nhanh dần: • Chiều: Hướng về phía lõm của


+ Chậm dần: quỹ đạo

• Độ lớn: • Độ lớn:
GIẢI
BÁN KÍNH CONG CỦA QUỸ
ĐẠO
• Là bán kính của vòng tròn
mà quỹ đạo tiếp xúc tại M

• Độ lớn:
BÀI
 2 4 3
 x  3t - t
 3 (SI)
 y  8t

GIẢI
a) Vẽ quỹ đạo của vật từ t0=0(s) đến t1=5(s)

• Tập hợp các điểm biểu diễn tọa độ của vật tại những
b) Độ lớn vận tốc tại thời điểm t = 1 (s)

v 
 x dt
dx
 6t  4t 2

• Phương trình vận tốc:  SI 


thời điểm trong khoảng thời gian từ t0=0(s) đến t1=5(s)  v  dy  8
 y dt
ta được quỹ đạo của vật

x  0
• Lúc t0 = 0s, tọa độ của vật:  SI  • Phương trình vận tốc toàn phần:
y  0 2 m
 
2
v(t)  v x 2  v y 2  6t  4t 2
 8  
s 
 275
x   • Độ lớn vận tốc:
• Lúc t1 = 5s, tọa độ của vật:  3 SI 
 y  40 m
v  2 17  8, 25  
s 
BÀI
 2 4 3
 x  3t - t
 3 (SI)
 y  8t

GIẢI
c) Độ lớn gia tốc tại thời điểm t = 1 (s)
 dv x
 x dt  6  8t
a 
d) Bán kính cong của quỹ đạo tại thời điểm t = 1 (s)
• Phương trình gia tốc tiếp tuyến:
dv  6t  4t   6  8t   m 
2
• Phương trình gia tốc: 
dv
SI  a (t) 
t  s  2
a  y  0
 y dt
dt
6t  4t   8   2 2 2

• Phương trình gia tốc pháp tuyến:


2
 
• Phương trình gia tốc toàn phần:

 6  8t   
2  6t  4t 2
  6  8t   m
m a n (t)  a 2  a t 2   s2 
  6  8t   02  6  8t  2 
2
a(t)  a x 2  a y 2
  6t  4t   8   
2
2 2

s 
• Độ dài bán kính cong quỹ đạo:
m
a2  2  
2
• Độ lớn gia tốc: v 1
2
2 17 17 17
s  R    35,05 (m)
a n (1) 8 2
17
HƯỚNG
MATLAB
• Do công ty MathWorks thiết kế

• Cung cấp môi trường tính toán số và


lập trình

• Cho phép tính toán, vẽ đồ thị, biểu đồ,


thực hiện các thuật toán

• Tạo giao diện người dùng và liên kết với


những chương trình máy tính viết trên
nhiều ngôn ngữ lập trình khác
ĐỊNH
a) Vẽ quỹ đạo của vật
từ t0=0(s) đến
t1=5(s) HƯỚNG
b) Độ lớn vận tốc tại
thời điểm t = 1 (s)
c) Độ lớn gia tốc tại
thời điểm t = 1 (s)
d) Bán kính cong của
quỹ đạo tại thời
điểm t = 1 (s)

• Phương trình • Phương trình vận • Phương trình gia • Phương trình gia
chuyển động của tốc của vật trên các tốc của vật trên các tốc tiếp tuyến và
vật trên các trục trục trục gia tốc pháp tuyến
 Phương trình vận  Phương trình gia của vật
tốc của vật tốc của vật  Phương trình tính
• Thời điểm bắt đầu bán kính cong quỹ đạo
• Thời điểm tính vận • Thời điểm tính gia
và kết thúc chuyển của vật
tốc của vật tốc của vật
động của vật
• Thời điểm tính bán
kính cong quỹ đạo
của vật
CODE
MATLAB
CODE
MATLAB
Xóa các dữ liệu hiển thị trên cửa sổ

lệnh quản lí môi trường làm việc


Xóa toàn bộ các biến khỏi vùng làm
việc

1. clc
2. clear all Đóng các chương trình cũ
3. close all
4. syms x y t

Định nghĩa các biến kí hiệu


CODE
MATLAB Xóa các dữ liệu hiển thị trên cửa sổ

lệnh quản lí môi trường làm việc


Xóa toàn bộ các biến khỏi vùng làm
việc

1. clc
2. clear all Đóng các chương trình cũ
3. close all
4. syms x y t

Định nghĩa các biến kí hiệu


CODE
MATLAB
Nhập giá trị đầu vào

fprintf
7. fprintf(‘a) Quỹ đạo của vật trong khoảng
In ra màn hình một chuỗi ký tự hoặc
thời gian từ một
t0 đến t1\n
biểu ’) ; số học theo định dạng
thức
mong muốn

10. x = input(‘Nhập x(t): x(t) = ’) ;


11. y = input(‘Nhập y(t): y(t) = ’) ;
input

Nhậnt0:dữt0liệu
14. t0 = input(‘Nhập = ’)đầu
; vào từ bàn phím
15. t1 = input(‘Nhập t1: t1 = ’) ;
CODE
MATLAB
Nhập giá trị đầu vào

fprintf
7. fprintf(‘a) Quỹ đạo của vật trong khoảng
In ra màn hình một chuỗi ký tự hoặc
thời gian từ t0 đến t1\n ’) ; một biểu thức số học theo định dạng
mong muốn

10. x = input(‘Nhập x(t): x(t) = ’) ;


11. y = input(‘Nhập y(t): y(t) = ’) ;
input

14. t0 = input(‘Nhập t0: t0 = ’) ; Nhận dữ liệu đầu vào từ bàn phím


15. t1 = input(‘Nhập t1: t1 = ’) ;
CODE
MATLAB
Tính toán x(t) và y(t) tại mỗi giá trị t

18. t_values = t0:0.01:t1 ; values

Tạo miền giá trị


21. x_values = subs(x,t,t_values) ;
22. y_values = subs(y,t,t_values) ;
CODE
MATLAB
Tính toán x(t) và y(t) tại mỗi giá trị t

18. t_values = t0:0.01:t1 ; values

Tạo miền giá trị


21. x_values = subs(x,t,t_values) ;
22. y_values = subs(y,t,t_values) ;
CODE
Tạo ra một cửa sổ đồ thị mới

MATLAB
Vẽ đồ thị
Vẽ quỹ đạo của vật

25. figure; Đặt tiêu đề cho đồ thị


26. plot(x_values, y_values, 'LineWidth', 2);
27. title(['ĐỒ THỊ CỦA CHẤT ĐIỂM TỪ t0 =
',num2str(t0), ' ĐẾN
Đặtt1tên= cho
', num2str(t1)]);
trục
28. xlabel('Ox’);
29. ylabel('Oy’);
30. grid on;
Hiển thị lưới trên đồ thị
CODE Tạo ra một cửa sổ đồ thị mới

MATLAB
Vẽ đồ thị
Vẽ quỹ đạo của vật

25. figure; Đặt tiêu đề cho đồ thị


26. plot(x_values, y_values, 'LineWidth', 2);
27. title(['ĐỒ THỊ CỦA CHẤT ĐIỂM TỪ t0 =
',num2str(t0), ' ĐẾN t1 = ', num2str(t1)]); Đặt tên cho trục
28. xlabel('Ox’);
29. ylabel('Oy’);
30. grid on;
Hiển thị lưới trên đồ thị
Nhập giá trị đầu vào

KẾT QUẢ
CODE
MATLAB Kết quả: Quỹ đạo của vật

25. figure;
26. plot(x_values, y_values, 'LineWidth', 2);
27. title(['ĐỒ THỊ CỦA CHẤT ĐIỂM TỪ t0 =
',num2str(t0), ' ĐẾN t1 = ', num2str(t1)]);
28. xlabel('Ox’);
29. ylabel('Oy’);
30. grid on;
CODE
MATLAB
Xác định vận tốc của vật
Tính đạo hàm của hàm f(x) theo biến
t

33. t_val = input('Nhập giá trị của t: t = ‘);

36. vx = diff(x, t); Tính căn bậc hai

37. vy = diff(y, t);


38. v = sqrt(vx^2 + vy^2);
39. v_val = subs(v,Thay
t, t_val);
thế một biến hoặc một biểu
40. fprintf('b) Độthức
lớn bằng mộttốc
của vận giálúc
trịt hoặc
= %dmột
là: biểu
thức khác
%f\n', t_val, v_val);
CODE
MATLAB
Xác định vận tốc của vật
Tính đạo hàm của hàm f(x) theo biến
t

33. t_val = input('Nhập giá trị của t: t = ‘);

36. vx = diff(x, t); Tính căn bậc hai

37. vy = diff(y, t);


38. v = sqrt(vx^2 + vy^2);
39. v_val = subs(v, t, t_val); Thay thế một biến hoặc một biểu
40. fprintf('b) Độ lớn của vận tốc lúc t = %d là: thức bằng một giá trị hoặc một biểu
thức khác
%f\n', t_val, v_val);
KẾT QUẢ Nhập giá trị đầu vào

CODE
MATLAB
33. t_val = input('Nhập giá trị của t: t = ‘);

Kết quả: Vận tốc của vật


36. vx = diff(x, t);
37. vy = diff(y, t);
38. v = sqrt(vx^2 + vy^2);
39. v_val = subs(v, t, t_val);
40. fprintf('b) Độ lớn của vận tốc lúc t = %d là:
%f\n', t_val, v_val);
CODE
MATLAB
Xác định gia tốc của vật

43. ax = diff(vx, t);


44. ay = diff(vy, t);
45. a = sqrt(ax^2 + ay^2);
46. a_val = subs(a, t, t_val);
47. fprintf('c) Độ lớn của gia tốc lúc t = %d là:
%f\n', t_val, a_val);
KẾT QUẢ
CODE Tiếp tục chạy
Kết quả: Gia tốc của vật

MATLAB
43. ax = diff(vx, t);
44. ay = diff(vy, t);
45. a = sqrt(ax^2 + ay^2);
46. a_val = subs(a, t, t_val);
47. fprintf('c) Độ lớn của gia tốc lúc t = %d là:
%f\n', t_val, a_val);
CODE
MATLAB
Xác định bán kính cong của quỹ đạo

50. at = diff(v,t); % Gia tốc tiếp tuyến


51. an = sqrt(a^2 - at^2); % Gia tốc pháp tuyến
52. r = subs(v_val^2/an, t, t_val);
53. fprintf('d) Bán kính cong của quỹ đạo lúc t =
%d là: %f\n', t_val, r);
KẾT QUẢ
CODE Tiếp tục chạy
Kết quả: Bán kính cong của quỹ đạo

MATLAB
50. at = diff(v,t); % Gia tốc tiếp tuyến
51. an = sqrt(a^2 - at^2); % Gia tốc pháp tuyến
52. r = subs(v_val^2/an, t, t_val);
53. fprintf('d) Bán kính cong của quỹ đạo lúc t =
%d là: %f\n', t_val, r);
KẾT QUẢ
Nhận xét
Ưu điểm của MATLAB

• Cung cấp các chức năng để tạo và


hiển thị đồ thị, biểu đồ và hình ảnh
• Có môi trường tương tác tiện
lợi, giải quyết vấn đề nhanh
chóng và hiệu quả • Cung cấp nhiều thư viện và bộ công
cụ tích hợp để hỗ trợ người sử dụng

• Có bộ công cụ tối ưu hóa mã


nguồn, nâng cao chất lượng và
hiệu suất của chương trình • Thao tác tính toán dễ dàng, tiện lợi,
kết quả chính xác
Nhận xét
Nhược điểm của MATLAB

• MATLAB là một phần mềm thương


• Sử dụng nhiều bộ nhớ và tài mại và có chi phí cao đối với các
nguyên của máy tính phiên bản đầy đủ tính năng hoặc các
toolbox chuyên sâu

• Cú pháp khác biệt so với các


ngôn ngữ lập trình thông
• MATLAB có cộng đồng người dùng
dụng
và tài nguyên hạn chế hơn
Kết luận
THANKS FOR WATCHING

You might also like