1. Trang chủ
  2. » Giáo Dục - Đào Tạo

phân tích dữ liệu tài chính quy mô lớn phương pháp làm sạch dữ liệu

61 1 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Phân tích dữ liệu tài chính quy mô lớn - Phương pháp làm sạch dữ liệu
Tác giả Nhóm 02
Chuyên ngành Phân tích dữ liệu tài chính
Định dạng
Số trang 61
Dung lượng 34,32 MB

Nội dung

Khái niệmChuẩn hóa Normalization là quá trình tách bảng phân rã thành các bảng nhỏ hơn dựa vào các phụ thuộc hàm.Mục đích của chuẩn hoá là loại bỏ các dư thừa dữ liệu, các lỗi khi thao t

Trang 1

PHÂN TÍCH DỮ LIỆU TÀI CHÍNH QUY MÔ LỚN

Nhóm 02 - Lớp 02PHƯƠNG PHÁP

LÀM SẠCH

DỮ LIỆU

Trang 2

1 Chuẩn hoá dữ liệu2 Xử lý ngoại lệ

3 Scaling và Normalization

NỘI DUNG

Trang 3

1.1 Khái niệm

Chuẩn hóa (Normalization) là quá trình tách

bảng (phân rã) thành các bảng nhỏ hơn dựa

vào các phụ thuộc hàm.Mục đích của chuẩn hoá là loại bỏ các dư thừa

dữ liệu, các lỗi khi thao tác dư thừa và các lỗikhi thao tác dữ liệu (Insert, Delete, Update)

Tuy nhiên việc này cũng làm tăng thời gian

truy vấn do cần phải join nhiều bảng để lấy dữ

liệu.

1 Chuẩn hoá dữ liệu

Trang 4

1.2 Các dạng chuẩn hóa dữ liệu dạng chuẩn

Có 4 dạng cơ bản là dạng chuẩn: 1NF, 2NF, 3NF và BCNF Chuẩn BCNF sẽ bao gồm

3 loại chuẩn là 1NF, 2NF và 3NF Ngoài ra, còn có các dạng chuẩn hoá khác như:Chuẩn hoá dữ liệu 4NF, 5NF, 6NF.

Các dạng chuẩn hóa được sắp

Trang 5

1 Chuẩn hoá dữ liệu

1.2.1 Chuẩn hoá 1NF - First Normal Form

Một bảng (quan hệ) được gọi là ở dạngchuẩn 1NF nếu và chỉ nếu toàn bộ các

miền giá trị của các cột có mặt trongbảng (quan hệ) đều chỉ chứa các giá trị

phải chứa một giá trị duy nhất.

Trang 6

1 Chuẩn hoá dữ liệu

B21DCTC020Nguyen Trung Anh abc

123 

stu.ptit.edu.vngmail.com

09123456780936782239 TC02

B21DCTC230Nguyen Thi Nhan hahaha

hihihi 

stu.ptit.edu.vngmail.com

08372538280372986928 TC01

B21DCTC032Nguyen Van Doi doilathe

Doichanv

stu.ptit.edu.vngmail.com

06369263880378253863 TC02

1.2.1 Chuẩn hoá 1NF - First Normal Form

03

=> Bảng này đang vi phạm 1NF vì cột Mail chứa nhiều giá trị(nhiều mail) nên các giá trị trong cột không phải là nguyên tố.

Trang 7

1 Chuẩn hoá dữ liệu

B21DCTC020 Nguyen Trung Anhabcstu.ptit.edu.vn0912345678TC02

B21DCTC020 Nguyen Trung Anh123gmail.com0936782239TC02

B21DCTC230 Nguyen Thi Nhanhahahagmail.com0837253828TC01

B21DCTC230 Nguyen Thi Nhanhihihi stu.ptit.edu.vn0372986928TC01

B21DCTC032 Nguyen Van Doidoilathestu.ptit.edu.vn0636926388TC02

B21DCTC032 Nguyen Van DoiDoichanv gmail.com0378253863TC02

1.2.1 Chuẩn hoá 1NF - First Normal Form

Bảng dữ liệu trên sau khi đưa về dạng 1NF được biểu diễn như sau:

