![Báo cáo giữa kỳ môn xử lý dữ liệu lớn](https://123docz.net/image/doc_normal.png)
Đang tải... (xem toàn văn)
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 1TỔ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 2TỔ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 3LỜ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 5PHẦN XÁC NHẬN VÀ ĐÁNH GIÁ CỦA GIẢNG VIÊN
Trang 6TÓ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 73.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 82
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 93
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 104
Hình 1: Load dữ liệu
1.2 Lưu kết quả
Hình 2: Lưu ữ d liệu
Trang 115
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 126
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 137
Hình 3: Phát sinh luật liên kết và lưu kết quả
Trang 148
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 159
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 1610
Hình 4: Phát sinh luật liên kết và lưu kết quả
Trang 1812
Hình 5: So sánh kết quả
Trang 1913
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 2014
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
Xem thêm:
Tài liệu cùng người dùng
Tài liệu liên quan