Báo cáo giữa kỳ môn xử lý dữ liệu lớn

20 0 0
Báo cáo giữa kỳ môn xử lý dữ liệu lớn

Đ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

TÓM TẮT Báo cáo sẽ trình bày các nội dung như sau: Câu 1: Load dữ liệu đúng, tìm ra giỏ hàng, lưu kết quả đúng cấu trúc Câu 2: • Cài đặt lớp đối tượng đủ các phương thức, thuộc tính • Cà

Trang 1

TỔNG LIÊN ĐOÀN LAO ĐỘNG VIỆT NAM TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG

KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO GIỮA KỲ MÔN XỬ LÝ DỮ LIỆU LỚN

TIỂU LUẬN GIỮA KỲ

Người hướng dẫn: Th.S Nguyễn Thành An Người thực hiện: Nguyễn Thị Anh Thư – 51900564

Phạm Duy Khoa – 52100901Phạm Đức Minh Hiếu - 52100796Nguyễn Văn Huy – 51900095Nguyễn Ngọc Ái Đan - 31900658

THÀNH PHỐ HỒ CHÍ MINH, NĂM 2023

Trang 2

TỔNG LIÊN ĐOÀN LAO ĐỘNG VIỆT NAM TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG

KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO GIỮA KỲ MÔN XỬ LÝ DỮ LIỆU LỚN

TIỂU LUẬN GIỮA KỲ

Người hướng dẫn: Th.S Nguyễn Thành An Người thực hiện: Nguyễn Thị Anh Thư – 51900564

Phạm Duy Khoa – 52100901Phạm Đức Minh Hiếu - 52100796Nguyễn Văn Huy – 51900095 Nguyễn Ngọc Ái Đan - 31900658

THÀNH PHỐ HỒ CHÍ MINH, NĂM 2023

Trang 3

LỜI CẢM ƠN

Để hoàn thành đồ án này trước tiên chúng em xin gửi đến các quý thầy, cô giảng viên trường Đại học Tôn Đức Thắng lời cảm ơn chân thành và sâu sắc nhất Đặc biệt, em xin gửi đến thầy Nguyễn Thành An – người đã tận tình hướng dẫn, giúp đỡ chúng em hoàn thành đề tài này lời cảm ơn sâu sắc nhất

Với điều kiện thời gian cũng như kinh nghiệm còn chế của sinh viên, bài báo cáo này không thể tránh khỏi được những thiếu sót Chúng em rất mong nhận được sự chỉ bảo, đóng góp ý kiến của các quý thầy cô để em có điều kiện bổ sung, nâng cao ý thức của mình, phục vụ tốt hơn công việc thực tế sau này

Trang 4

ĐỒ ÁN ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG

Tôi xin cam đoan đây là sản phẩm đồ án của riêng chúng tôi và được sự hướng dẫn của thầy Nguyễn Thành An Các nội dung nghiên cứu, kết quả trong đề tài này là trung thực và chưa công bố dưới bất kỳ hình thức nào trước đây Những số liệu trong các bảng biểu phục vụ cho việc phân tích, nhận xét, đánh giá được chính tác giả thu thập từ các nguồn khác nhau có ghi rõ trong phần tài liệu tham khảo

Ngoài ra, trong đồ án còn sử dụng một số nhận xét, đánh giá cũng như số liệu của các tác giả khác, cơ quan tổ chức khác đều có trích dẫn và chú thích nguồn gốc

Nếu phát hiện có bất kỳ sự gian lận nào tôi xin hoàn toàn chịu trách nhiệm về nội dung đồ án của mình Trường đại học Tôn Đức Thắng không liên quan đến những vi phạm tác quyền, bản quyền do tôi gây ra trong quá trình thực hiện (nếu có)

TP Hồ Chí Minh, ngày 16 tháng 10 năm 2023 Tác giả

(ký tên và ghi rõ họ tên)

Nguyễn Thị Anh Thư Phạm Duy Khoa Phạm Đức Minh Hiếu

Nguyễn Văn Huy Nguyễn Ngọc Ái Đan

Trang 5

PHẦN XÁC NHẬN VÀ ĐÁNH GIÁ CỦA GIẢNG VIÊN

Trang 6

TÓM TẮT

Báo cáo sẽ trình bày các nội dung như sau:

Câu 1: Load dữ liệu đúng, tìm ra giỏ hàng, lưu kết quả đúng cấu trúc Câu 2:

• Cài đặt lớp đối tượng đủ các phương thức, thuộc tính • Cài đặt đúng đúng thuật toán

• Phát sinh được luật liên kết và sao lưu đúng kết quả Câu 3:

• Cài đặt lớp đối tượng đủ các phương thức, thuộc tính • Cài đặt đúng đúng thuật toán

• Phát sinh được luật liên kết và sao lưu đúng kết quả

Câu 4: Cài đặt và thực thi đúng thư viện được yêu cầu, có so sánh các kết quả