Trang 8

1 Chuẩn hoá dữ liệu

Mã SVHọ va tênMailDomainSDTLớp

B21DCTC020Nguyen Trung Anhabcstu.ptit.edu.vn0912345678TC02B21DCTC020Nguyen Trung Anh123gmail.com0936782239TC02B21DCTC230Nguyen Thi Nhanhahahagmail.com0837253828TC01B21DCTC230Nguyen Thi Nhanhihihi stu.ptit.edu.vn0372986928TC01B21DCTC032Nguyen Van Doidoilathestu.ptit.edu.vn0636926388TC02B21DCTC032Nguyen Van DoiDoichanv gmail.com0378253863TC02

1.2.1 Chuẩn hoá 1NF - First Normal Form

03

=> Bảng trên đã đạt chuẩn hoá 1NF vì:

Không có nhóm lặp trong bảng: tất cả các giá trị trong các cột đều là giá trị duy nhất vàkhông chứa nhóm lặp. 

Mỗi hàng là duy nhất: mỗi hàng đại diện cho sự kết hợp duy nhất của các thuộc tính.Các cột có cấu trúc rõ ràng: các cột không chứa nhiều giá trị trong một ô, đảm bảo cấutrúc dạng chuẩn hoá 1NF

Trang 9

1 Chuẩn hoá dữ liệu

Để chuẩn hóa dạng 2NF, yêu cầu dữ liệu phảiđạt chuẩn 1NF và tất cả các thuộc tính khôngkhóa (non-key attributes) phải phụ thuộc

hoàn toàn vào khóa chính (primary key)

1.2.2 Chuẩn hoá 2NF - Second Normal Form

Chuẩn hóa dạng 2NF sẽ tách dữ liệuthành các bảng riêng biệt Mỗi bảng sẽcó khóa chính và khóa ngoại - là khóachính của bảng khác để liên kết các

bảng lại với nhau

Chuẩn hóa dạng 2NF giúp dữ liệu khôngbị trùng lặp, tối ưu không gian lưu trữ vàdễ dàng hơn trong việc quản lý và cậpnhập dữ liệu một cách nhất quán

Chuẩn hóa dạng 2NF cũng giúp bảo toàntính toàn vẹn của dữ liệu, khi đó các thaotác trên dữ liệu sẽ rõ ràng và chính xáchơn; tối ưu hóa hiệu suất truy vấn và dễ

dàng phát hiện sửa lỗi dữ liệu

Trang 10

1 Chuẩn hoá dữ liệu

B21DCTC020Nguyen Trung AnhTC02

B21DCTC230Nguyen Thi NhanTC01

B21DCTC032Nguyen Van DoiTC02

1.2.2 Chuẩn hoá 2NF - Second Normal Form

Chuẩn hóa bảng trên thành 2NF

Bảng 1 - Thông tin sinh viên

Bảng 2 - Thông tin liên lạc sinh viên

Trang 11

1 Chuẩn hoá dữ liệu

1.2.3 Chuẩn hoá 3NF - Third Normal Form

Để chuẩn hóa dạng 3, dữ liệu phải đạt chuẩn 2NF vàkhông có sự bắc cầu trong phụ thuộc hàm

Dạng chuẩn hóa thứ ba tiếp tục cải thiện cấu trúcbảng bằng cách loại bỏ các phụ thuộc bắc cầu giữacác thuộc tính không khóa với nhau

Phụ thuộc chuyển tiếp xảy ra khi một thuộc tính phụthuộc vào một thuộc tính khác không phải là khóachính

Trang 12

1 Chuẩn hoá dữ liệu

trong bảng phụ thuộc

vào khoá chính Tuy nhiên vẫn có sự phụ

thuộc lẫn nhau giữa cácthuộc tính không phải

khóa chính như: Mailphụ thuộc vào Domain.

Trang 13

1 Chuẩn hoá dữ liệu

1.2.3 Chuẩn hoá 3NF - Third Normal Form

Bảng 1 - Thông tin liên lạc SĐT

Bảng 2 - Thông tin liên lạc bằng mail

Trang 14

