Python không chỉ là một ngôn ngữ lập trình, mà còn là một hệ sinh thái đa dạng và phong phú, với hàng ngàn thư viện và công cụ hỗ trợ mọi khía cạnh của phân tích dữ liệu... Do đó, các lậ
Trang 1HOC PHAN DU LIEU LON
TRONG KINH TE VA KINH
Trang 21 Các thư viện Python quan trọng cho phân tích dữ
1.1 Thư viện Numpy ch ng n ng Tnhh Ho 6
1.11 Ưu điểm thư viện Numpy
1.4 Thư viện Seaborn tt ng ng nen ng nh nến 11
Trang 3Trước tiên, chúng em xin được gửi lời cảm ơn đến giảng viên TS
Nguyễn Hữu Xuân Trường đã giảng dạy trong chương trình học phần
Dữ liệu lớn trong kinh tế và kinh doanh, Học viện Chính sách và Phát
triển, thầy đã truyền đạt cho chúng em những kiến thức hữu ích về
Dữ liệu lớn trong kinh tế và kinh doanh làm cơ sở cho chúng em thực
hiện tốt bài tiểu luận này
Chúng em xin gửi lời biết ơn sâu sắc đến Học viện đã luôn tạo
điều kiện tốt nhất cho chúng emiđược học tập học phần Dữ liệu lớn
trong kinh tế và kinh doanh
Trong quá trình làm tiểu luận, do kinh nghiệm và thời gian còn
hạn chế nên bài làm khó tránh được những thiếu sót Chúng em rất
mong nhận được sự góp ý từ thầy để đề tài của nhóm chúng em
được hoàn thiện hơn
Chúng em xin chân thành cảm ơn!
VVVVVVVVVVVVVVVVVVVVVVVVVVNhóm si:
hiện
Trang 4LỜI MỞ ĐẦU
Python không chỉ là "chìa khóa vạn năng” mà còn là "cánh cửa
thần kỳ" mở ra thế giới dữ liệu đầy màu sắc Hãy tưởng tượng dữ liệu
như một đại dương bao la, ẩn chứa vô vàn kho báu giá trị Python chính là con tàu vững chắc, trang bị đầy đủ công cụ hiện đại, giúp bạn khám phá từng ngóc ngách của đại dương này
Ví dụ, với thư viện Pandas có thể dễ dàng "đánh bắt" dữ liệu từ
nhiều nguồn khác nhau như file CSV, Excel, cơ sở dữ liệu SQL, thậm chí cả dữ liệu từ các trang fieb Sau đó có thể "làm sạch" dữ liệu, loại
bỏ những tạp chất không cần thiết, sắp xếp và chuẩn bị dữ liệu sẵn
sàng cho quá trình phân tích
Tiếp theo, với Matplotlib và Seaborn, là một "họa sĩ" tài ba, biến những con số khô khan thành những biểu đồ trực quan, sinh
động.Có thể vẽ biểu đồ đường thể hiện xu hướng tăng trưởng doanh
số, biểu đồ cột so sánh hiệu quả của các chiến dịch marketing, hay biểu đồ tròn thể hiện sự phân bố thị phần của các sản phẩm
Và nếu muốn đi sâu hơn vào việc dự đoán tương lai, khám phá
những quy luật ẩn giấu trong dữ liệu, Scikit-learn sẽ là "nhà tiên tri" Với hàng loạt các thuật toán học máy mạnh mẽ có thể xây dựng những mô hình dự đoán khách hàng nào có khả năng rời bỏ dịch vụ, sản phẩm nào sẽ được ưa chuộng trong tương lai, hay thậm chí dự đoán kết quả của một trận bóng đá
Python không chỉ là một ngôn ngữ lập trình, mà còn là một hệ sinh thái đa dạng và phong phú, với hàng ngàn thư viện và công cụ
hỗ trợ mọi khía cạnh của phân tích dữ liệu
Trang 5GIỚI THIỆU
Khi máy tính ngày càng trở nên phổ biến vào những năm 1950,
1960 và 1970, các nhà khoa học máy tính đã tập trung phát triển chúng hơn nữa, cùng với đó là các phần mềm để thực hiện các tính toán dài, phức tạp và tự động hóa việc thu thập dữ liệu Các phần mềm này được viết bằng nhiều ngôn ngữ lập trình khác nhau Có rất
nhiều ngôn ngữ lập trình, mỗi ngôn ngữ đã được thiết kế để lấp đầy
khoảng trống chưa được đáp ứng trong khả năng của những ngôn ngữ đi trước, nhưng dù vậy, mọi ngôn ngữ được sử dụng phổ biến
đều có ưu điểm và nhược điểm Do đó, các lập trình viên chuyên
nghiệp thường có xu hướng sử dụng đồng thời một số ngôn ngữ lập
trình, nhưng vì các nhà khoa học có ít thời gian hơn đáng kể để đầu
tư nên họ thường thích thành thạo một ngôn ngữ có thể đáp ứng càng nhiều nhu cầu càng tốt từ thu thập dữ liệu, trực quan hóa dữ liệu, phân tích dữ liệu, Trong các ngôn ngữ lập trình thông dụng, Python là có thể được xem là một ngôn ngữ đáp ứng tốt các nhu cầu nghiên cứu của các nhà khoa học (Van Rossum, 1998) Hơn nữa, các tác giả của bài viết này cảm thấy rằng Python là một trong những ngôn ngữ dễ nhất dành cho người mới học, đồng thời đáp ứng tốt nhất cho mục đích khoa học, chẳng hạn như tự động hóa, xử lý số liệu, trực quan hóa và phân tích số liệu Nó cũng cung cấp một môi trường nơi người dùng chỉ có thể bắt đầu với những khả năng đơn giản nhưng có thể tiến tới sử dụng các tính năng mạnh mẽ hơn, chẳng hạn như lập trình hướng đối tượng, khi kỹ năng phát triển
1 Lịch sử hình thành:
Guido van Rossum bắt đầu phát triển Python vào tháng 12 năm
1989 tại Centrum Wiskunde & Informatica (CWI) ở Amsterdam Ông muốn tạo ra một ngôn ngữ lập trình mới với cú pháp dễ đọc nhằm thay thế cho ngôn ngữ ABC mà ông đang làm việc Những phiên bản ngôn ngữ Python được phát triển sau đó bao gồm: Python 1.0 được phát hành vào tháng 2 năm 1991, ngôn ngữitập trung cải thiện cácitính năng cơ bản và giao diện tương tác
Phiên bản 2.0 của Python được phát hành vào năm 2000 với
nhiều yếu tố cải tiến và tính năng mới
Python 3.0 - một phiên bảnitương thích ngược với Python 2.x - được phát hành vào năm 2008 Nền tảng ra đời vớiimục tiêu cải
Trang 6thiện cú pháp, loại bỏ tính năng lỗi thời và làm cho ngôn ngữ trở nên
ngắn gọn hơn
Trải qua nhiều giai đoạn thay đổi, Python đã trở thành một trong những ngôn ngữ lập trình phổ biến nhất trên thế giới Các phiên bản Python tiếp theo được cập nhật bằng nhiều yếu tố cải tiến, sửa lỗi và tiện ích mới Điều này đã giúp ngôn ngữ trở nên mạnh mẽ hơn và phù hợp với mọi nhu cầu của người dùng
Trang 71,1,1 ƯUu điểm thư viện Numpy
- _ Hiệu suất vượt trội: NumPy được xây dựng bằng ngôn ngữ C, cho phép thực hiện các phép tính trên mảng với tốc độ nhanh hơn đáng kể so với việc sử dụng các danh sách (list) thông thường của Python Điều này đặc biệt quan trọng khi làm việc với các tập dữ liệu lớn
- Cấu trúc dữ liệu mảng: Mảng NumPy là một cấu trúc đồng
nhất, nghĩa là tất cả các phần tử trong mảng phải có cùng kiểu
dữ liệu Điều này giúp tiết kiệm bộ nhớ và tăng tốc độ xử lý
- _ Hỗ trợ toán học và logic: NumPy cung cấp một loạt các hàm toán học (như cộng, trừ, nhân, chia, lũy thừa, hàm lượng giác,)
và logic (so sánh, điều kiện, ) để làm việc với mảng một cách
dễ dàng
- Nền tảng cho các thư viện khác: Nhiều thư viện phân tích
dữ liệu khác như Pandas, SciPy, Matplotlib đều dựa trên NumPy
Việc nắm vững NumPy sẽ giúp bạn dễ dàng làm việc với các
thư viện này
1.1.2 Thao tác với thư viện Numpy
- Đổi tượng mảng đa chiều
e Tao ndarray
e Cac kiểu dữ liệu cho ndarray
¢ Chi muc mảng va index
se Chuyển đổi mảng
- Ham toán học và thống kê
Trong Numpy cung cấp một số hàm thống kê cơ bản như: + abs, fabs: tính toán giá trị tuyệt đối theo từng phần tử + sqrt: tinhs can bac hai cua tung phan tu trong mang + square: tính bình phương mỗi phần tử trong mảng
+ exp: hàm số e* cho mỗi phần tử
+ Khac: log, sign, ceil, floor, rint,
- _ Đại số tuyến tinh
Trang 8Các phép toán đại số tuyến tính, như nhân ma trận, phân rã, định thức và toán ma trận vuông khác, là một phần quan trọng của nhiều thư viện mảng Nhân hai mảng hai chiều vớii:là một tích số theo phần tử, trong khi phép nhân ma trận yêu cầu sử dụng hàmidothoặcietoán tử trung tố.idotvừa là một phương thức mảng vừa là một hàm trong khônginumpygian tên để thực hiện phép nhân ma trận
- _ Tạo số ngẫu nhiên
Giúp tạo ra một mảng số ngẫu nhiên
In [141]: samples = np.random.standard_normal(size=(4, 4))
In [142]: samples Out [142]:
1.2 Thư viện Pandas
Pandas (Python Data Analysis Library) là một thư viện Python được sử dụng rộng rãi trong lĩnh vực khoa học dữ liệu và phân tích
dữ liệu Nó cung cấp các cấu trúc dữ liệu linh hoạt và hiệu quả (chủ yếu là Series và DataFrame) để làm việc với dữ liệu dạng bảng, cùng với một loạt các công cụ mạnh mẽ để thao tác, xử lý, phân tích và trực quan hóa dữ liệu
1.2.1 Uu diém thu vién Pandas
Dễ dàng làm việc với dữ liệu có cấu trúc: Pandas cung cấp
các cấu trúc dữ liệu Series và DataFrame tương tự như bảng
tính Excel hoặc bảng trong SQL, giúp bạn dễ dàng tổ chức, truy
cập và thao tác dữ liệu
Xử lý dữ liệu mạnh mẽ: Pandas cung cấp một loạt các công
cụ để xử lý dữ liệu như lọc, sắp xếp, nhóm, kết hợp, điền giá trị
thiếu, chuyển đổi kiểu dữ liệu,
Phân tích dữ liệu hiệu quả: Pandas tích hợp với các thư viện khác như NumPy và Matplotlib, cho phép bạn thực hiện các phép tính thống kê, phân tích dữ liệu theo nhóm, và trực quan hóa dữ liệu một cách dễ dàng
Trang 9- Đọc và ghi dữ liệu linh hoạt: Pandas hỗ trợ đọc và ghi dữ liệu từ nhiều định dạng khác nhau như CSV, Excel, SQL, JSON,
HTML,
1.2.2 Tim hiéu thu vién Pandas
Sê-ri là một đối tượng giống như mảng một chiều chứa một chuỗi các giá trị (có kiểu tương tự như kiểu NumPy) cùng loại và một mảng nhãn dữ liệu liên quan, được gọi làichỉ mụcicủa nó Chuỗi đơn giản nhất được hình thành chỉ từ một mảng dữ liệu:
data = {"state": ["Ohio", "Ohio", "Ohio", "Nevada", "Nevada", "Nevada"],
"year": [2000, 2001, 2002, 2001, 2002, 2003],
"pop": [1.5, 1.7, 3.6, 2.4, 2.9, 3.2]}
frame = pd.DataFrame(data)
In [50]: frame | Out [50]:
state year pop
Trang 10+ Ghép nối, kết hợp dữ liệu
+ Thống kê mô tả
+ Trực quan hóa dữ liệu
1.3 Thư viện Matplotiib
Matplotlib là một thư viện nổi tiếng và mạnh mẽ trong việc tạo
ra các biểu đồ và biểu đồ mô tả dữ liệu trên python Được phát triển
bởi John Hunter vào năm 2002, cho phép người dùng tạo ra các loại biểu đồ đơn giản hoặc phức tạp với độ tùy chỉnh cao Nó cũng hỗ trợ các loại biểu đồ khác nhau như đường, cột, barchart, scatter plot và nhiều hơn nữa
Để cài đặt Matplotlib nếu bạn có Anaconda chỉ cần gõ conda install matplotlib hoặc sử dụng tools pip pip install matplotlib Thao tac với thư viện Matplotlib
-Tạo một biểu đồ đơn giản
Import matplotlib.pyplot as plt
Import numpy as np
Ở đây chúng ta import Matplotlib’s Pyplot module và thư viện Numpy
vì hầu hết các dữ liệu mà ta sẽ làm việc sẽ chỉ ở dạng mảng
Chuyển hai mảng làm đối số đầu vào cho phương thức plot() và sử
dụng phương thức shofi() để gọi biểu đồ được yêu cầu
10
Trang 11Định dạng mặc định là b- có nghĩa là một đường màu xanh lam đặc,
go có nghĩa là vòng tròn màu xanh lá cây Tương tự như vậy, chúng
ta có thể thực hiện nhiều kết hợp như vậy để định dạng biểu đồ của
mình
11
Trang 12
10 15 20 25 30 35 40
X label
-Tạo biểu đồ thanh
Sử dụng phương thức bar() để tạo các biểu đồ thanh có các đối số:
biến phân loại, giá trị và màu sắc của chúng (nếu bạn muốn chỉ định
bất kỳ)
Để tạo biểu đồ thanh ngang sử dụng phương thức barh()
Để chồng các cột, có thể sử dụng đối số bottom và đề cập đến biểu
đồ thanh mà chúng ta muốn xếp chồng bên dưới làm giá trị của nó
12
Trang 13boys_average_marks = [68, 67, 77, 61, 70]
girls_average_marks = [72, 97, 69, 69, 66]
index = np.arange(5)
width = 0.30
plt.bar(index, boys_average_marks, width, color="blue", label="Bo
plt.bar(index, girls average marks, width, color="red", label="Gi
s Marks" » bottom=boys average marks)
Một loại biểu đồ cơ bản nữa là biểu đồ Pie có thể được tạo bằng
phương thức pie()
13
Trang 14market_share = [20, 25, 15, 10, 29]
Explode = [0,0.1,0,0,0]
plt.pie(market_share,explode=Explode, labels=firms,shadow=True,startangle=45) plt.axis( ‘equal’ )
plt.legend(title="List of Firms")
plt.show()
Firm A
List of Firms Firm A Firm B Firm C
Firm D
Firm E Firm B Firm E
Firm C
1.4 Thu vién Seaborn
Seaborn là một thư viện trực quan hóa dữ liệu thống trị, là một lý do khác để các lập trình viên hoàn thành các dự án một cách hiệu quả Thư viện Python Seaborn được sử dụng để giảm bớt nhiệm vụ trực quan hóa dữ liệu đầy thách thức và nó dựa trên Matplotlib Seaborn cho phép tạo đồ họa thống kê thông qua các chức năng sau:
e Mot API dựa trên tập dữ liệu cho phép so sánh giữa nhiều biến
se Hỗ trợ lưới nhiều ô để dễ dàng xây dựng các hình ảnh trực quan
14
Trang 15Để cài đặt thư viện Python Seaborn, bạn có thể sử dụng các lệnh sau dựa trên nền tảng bạn sử dụng: Pip install seaborn hoặc Conda install seaborn Sau khi cài đặt này, chỉ cần đảm bảo cài đặt các gói
và thư viện mà seaborn phụ thuộc vào
Thao tác với thư viện Seaborn
Đầu tiên, chúng ta sẽ khai báo dữ liệu và lưu vào một list Ví dụ, ta
sẽ sử dụng dữ liệu về số lượng sản phẩm bán được trong 6 tháng đầu
tiên của năm
# khai báo dữ liệu
Months = [1,2,3,4,5,6]
Products sold = [1000, 1500, 2000, 3000, 3500, 4000]
# tạo biểu đồ đường bằng Seaborn
Sns.lineplot(x=months, y=products_sold)
# tùy chỉnh biểu đồ đường
Sns.lineplot(x=months, y=products_ sold, color="red”, linestyle="—fl)
# khai báo dữ liệu
Sns.countplot(x=products, data=sales, color=”green”)
# khai báo dữ liệu
Regions = [flKhu vực A”, flKhu vực B”, flKhu vực C”]
Sales = [50000, 80000, 100000]
# tạo biểu đồ hình tròn bằng Seaborn
15
Trang 16Thư viện này tập trung sâu trong việc xây dựng các yếu tố: dễ sử
dụng, dễ code, dễ tham khảo, dễ làm việc, hiệu quả cao
Nhóm thuật toán
Thư viện tập trung vào việc mô hình hóa dữ liệu Sau đâu là một số nhóm thuật toán được xây dựng bởi thư viện scikit-learn:
¢ Clustering: Nhém thuật toán Phân cụm dữ liệu không gán nhãn
Ví dụ thuật toán KMeans
e Cross Validation: Kiểm thử chéo, đánh giá độ hiệu quả của thuật toán học giám sát sử dụng dữ liệu kiểm thử (validation data) trong quá trình huấn luyện mô hình
se Datasets: Gồm nhóm các Bộ dữ liệu được tích hợp sẵn trong thư viện Hầu như các bộ dữ liệu đều đã được chuẩn hóa và mang lại hiêu suất cao trong quá trình huấn luyện như ïiris, digit,
s« _ Dimensionality Reduction: Mục đích của thuật toán này là để Giảm số lượng thuộc tính quan trọng của dữ liệu bằng các
phương pháp như tổng hợp, biểu diễn dữ liệu và lựa chọn đặc
trưng Ví dụ thuật toán PCA (Principal component analysis)
e Ensemble methods: Các Phương pháp tập hợp sử dụng nhiều thuật toán học tập để có được hiệu suất dự đoán tốt hơn so với bất kỳ thuật toán học cấu thành nào
e eature extraction: Trích xuất đặc trưng Mục đích là để định nghĩa các thuộc tình với dữ liệu hình ảnh và dữ liệu ngôn ngữ
e Feature selection: Trich chon dac trung Lua chọn các đặc trưng
có ý nghĩa trong việc huấn luyện mô hình học giám sát
se Parameter Tuning: Tinh chỉnh tham số Các thuật toán phục vụ việc lựa chọn tham số phù hợp để tối ưu hóa mô hình
1ó