Trang 7

3.1 Cài đặt lớp đối tượng và hướng xử lý 8

3.2 Phát sinh luật liên kết và sao lưu kết quả 9

Trang 8

2

DANH MỤC HÌNH

Hình 1: Load dữ liệu 4

Hình 2: Lưu dữ liệu 4

Hình 3: Phát sinh luật liên kết và lưu kết quả 7

Hình 4: Phát sinh luật liên kết và lưu kết quả 10

Hình 5: So sánh kết quả 12

DANH MỤC BẢNG Bảng 5.1: Bảng phân công và đánh giá 13

Trang 9

3

1.1 Load dữ liệu và tìm giỏ hàng

• Sử dụng groupBy để nhóm dữ liệu trong DataFrame df theo hai cột "Member_number" và "Date", sau đó tính tổng hợp danh sách các mặt hàng

(items) của mỗi nhóm và đặt tên cột kết quả là "itemDescription"

• Loại bỏ các giá trị trùng lặp trong cột "itemDescription" bằng cách sử dụng hàm

array_distinct

• Sử dụng regexp_replace để loại bỏ các ký tự [ và ] từ cột "itemDescription" • Sắp xếp DataFrame theo cột "Member_number" và "Date"

• In cấu trúc của DataFrame và hiển thị một số dòng của nó mà không giới hạn

chiều dài

• Kiểm tra xem tệp "baskets.csv" đã tồn tại hay chưa Nếu tồn tại, xóa tệp này

• Ghi DataFrame vào tệp CSV với tên "baskets.csv" và sử dụng dấu chấm phẩy (;)

làm dấu ngăn cách cột, bao gồm cả tiêu đề • In thông báo xác nhận việc lưu tệp "baskets.csv"

Trang 10

4

Hình 1: Load dữ liệu

1.2 Lưu kết quả

Hình 2: Lưu ữ d liệu

Trang 11

5

2.1 Cài đặt lớp đối tượng

Yêu cầu cài đặt lớp đối tượng đủ các phương thức, thuộc tính

2.2 Hướng xử lý

Phương thức init : Đây là phần khởi tạo của lớp APriori Nhận ba đối số:

path: Đường dẫn tới tập dữ liệu phân tích

s: Giá trị support tối thiểu (minSupport) để xác định các tập phổ biến (mặc định là 0.005)

c: Một ngưỡng tạo ra các luật liên kết (association rules) dựa trên tỷ lệ confidence (mặc định là 0.3)

Phương thức run: Phương thức thực hiện toàn bộ quá trình chạy thuật toán

Apriori trên tập dữ liệu được chỉ định Cụ thể, thực hiện các bước sau:

Đọc dữ liệu từ tệp tin csv từ tập dữ liệu đầu vào, sử dụng sqlc.read.csv Dòng đầu tiên là tiêu đề và các cột được phân tách bằng dấu “;”

Chọn cột "itemDescription" từ dữ liệu và đổi tên thành "items"

Chuyển dữ liệu thành một RDD (Resilient Distributed Dataset) để thực hiện các phép toán xử lý phân tán trên dữ liệu

Tính độ dài của tập support basketslen, là số lượng mẫu (baskets) trong tập dữ liệu

Gọi phương thức find_frequent_pair để tìm các tập support và sau đó ghi kết quả vào một tệp tin CSV

Gọi phương thức find_association_rules để tìm các luật liên kết dựa trên tập support và ghi kết quả vào một tệp tin CSV

Phương thức find_frequent_pair: Phương thức này thực hiện bước tìm tập

support (frequent itemsets) của thuật toán Apriori Các bước chính bao gồm:

Trang 12

6

Chuyển dữ liệu từ dạng chuỗi thành mảng bằng cách sử dụng map

Chuyển dữ liệu thành một chuỗi dựa trên dấu phẩy (flattening) bằng cách sử dụng flatMap Biến đổi dữ liệu từ dạng "item1,item2,item3" thành một danh sách ["item1", "item2", "item3"]

Tìm các phần tử duy nhất trong dữ liệu bằng cách sử dụng distinct

Tính support cho từng phần tử bằng cách đếm số lần xuất hiện của mỗi phần tử trong dữ liệu

Lọc ra các phần tử có support lớn hơn hoặc bằng giá trị support tối thiểu Bắt đầu từ các phần tử đơn lẻ, tạo các cặp phổ biến ngày càng lớn bằng cách thực hiện các phép toán kết hợp và lọc kết quả dựa trên giá trị support

Phương thức find_association_rules: Phương thức này tìm các luật liên kết

(association rules) dựa trên các tập support đã tìm thấy trước đó Các bước chính bao gồm:

Tạo tất cả các cặp kết hợp của các tập support bằng cách sử dụng cartesian Lọc ra các cặp dựa trên một ngưỡng confidence