1 Chuẩn hoá dữ liệu

Sau khi chuẩn hóa, tách dữ liệu thành 2 bảng riêng biệt, ta loạibỏ được hoàn toàn sự phụ thuộc lẫn nhau giữa các thuộc tínhkhông khóa trong bảng

1.2.3 Chuẩn hoá 3NF - Third Normal Form

Chuẩn hóa dạng 3NF cũng có những lợi ích giống với chuẩnhóa loại 2 nhưng hiệu suất được tối ưu hóa hơn, nhanh hơn,chính xác hơn vì dữ liệu được tổ chức hợp lý mà không bị dưthừa

3NF là một dạng chuẩn hóa quan trọng giúp đảm bảo cơ sở dữliệu hoạt động hiệu quả và ít xảy ra lỗi liên quan đến dữ liệu

Trang 15

1 Chuẩn hoá dữ liệu

1.2.3 Chuẩn hoá 3NF - Third Normal Form

Đây là tổng quát để đạt được cấp chuẩn hoá 3NF trong

chuẩn hoá dạng chuẩn

Trang 16

1 Chuẩn hoá dữ liệu

1.2.4 Chuẩn hóa BCNF

Là dạng chuẩn hóa mạnh hơn so vớichuẩn hóa thứ 3 (3NF) BCNF giải quyếtcác vấn đề mà 3NF có thể bỏ sót khi một

bảng có nhiều khóa ứng viên (candidatekeys) và một trong các khóa này có thuộc

tính không khóa phụ thuộc vào nó

BCNF thường được áp dụng trong các trườnghợp mà 3NF không đủ để loại bỏ các phụ thuộcbất hợp lý, đặc biệt là khi có nhiều khóa ứng viên

trong một bảng BCNF đảm bảo rằng CSDL có

cấu trúc mạnh mẽ và đáng tin cậy hơn

Trang 17

1 Chuẩn hoá dữ liệu

1.2.4 Chuẩn hóa BCNF

Bảng lưu trữ về thông tin của các khóa học, trước khi chuẩn hóa BCNF

=> Bảng này dùng khóa chính kết hợp ClassID và Professor để xác định 1 lớp học Tuynhiên có phụ thuộc hàm là Professor → Room, nghĩa là mỗi giáo sư chỉ có thể dạytrong một phòng học cụ thể Điều này dẫn đến vấn đề khi một phòng học có thể

được gán cho nhiều lớp học khác nhau, và bảng không đạt chuẩn BCNF.

Trang 18

1 Chuẩn hoá dữ liệu

1.2.4 Chuẩn hóa BCNF

Dữ liệu được chuẩn hóa BCNF

Trang 19

1 Chuẩn hoá dữ liệu

1.3 Các dạng chuẩn hóa dữ liệu khác

Chuẩn hóa dữ liệu trong cơ sở dữ liệu khôngchỉ dừng lại ở các dạng chuẩn từ 1NF đếnBCNF, mà còn có các cấp cao hơn như chuẩn

hóa cấp 4 (4NF), cấp 5 (5NF), và thậm chí làcấp 6 (6NF) Những cấp chuẩn hóa này nhằm

mục đích tập trung vào việc loại bỏ các loạiphụ thuộc phức tạp hơn, đảm bảo tính toàn

vẹn và hiệu quả tối ưu của cơ sở dữ liệu

Trang 20

1 Chuẩn hoá dữ liệu

1.3.1 Chuẩn hoá dữ liệu 4NF

4NF tập trung vào việc loại bỏ cácphụ thuộc đa trị (Multivalued

Dependency - MVD) Một bảng được coi là đạt chuẩn4NF nếu nó đã đạt chuẩn Boyce-

Codd Normal Form (BCNF) vàkhông chứa các phụ thuộc đa trị

không cần thiết

Trang 21

1 Chuẩn hoá dữ liệu

1.3.2 Chuẩn hoá dữ liệu 5NF

5NF tập trung vào việc loại bỏ các phụ thuộc kết hợp(Join Dependency) Một bảng được coi là đạt chuẩn5NF nếu nó đã đạt chuẩn 4NF và không thể phân rãthành các bảng nhỏ hơn mà không làm mất thông tin

