Lời nói đầu Trong thời buổi hiện đại ngày nay, công nghệ thông tin cũng như những ứng dụng của nó không ngừng phát triển, lượng thông tin và cơ sở đữ liệu được thu thập và lưu trữ cũng
Trang 1TRƯỜNG ĐẠI HỌC ĐẠI NAM
OA CONG NGHE THONG TIN
PAI NAM
ý
^
QUAN LY BANG PYTHON
Giang viérhuong dan: ThS Nguyễn Văn Tuấn
Sinh viên ffực hiện: Nguyễn Tiến Dũng
Mã sinh viễn: 1351020012
3
—————^-*>«>`*†‹+»*——= +©=— "mầm
Hà Nội, ngày tháng năm 2021
Trang 2Lời nói đầu
Trong thời buổi hiện đại ngày nay, công nghệ thông tin cũng như những ứng dụng của nó không ngừng phát triển, lượng thông tin và cơ sở đữ liệu được thu thập
và lưu trữ cũng tích lũy ngày một nhiều lên Con người cũng vì thế mà cần có thông tin với tốc độ nhanh nhất để đưa ra quyết định dựa trên lượng dữ liệu không lồ đã có Các phương pháp quản trị và khai thác cơ sở đữ liệu truyền thống ngày càng không đáp ứng được thực tế, vì thế, một khuynh hướng kỹ thuật mới là Kỹ thuật phát hiện trí thức và khai phá dữ liệu nhanh chóng được phát triền
Khai phá đữ liệu đã và đang được nghiên cứu, ứng dụng trong nhiều lĩnh vực khác nhau ở các nước trên thế giới Ở Việt Nam, kỹ thuật này đang được nghiên cứu
và dần đưa vào ứng dụng Khai phá đữ liệu là một bước trong quy trình phát hiện tri thức Hiện nay, mọi người không ngừng tìm tòi các kỹ thuật đề thực hiện khai phá dữ liệu một cách nhanh nhất và có được kết quả tốt nhất
Trong bài báo cáo này, em tìm hiểu và trình bày về việc sử dụng Python trong quản lý
và phân tích dữ liệu
Trong quá trình làm bài báo cáo nảy, em xin gửi lời cảm ơn đến thầy Nguyễn Văn
Tuấn Thay da rat tan tình hướng dẫn chỉ tiết cho em, những kiến thức thầy cung cấp rất hữu ích
Em rất mong nhận được những góp ý từ thây
Em xin chân thành cảm ơn!
Trang 3MỤC LỤC
Trang 4DANH MỤC HÌNH ẢNH, SƠ ĐÔ
Trang 5CHƯƠNG I TONG QUAN VE KHAI PHA DU LIEU
1 Khai Niém Co Ban
- Khai pha d@ liéu (data mining) La qua trinh tinh toán để tìm
ra các mẫu trong các bộ dữ liệu lớn liên quan đến các phương pháp tại giao điểm của máy học, thống kê và các hệ thống cơ
sở dữ liệu Đây là một lĩnh vực liên ngành của khoa học máy tính
- - Mục tiêu tổng thể của quá trình khai thác dữ liệu là trích xuất thông tin từ một bộ dữ liệu và chuyển nó thành một cấu trúc
dễ hiểu để sử dụng tiếp Ngoài bước phân tích thô, nó còn liên
quan tới cơ sở dữ liệu và các khía cạnh quản lý dữ liệu, xử lý dữ liệu trước, suy xét mô hình và suy luận thống kê, các thước đo thú vị, các cân nhắc phức tạp, xuất kết quả về các cấu trúc được phát hiện, hiện hình hóa và cập nhật trực tuyến
2 Các bước trong Khai Phá Dữ Liệu:
Bước 1: Làm sạch dữ liệu - Trong bước này, dữ liệu được làm sạch sao cho không có tạp âm hay bất thường trong dữ liệu
Bước 2: Tích hợp dữ liệu - Trong quá trình tích hợp dữ liệu, nhiều nguồn dữ liệu sẽ kết hợp lại thành một
Bước 3: Lựa chọn dữ liệu - Trong bước này, dữ liệu được trích xuất
từ cơ sở dữ liệu
Bước 4: Chuyển đổi dữ liệu - Trong bước này, dữ liệu sẽ được
chuyến đổi để thực -
hiện phân tích tóm tắt cũng như các hoạt động tổng hợp
Bước 5: Khai phá dữ liệu - Trích xuất dữ liệu hữu ích từ nhóm dữ liệu hiện có
Bước 6: Đánh giá mẫu - Phân tích một số mẫu có trong dữ liệu Bước 7: Trình bày thông tin - Trong bước cuối cùng, thông tin sẽ
được thể hiện dưới dạng cây, bảng, biểu đồ và ma trận
Trang 6
Ì
Đánh giá
mô hình
Khai phá dũ liệu
” +Phántích mẫu
dữ liệu
Hình 1 1 Sơ đồ các bước trong KPDL
3 Các ứng dụng của khai phá dữ liệu
Phát hiện tri thức và khai phá dữ liệu liên quan đến nhiều ngành, nhiều lĩnh vực: thống kê, trí tuệ nhân tạo, cơ sở dữ liệu, thuật toán, tính toán song song và tốc độ cao, thu thập tri thức cho các hệ chuyên gia, quan sát dữ liệu Đặc biệt phát hiện trí thức
và khai phá đữ liệu rất gần gũi với lĩnh vực thong ké, str dung cac phuong phap théng
kê để mô hình đữ liệu và phát hiện các mẫu, luat Ngan hang dữ liệu (Data Warehousing) va các công cụ phân tích trực tuyến (OLAP- On Line Analytical Processing) cing lién quan rat chặt chẽ với phát hiện tri thức và khai phá đữ liệu Khai phá dữ liệu có nhiều ứng dụng trong thực tế, ví đụ như:
Bảo hiểm, tài chính và thị trường chứng khoán: phân tích tỉnh hình tài chính và
dự báo giá của các loại cô phiêu trong thị trường chứng khoán Danh mục vôn và giá, lãi suất, đữ liệu thẻ tín dụng, phát hiện gian lận,
Thống kê, phân tích dữ liệu và hỗ trợ ra quyết định
Điều trị y học và chăm sóc y tế: một số thông tin về chuẩn đoán bệnh lưu trong các hệ thông quản lý bệnh viện Phân tích môi liên hệ giữa các triệu chứng bệnh, chuân đoán và phương pháp điêu trị (chê độ dinh dưỡng, thuốc, .)
Sản xuất và chế biến: Quy trình, phương pháp chế biến và xử lý sự cô
Text mining va Web mining: Phan lép van ban va cac trang Web, tom tat van ban,
Lĩnh vực khoa học: Quan sát thiên văn, dữ liệu gene, dữ liệu sinh vật học, tim kiêm, so sánh các hệ gene và thông tin di truyện, mỗi liên hệ gene và một sô bệnh di truyền,
Trang 7® Mạng viễn thông: Phân tích các cuộc gọi điện thoại và hệ thống giám sat lỗi, sự
cô, chât lượng dịch vụ,
e
4 Một số kỹ thuật Khai thác dữ liệu
4.1 Kỹ thuật phân tích phân loại (Classification Analysis)
Kỹ thuật khai phá dữ liệu đầu tiên là kỹ thuật phân tích phân loại Đây là kỹ thuật cho phép phân loại một đối tượng vào một hoặc một
số lớp cho trước
Bạn có thể sử dụng kỹ thuật này để phân loại khách hàng, mặt
hàng, bằng cách mô tả nhiều thuộc tính để phân loại đối tượng vào một lớp cụ thể
Chúng ta thường sử dụng kỹ thuật khai thác dữ liệu này để lấy các
thông tin quan trọng từ dữ liệu và siêu dữ liệu Vì vậy, trong phân tích phân loại, chúng ta cần áp dụng các thuật toán khác nhau tùy thuộc vào mục tiêu sử dụng
Ví dụ, Email Outlook sử dụng các thuật toán nhất định để mô tả một email là hợp pháp hoặc spam Hay các doanh nghiệp có thể áp dụng
kỹ thuật này để phân loại khách hàng theo đối tượng hay độ tuổi 4.2 Kỹ thuật Association Rule Learning
Kỹ thuật Association Rule Learning trong khai phá dữ liệu được sử dụng để xác định mối quan hệ giữa các biến khác nhau trong cơ sở
dữ liệu Ngoài ra, nó còn được sử dụng để “giải nén” các mẫu ẩn
trong dữ liệu Association Rule rất hữu ích để kiểm tra, dự đoán hành
vi và thường được áp dụng trong ngành bán lẻ
Thêm vào đó, các doanh nghiệp sử dụng kỹ thuật này để xác định hành vi mua sắm, phân tích dữ liệu trong giỏ hàng của khách hàng tiềm năng Trong lĩnh vực Công nghệ Thông tin, các lập trình viên sử dụng kỹ thuật này để xây dựng các chương trình Machine Learning 4,3 Ky thuat phat hién bat thuong (Anomaly or Outlier Detection)
Về cơ bản, kỹ thuật khai phá dữ liệu (Data Mining) này dùng để nhấn mạnh vào việc quan sát các mục dữ liệu trong bộ dữ liệu để tìm ra
các tập dữ liệu không khớp với mẫu dự kiến Bất thường ở đây có thể
đề cập đến độ lệch, sự khác thường, các nhiễu và ngoại lệ
Sự bất thường được xem là khá quan trọng vì nó có thể cung cấp một số thông tin cần thiết Nó có thể là một dữ liệu khác biệt so với mức trung bình chung trong một tập dữ liệu Điều này chỉ ra rằng
Trang 8một cái gì đó khác thường đã xảy ra và các nhà phân tích dữ liệu cần chú ý
Kỹ thuật này có thể được sử dụng trong nhiều lĩnh vực khác nhau Chẳng hạn như phát hiện xâm nhập hay theo dõi sức khỏe
4.4 Kỹ thuật phân tích theo cụm (Clustering Analysis)
“Cụm” có nghĩa là một nhóm các đối tượng dữ liệu Các đối tượng tương tự nhau thì sẽ nằm trong một cụm Kết quả là các đối tượng tương tự nhau trong cùng một nhóm
Về cơ bản, kỹ thuật khai phá dữ liệu này thường được ứng dụng để tạo hồ sơ khách hàng Hoặc trong lĩnh vực Marketing, đây được xem
là việc chia phân khúc khách hàng
4.5 Kỹ thuật phân tích hồi quy (regression analysis)
Theo thuật ngữ thống kê, phân tích hồi quy được sử dụng để xác
định và phân tích mối quan hệ giữa các biến Nó giúp bạn hiểu giá trị đặc trưng của sự thay đổi ở các biến phụ thuộc
4.6 Kỹ thuật dự báo (prediction)
Trong khai phá dữ liệu, kỹ thuật dự báo được ứng dụng ở một số trường hợp đặc biệt Nó được sử dụng để khám phá mối quan hệ giữa các biến độc lập và phụ thuộc
Chẳng hạn, bạn có thể sử dụng kỹ thuật dự báo cho việc bán hàng
để dự đoán lợi nhuận cho tương lai Giả sử, bán hàng là một biến độc lập, lợi nhuận có thể là một biến phụ thuộc Khi đó, chúng ta có thể
vẽ đường cong hồi quy để dự đoán lợi nhuận
Trang 9CHƯƠNG II KHAI PHÁ DỮ LIỆU VỚI PYTHON
1 Giới Thiệu Về Python
Python là gì?
Python là một ngôn ngữ lập trình thông dịch, hướng đối tượng và là
một ngôn ngữbậc cao (high-level) ngữ nghĩa động (dynamic semantics)
Python hỗ trợ các module và gói (packages), khuyến khích chương trình module hóa và tái sử dụng mã Trình thông dịch Python và thư viện chuẩn mở rộng có sẵn dưới dạng mã nguồn hoặc dạng nhị phân miễn phí cho tất cả các nền tảng chính và có thể được phân phối tự do
Các đặc điểm của Python:
se Ngữ pháp đơn giản, dễ đọc
se Vừa hướng thủ tục (procedural-oriented), vừa hướng đối tượng
(object-oriented)
se _ Hỗ trợ module và hỗ trợ gói (package)
»_ Xử lý lỗi bằng ngoại lệ (Exception)
se Kiểu dữ liệu động ở mức cao
se _ Có các bộ thư viện chuẩn và các module ngoài, đáp ứng tất cả các nhu cầu lập trình
se Có khả năng tương tác với các module khác viết trên C/C+
+ (Hoặc Java cho Jython, hoặc Net cho IronPython)
se _ Có thể nhúng vào ứng dụng như một giao tiếp kịch ban (scripting
interface)
2 Giới Thiệu Về Spyder
Spyder là một IDE đa nền tảng mã nguồn mở Python Spyder IDE được viết hoàn toàn bằng Python Nó được thiết kế bởi các nhà khoa học và dành riêng cho các nhà khoa học, nhà phân tích dữ liệu và kỹ sư Nó còn
được gọi là IDE phát triển Python khoa học
Python Spyder IDE xuất hiện dưới dạng triển khai mặc định cùng với bản phân phối Python Anaconda Đây không chỉ là phương pháp được khuyến nghị mà còn là phương pháp dễ nhất
Một số tính năng đáng chú ý của Spyder là:
e Đánh dấu cú pháp có thể tùy chỉnh
¢ Tính khả dụng của các điểm ngắt (điểm ngắt có điều kiện và gỡ lỗi)
se Thực thi tương tác cho phép bạn chạy dòng, tệp, ô, v.v
se Chạy các cấu hình để lựa chọn thư mục làm việc, tùy chọn dòng lệnh, bảng điều khiển hiện tại / chuyên dụng / bên ngoài, v.v
se Có thể xóa biến tự động (hoặc nhập gỡ lỗi)
se Điều hướng qua các ô, chức năng, khối, v.v có thể đạt được thông
qua Outline Explorer
Trang 10Nó cung cấp khả năng xem xét nội dung mã theo thời gian thực (Khả năng kiểm tra các chức năng, từ khóa và lớp là gì, chúng đang làm
gì và chúng chứa thông tin gì)
Tự động chèn dấu hai chấm sau if, while, v.v
Hỗ trợ tất cả các lệnh ma thuật IPython
Hiển thị nội tuyến cho đồ họa được tạo bằng Matplotlib
Cũng cung cấp các tính năng như trợ giúp, trình khám phá tệp, tìm
tép, v.v
3 Xử Lý Dữ Liệu Với Python
“Phân Tích Dữ Liệu Bán Hàng Trang Sức bằng Python”
- - Chúng ta cần khai báo các thư viện cần sử dụng:
® Spyder (Python 3.8)
File Edit Search Source Run Debug Consoles Projects Tools View Help
D:\BaiTapLo
(| PhantichDL.py*
pd
matplot1ib.pyplot plt
Hinh 1 2 Khai bdo thu vién trong Python
- Doc dữ liệu vào (ở đây sẽ là File csv dữ liệu sản phẩm của cửa hàng trang súc):
cartier = pd.read_csv("D:\BaiTapLonKPDL\cartier_catalog.csv") cartier head(10)
cartier tags.value_counts()
+ Gán biến cho hàm này với tên “cartier”
+ Sử dụng hàm head() để xem sơ lược về tệp dữ liệu:
+ Sử dụng hàm tags.value.counts() để xem các giá trị trong cột Tags
Trang 11® Spyder (Python 3.8)
File Edit Search Source Run Debug Consoles Projects Tools View Help
BN ee m; 3, gp
D: \BaiTapLonKPDL \PhantichDL.py
(©) PhantichDL.py*
cartier = pd.read_csv("D:\BaiTapLonKPDL\cartier_catalog.csv")
cartier.head(10)
cartier.tags.value_counts()
Hinh 1 3 Doe dit liéu voi ham pd.read_csv
©) Console i/A
In [2]: cartier = pd.read_csv(”D: \BaiTapLonKPDL \carttier_cataLog.csv”)
In [3]: cartier.head(19)
B4084600 /content/dam/rcq/car/58/71/74/587174 png
B4084900 /content/dam/rcq/car/19/43/98/1/1943981 png
B4084800 /content/dam/rcq/car/10/28/64/0/1028648 png
B4084700 /content/dam/rcq/car/10/28/63/6/1028636.png
B4085000 /content/dam/rcq/car/59/18/04/591804 png
B4085200 /content/dam/rcq/car/58/73/14/587314 png
B4085100 /content/dam/rcq/car/59/22/21/592221 png
B4085300 /content/dam/rcq/car/62/40/10/624010 png
B4032400 /content/dam/rcq/car/58/47/16/584716 png
B4087500 /content/dam/rcq/car/58/39/79/583979.png
[18 rows x 7 columns]
(Ð Console 1/A
In [4]: cartier.tags.value_counts()
white gold, diamonds
pink gold, diamonds
yellow gold, diamonds
yellow gold
pink gold
pink gold, pearl
yellow gold, lacquer, peridots, onyx
yellow gold, emeralds, onyx, diamonds
white gold, emeralds, onyx
yellow gold, diamonds, tsavorite garnets, onyx
Name: tags, Length: 193, dtype: int64
THình Ì 3 Xem các giá trị có trong cột Tags
Trang 12- C6 thé thay các giá trị trong cột Tags này đang sắp xếp rất rối và rất khó để phân tích, bởi vậy cần tách các giá trị này cũng như thêm
các cột để có thể phân tích dữ liệu thuận tiện hơn:
cartier['str_split'] = cartier['tags'].strsplit(’,')
cartier['metal'] =cartier.str_split.str.get(0) str stripQ)
cartier[ first_gem'] = cartier str_split.str.get (1).str.strip()
cartier[ second_gem'] = cartierstr_split.str.get(2).str strip()
cartier['third_gem' ] = cartier.str_split.str.get(3).str.strip()
cartier['foruth_gem'] = cartierstr_split.str.get(4).str.strip()
cartier fillna(O ,inplace=True)
del cartier['str_split']
cartier head(10)
File Edit Search Source Run Debug Consoles Projects Tools View Help
3) p> C
cartier.fillna(@ ,inplace=
cartier head(19)