Tính tỷ lệ confidence cho các luật liên kết bằng cách sử dụng giá trị support của cặp và tổng support của cả hai cặp Sau đó, lọc ra các luật có tỷ lệ confidence lớn hơn một ngưỡng confidence

Cả hai phương thức find_frequent_pair và find_association_rules sử dụng các phép toán xử lý dữ liệu phân tán và lọc ra kết quả dựa trên giá trị support và tỷ lệ confidence để tạo ra các tập support và luật liên kết tương ứng

2.3 Phát sinh luật liên kết và sao lưu kết quả

Trang 13

7

Hình 3: Phát sinh luật liên kết và lưu kết quả

Trang 14

8

3.1 Cài đặt lớp đối tượng hvàướng xử lý

Phương thức init : Khởi tạo của lớp PCY hận bốn đối số:N baskets_path: Đường dẫn tới tập dữ liệu mà muốn phân tích

support: Giá trị support tối thiểu để xác định các tập phổ biến (mặc định là 0.3)

hash_table_size: Kích thước bảng băm dùng trong thuật toán PCY (default là 10)

confidence: Ngưỡng để tạo ra các luật liên kết (mặc định là 0.5)

Phương thức run: Phương thức này thực hiện toàn bộ quá trình chạy thuật toán

PCY trên tập dữ liệu được chỉ định ở baskets_path Các bước chính bao gồm: Đọc dữ liệu từ tệp tin CSV tại đường dẫn baskets_path sử dụng sqlc.read.csv Giả định là một tệp CSV với dòng đầu tiên là tiêu đề và các cột được phân tách bằng dấu chấm phẩy

Gọi phương thức _get_candidate_pairs để lấy các cặp candidate pairs dựa trên thuật toán PCY

Gọi phương thức _get_frequent_pairs để lấy các tập phổ biến dựa trên các cặp candidate pairs và support tối thiểu

Gom tất cả tập phổ biến và các cặp candidate pairs lại với nhau và tính các luật liên kết

Ghi kết quả các tập phổ biến và các luật liên kết vào các tệp tin CSV

Phương thức _get_candidate_pairs: Phương thức này tính toán các cặp

candidate pairs dựa trên thuật toán PCY Các bước chính bao gồm:

Chuyển dữ liệu thành một RDD (Resilient Distributed Dataset) và tính số lượng mẫu (baskets) trong tập dữ liệu

Tính số lần xuất hiện của mỗi phần tử trong tập dữ liệu (item_counts) và lọc ra các phần tử phổ biến dựa trên support tối thiểu

Trang 15

9

Tạo tất cả các cặp candidate pairs bằng cách kết hợp các phần tử trong mỗi mẫu và sau đó tạo các hash code cho từng cặp

Tạo các "buckets" và lưu trữ thông tin về các cặp candidate pairs trong các buckets Đồng thời, tính số lần xuất hiện của các buckets

Phương thức _get_frequent_pairs: Phương thức này tính toán các tập phổ biến

dựa trên các cặp candidate pairs đã tìm thấy và support tối thiểu Các bước chính bao gồm:

Lọc ra các cặp candidate pairs mà support lớn hơn hoặc bằng supporttối thiểu Gom tất cả các cặp candidate pairs phổ biến lại với nhau và trả về tập phổ biến

Phương thức find_association_rules: Phương thức này tìm các luật liên kết

dựa trên các tập phổ biến đã tìm thấy Các bước chính bao gồm:

Tạo tất cả các cặp kết hợp của các tập phổ biến bằng cách kết hợp chúng Lọc ra các cặp dựa trên một ngưỡng confidence

Tính tỷ lệ confidence cho các luật liên kết và lọc ra các luật có tỷ lệ confidence lớn hơn ngưỡng confidence

3.2 Phát sinh luật liên kết và sao lưu kết quả

Trang 16

10

Hình 4: Phát sinh luật liên kết và lưu kết quả

Trang 18

12

Hình 5: So sánh kết quả

Trang 19

13

STT MSSV Họ và tên Công việc Đánh giá

SV1 51900564 Nguyễn Thị Anh Thư Câu 4 Hoàn thành

SV2 52100901 Phạm Duy Khoa Câu 3 Hoàn thành

SV3 52100796 Phạm Đức Minh Hiếu Câu 3 Hoàn thành

Bảng 5.1: Bảng phân công và đánh giá

Trang 20

14

TÀI LIỆU THAM KHẢO Tiếng Anh

[1] J.W Satzinger, R.B Jackson, S.D Burd, [2005], Object-Oriented Analysis and Design with the Unified Process, Cengage Learning

[2] Howard Podeswa, [2010], UML for the IT Business Analyst, Cengage Learning

[3] J.W Satzinger, R.B Jackson, S.D Burd, [2008], Systems Analysis and Design in a Changing World, Course Technology

Ngày đăng: 14/04/2024, 22:43

Tài liệu cùng người dùng

Tài liệu liên quan