Trang 22

1 Chuẩn hoá dữ liệu

1.3.3 Chuẩn hoá dữ liệu 6NF

6NF là dạng chuẩn hóa cao nhất và tập trung vào việctách tất cả các thuộc tính vào các bảng có cấu trúc đơngiản nhất (atomic) Một bảng được coi là đạt chuẩn 6NF

nếu nó không thể phân tách thêm mà vẫn giữ nguyên

các phụ thuộc và quan hệ giữa các thuộc tính

Trang 23

DEMO CODE

Trang 25

2 Xử lý ngoại lệ

2.2 Ngoại lệ trong chuẩn hoá dữ liệu là gì ?

“Điều kiện bất thường hoặc cần xử lý đặc biệt - thườngthay đổi luồng bình thường của việc thực hiện chương

trình” - theo WikipediaVà việc xử lý chúng đòi hỏi:

“Cấu trúc ngôn ngữ lập trình chỉ định rõ ràng hoặc cơ

Trang 26

2 Xử lý ngoại lệ

Ngoại lệ là một yếu tố cơbản của lập trình hiệnđại; nó tồn tại để làm cho

phần mềm của chúng tatốt hơn Thay vì sợ ngoạilệ, chúng ta nên nắm lấy

chúng và học cáchhưởng lợi từ chúng.

Trang 27

2 Xử lý ngoại lệ

“Ném” ngoại lệCuối cùng (Optional)

Lên cấp ngoại lệ

2.3 Cơ chế ngoại lệ hoạt động

Trang 28

2 Xử lý ngoại lệ

“Ném” ngoại lệ

Phát hiện ngoại lệ

2.3 Cơ chế ngoại lệ hoạt động

Khi một đoạn mã gặp lỗi hoặc tình huống bấtthường, một ngoại lệ (exception) được phát

sinh Ví dụ, khi chia cho 0 hoặc mở một tệpkhông tồn tại, hệ thống phát sinh ngoại lệ

Khi một lỗi xảy ra, hệ thống hoặc mã lệnh sẽ némmột đối tượng ngoại lệ (exception object) chứathông tin về lỗi Đối tượng này thường bao gồm

loại lỗi và thông điệp lỗi mô tả tình trạng

Trang 29

2 Xử lý ngoại lệ

Xử lý ngoại lệ

Khi một ngoại lệ được ném, chương trình sẽ tìmkiếm một khối mã có thể xử lý lỗi này Điều nàyđược thực hiện thông qua cấu trúc điều kiện màthường được gọi là "try-catch" ( Trong JAVA ) hoặc"try-except" ( Trong Python ) trong các ngôn ngữlập trình

try block: Đây là nơi mã lệnh có thể phát sinh

lỗi Nếu một lỗi xảy ra, chương trình sẽ chuyểnsang khối catch hoặc except

catch or except block: Đây là nơi mà bạn xử lý

ngoại lệ Bạn có thể ghi lại lỗi, hiển thị thôngbáo, hoặc thực hiện các hành động khôi phục

2.3 Cơ chế ngoại lệ hoạt động

Trang 30

2 Xử lý ngoại lệ

Cuối cùng (Optional)

Lên cấp ngoại lệ

Một số ngôn ngữ lập trình cungcấp khối finally để thực hiện cácthao tác dọn dẹp hoặc các hành

động cần thiết khác dù cho cóxảy ra ngoại lệ hay không

2.3 Cơ chế ngoại lệ hoạt động

Nếu khối catch không xử lý đượcngoại lệ, nó có thể được "ném" lên

cấp cao hơn trong chuỗi gọi hàm,cho đến khi được xử lý hoặc đạtđến điểm cao nhất của ứng dụng,

nơi chương trình có thể kết thúc

Trang 31

2.3 Cơ chế ngoại lệ hoạt động

Cơ chế hoạt động của Xử lý ngoại lệ trong Python

Trang 32

2.3 Cơ chế ngoại lệ hoạt động

Cơ chế hoạt động của Xử lý ngoại lệ trong Java

Trang 33

Khi chuẩn hóa dữ liệu, việc xử lý ngoại lệ là rất quantrọng để đảm bảo rằng dữ liệu đầu vào không gây ra lỗitrong quá trình chuẩn hóa và mô hình hóa

Dưới đây là một số cách để xử lýngoại lệ trong chuẩn hóa dữ liệu

Trang 34

2 Xử lý ngoại lệ

2.4 Cách xử lý

Xử lý giá trị thiếu

01

Loại bỏ các bản ghi có giá trị thiếu: Nếu số lượng bản ghi

thiếu không nhiều, có thể loại bỏ chúng

Thay thế giá trị thiếu bằng giá trị trung bình, trung vịhoặc mode: Cách này giúp duy trì kích thước của tập dữ

liệu

Sử dụng các kỹ thuật imputation: Sử dụng các phương

pháp như KNN imputation hoặc hồi quy để ước lượng giátrị thiếu

Trang 35

2 Xử lý ngoại lệ

Phát hiện giá trị ngoại lệ: Sử dụng các phương pháp

thống kê như IQR (interquartile range) hoặc các kỹ thuậtnhư Z-score để phát hiện giá trị ngoại lệ

Xử lý giá trị ngoại lệ

(outliers)

02

Loại bỏ hoặc thay thế: Nếu giá trị ngoại lệ không phải là

thông tin quan trọng, có thể loại bỏ chúng hoặc thay thếbằng giá trị gần đúng hơn như trung bình hoặc trung vị

2.4 Cách xử lý

Trang 36

Sửa lỗi: Nếu có lỗi chính tả

hoặc lỗi định dạng, cần sửachúng trước khi chuẩn hóa.

Trang 37

2 Xử lý ngoại lệKiểm tra và chuẩn hóa các giá trị ngoài

khoảng hợp lệ

04

2.4 Cách xử lý

Áp dụng các quy tắc chuẩn hóa: Đảm bảo rằng các giá trị được chuẩn hóa về

một khoảng giá trị hợp lệ (ví dụ: chuẩn hóa về [0,1] hoặc [-1,1]).

Trang 38

Đảm bảo rằng tấtcả các dữ liệu liên

quan đến đơn vịđo lường được

chuyển đổi vềcùng một đơn vị

Chuẩn hóa tênbiến và định dạng

dữ liệu: Đảm bảo

rằng các tên biếnvà định dạng dữliệu là nhất quántrong toàn bộ tập

dữ liệu

Trang 40

2.5 Custom Ngoại lệ

Trang 41

Kết quả trả về 2 Xử lý ngoại lệ

Trang 42

3 Scaling vàNormalization

Khi xử lý dữ liệu thô, chúng ta thườnggặp nhiều dạng dữ liệu phức tạp, khiếnviệc phân tích và tìm ra insights trở nênkhó khăn.

Biến đổi dữ liệu giúp mô hình học tốthơn và đưa ra dự đoán chính xác, gầnvới kết quả mong muốn.

Trang 43

3 Scaling và Normalization

Scaling là quá trình biến đổi giá trị của dữ liệu về mộtkhoảng nhất định, như 0 - 100 hoặc thường là 0 - 1

Việc scale dữ liệu giúp đảm bảo rằng các thay đổi nhỏ

trong dữ liệu không gây ra kết quả khó dự đoán

Quá trình scale cần được thực hiện nhất quán với

mục đích sử dụng của thước đo

12

34

3.1 Scaling

Trang 45

3 Scaling và Normalization

3.1.1 Simple Features Scaling

Phương pháp này hoạt động bằng cách chia từng giá trị trong một đặctrưng cho giá trị lớn nhất của đặc trưng đó, giúp đưa các giá trị về mộtkhoảng nhất định, thường là từ 0 đến 1.

Trang 46

import numpy as npimport seaborn as snsimport matplotlib.pyplot as plt# set seed for reproducibilitynp.random.seed(0)

# generate 1000 data points randomly drawn from an exponential distribution and shift themoriginal_data = np.random.exponential(scale=50, size=1000) - 50

# Simple Features Scaling: divide each data point by the maximum value in the datasetsimple_scaled_data = original_data / np.max(original_data)

# plot both together to comparefig, ax = plt.subplots(1, 2, figsize=(12, 6))# Plot original data

sns.histplot(original_data, ax=ax[0], color='b', kde=True, edgecolor=None, alpha=0.6)ax[0].set_title("Original Data")

# Plot simple scaled datasns.histplot(simple_scaled_data, ax=ax[1], color='r', kde=True, edgecolor=None, alpha=0.6)ax[1].set_title("Simple Features Scaled Data")

plt.show()

3.1.1.SimpleFeaturesScaling

Trang 47

3 Scaling và Normalization

Trang 48

3.1.2 Min-Max Scaling

Mục tiêu của phương pháp này là đưa các giá trị về gần hơn với giá trịtrung bình của các đặc trưng Phương pháp này thường biến đổi các giátrị về một khoảng cụ thể, thường là [0,1] hoặc [−1,1].

Trang 49

import numpy as npimport seaborn as snsimport matplotlib.pyplot as pltfrom sklearn.preprocessing import minmax_scale# set seed for reproducibility

np.random.seed(0)# generate 1000 data points randomly drawn from an exponential distribution and shift themoriginal_data = np.random.exponential(scale=50, size=1000) - 50

# min-max scale the data between 0 and 1min_max_scaled_data = minmax_scale(original_data)# plot both together to compare

fig, ax = plt.subplots(1, 2, figsize=(12, 6))# Plot original data

sns.histplot(original_data, ax=ax[0], color='b', kde=True, edgecolor=None, alpha=0.6)ax[0].set_title("Original Data")

# Plot min-max scaled datasns.histplot(min_max_scaled_data, ax=ax[1], color='g', kde=True, edgecolor=None, alpha=0.6)ax[1].set_title("Min-Max Scaled Data")

plt.show()

3.1.2 Max

Min-Scaling

Trang 50

3 Scaling và Normalization

3.1.2 Max

Min-Scaling

Trang 51

Các giá trị được scale nằm trongkhoảng từ 0 đến 1, nhưng khôngđảm bảo rằng giá trị nhỏ nhất sẽ là0.

Giá trị nhỏ nhất được chuyển thành 0và giá trị lớn nhất được chuyển thành1, toàn bộ dữ liệu được điều chỉnh vàokhoảng [0, 1]

Ảnh hưởng của

ngoại lệ

Ít nhạy cảm hơn với ngoại lệ, nhưngvẫn có thể bị ảnh hưởng nếu giá trịlớn nhất là một ngoại lệ

Rất nhạy cảm với các giá trị ngoại lệ,vì các giá trị này có thể tác động

mạnh đến việc xác định giá trị nhỏnhất và lớn nhất

3.1.3 So sánh

Trang 52

3 Scaling và Normalization

Đặc điểmSimple Features ScalingMin-Max Scaling

Tác động đếnphân phối dữ liệu

Không làm thay đổi phân phối củadữ liệu, chỉ điều chỉnh các giá trị dựatrên giá trị lớn nhất

Giữ nguyên tương quan của dữ liệunhưng thay đổi giá trị nhỏ nhất và lớnnhất để phù hợp với phạm vi mới

Ứng dụng

Thích hợp cho các bài toán đơn giảnhoặc khi chỉ cần co giãn dữ liệu dựatrên giá trị lớn nhất, không quan

tâm đến giá trị nhỏ nhất

Thích hợp khi cần chuẩn hóa dữ liệuvào một phạm vi cố định [0, 1], đặcbiệt trong các mô hình học máy yêucầu xử lý dữ liệu đồng nhất về phạmvi giá trị

3.1.3 So sánh

Trang 53

3 Scaling và Normalization

3.2 Normalization

Mục tiêu của normalization là biến đổi dữ liệu để đạt được một phân phối chuẩn

3.2.1 Standardization hay Z-score normalization

Phương pháp này rất hữu ích đối với các dữ liệu có giá trị ngoại lệ,đặc biệt khi ta không muốn loại bỏ hoàn toàn ảnh hưởng của chúng

Ngày đăng: 04/09/2024, 15:32

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w