1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo môn phân tích dữ liệu phân tích dữ liệu trên pyspark

46 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 Trên Pyspark
Tác giả Phan Tuấn Kiệt, Lê Hoàng Nhựt, Trương Tấn Phát
Người hướng dẫn PGS.TS. Nguyễn Tuấn Đăng
Trường học Trường Đại Học Sài Gòn
Chuyên ngành Phân Tích Dữ Liệu
Thể loại báo cáo
Năm xuất bản 2023
Thành phố Thành Phố Hồ Chí Minh
Định dạng
Số trang 46
Dung lượng 11,05 MB

Nội dung

Trước khi vào việc vẽ biểu đồ thể hiện dữ liệu thì chúng ta cần tổng quan dữ liệu của các cột: .... Tiếp theo là thực hiện phân tích thống kê trên dữ liệu để xác định xu hướng và mối liê

Trang 1

ỦY BAN NHÂN DÂN THÀNH PHỐ HỒCHÍ MINH TRƯỜNG ĐẠI HỌC SÀI GÒNKHOA CÔNG NGHỆ THÔNG TIN

TÊN ĐỀ TÀI:

Phân tích dữ liệu trên PySpark

Giảng viên hướng dẫn: PGS.TS Nguyễn Tuấn ĐăngThành viên nhóm thức hiện:

Họ và Tên: Phan Tuấn Kiệt - 3120411082

Họ và Tên: Lê Hoàng Nhựt - 3120411111

Họ và Tên: Trương Tấn Phát - 3120411114Lớp: DCT120C2

TP HỒ CHÍ MINH, tháng 5 năm 2023

Trang 2

MỤC LỤC

MỞ ĐẦU 1

NỘI DUNG 2

I Khái Niệm 2

1.1 Khái niệm Phân Tích Dữ Liệu 2

1.2 Khái niệm về PySpark 2

1.3 Khái niệm về Apache Spark ? 3

1.4 Ưu điểm và Nhược điểm của Pyspark 4

II Triển khai nội dung 5

1) Chúng ta sẽ thực hiện bằng Pyspark DataFrame nên chúng ta cần 5

thực hiện theo các bước sau đây: 5

a Import các thư viện cần thiết cho việc phân tích dữ liệu: 5

b Do làm việc trên Pyspark nên ta cần tạo Spark và truyền vào đấy dữ liệu mà cần phân tích: 6

c Sau khi truyền dữ liệu vào ta sẽ cần kiểm tra thông tin của dữ liệu và các dòng đầu tiên của dữ liệu: 6

d Tiền xử lý dữ liệu: Chúng ta cần chắc chắn rằng kiểu dữ liệu của các cột đều chính xác Vì kiểu dữ liệu sẽ ảnh hưởng đến quá trình phân tích dữ liệu của chúng ta 7

e Tiếp đến chúng ta cần làm sạch dữ liệu để chắc chắn rằng không có dữ liệu mang giá trị Null: 8

f Tiếp theo việc kiểm tra giá trị Null chúng ta cần kiểm tra các giá trị trùng lặp: 9

g Trước khi vào việc vẽ biểu đồ thể hiện dữ liệu thì chúng ta cần tổng quan dữ liệu của các cột: 9

h Chúng ta sẽ tiến hành vẽ biểu đồ tròn cho sản phẩm đã được mua: 10

h1 Cách 1: Chuyển Pandas để vẽ 10

h2 Cách 2: Vẽ trực tiếp không chuyển qua Pandas 10

i Biểu đồ thống kê sản phẩm được mua theo giới tính: 12

i1 Cách 1 : Dùng Matplotib vẽ 12

i2 Cách 2 : Dùng Seaborn vẽ 12

i3 Cách 3 : Dùng scatterplot() để vẽ 12

j Biểu đồ trung bình dặm đối với mỗi sản phẩm: 14

j1 Cách 1 :Chuyển Pandas để vẽ 14

Trang 3

j2 Cách 2 :Vẽ trực tiếp không chuyển Pandas để vẽ 14

k Biểu đồ phạm vi khách hàng: 16

k1.Cách 1 : Chuyển Pandas để vẽ 16

k2 Cách 2: Vẽ trực tiếp không chuyển qua Pandas 16

l Biểu đồ thể hiện tương quan giữa Income, Age, Product, Usage: 18

l1 Cách 1 : Dùng Replot() để vẽ 18

l2 Cách 2: Dùng Matplotlib để vẽ 18

m Tính toán ma trận tương quan của dữ liệu Cardio và vẽ biểu đồtrực quan cho dữ liệu đã tính: 21 m1 Cách 1 :Vẽ Bằng Seaborn 22

m2 Cách 2 : Vẽ trực tiếp không chuyển Pandas 22

m3 Cách 3: Dùng matplotlib để vẽ 23

2) Sau khi chúng ta tổng quan dữ liệu để thống kê chúng ta bắt đầu tính toán bằng các kỹ thuật hồi qui: 26

a Chia dữ liệu thành các tập Train và Test: 26

b Áp dụng Linear Regression: 26

c Áp dụng Logistic Regression: 27

d Áp dụng Decision Tree Classifier: 28

III Kết Luận: 29

IV Tài Liệu Tham Khảo: 30

V Phụ Lục 30

Trang 4

MỤC LỤC HÌNH ẢNH

Hình 1: Các tính năng của Apache Spark 3

Hình 2: Import các thư viện 5

Hình 3: Tạo Spark và truyền dữ liệu vào Spark 6

Hình 4: Hiện thông tin của dữ liệu 6

Hình 4.1: Kết quả thông tin dữ liệu 6

Hình 4.2: Kiểm tra dữ liệu 7

Hình 4.3: Kết quả sau khi kiểm tra dữ liệu 7

Hình 5: Chuyển đổi kiểu dữ liệu 7

Hình 5.1: Kết quả sau khi chuyển đổi 8

Hình 6: Kiểm tra giá trị Null trong dữ liệu 8

Hình 6.1: Kết quả Null của dữ liệu 8

Hình 7: Loại bỏ các giá trị trùng lặp 9

Hình 7.1: Kết quả loại bỏ 9

Hình 8: Tổng quan dữ liệu 9

Hình 8.1: Kết quả của việc tổng quan 10

Hình 9: Thực hiện việc vẽ biểu đồ cho sản phẩm bằng cách 1 10

Hình 9.1 : Thực hiện việc vẽ biểu đồ cho sản phẩm bằng cách 2 11

Hình 9.2: Biểu đồ tròn cho các sản phẩm bán được vẽ bằng Cách 1 11

Hình 9.3: Biểu đồ tròn cho các sản phẩm bán được vẽ bằng Cách 2 11

Hình 10: Thực hiện vẽ biểu đồ thống kê sản phẩm theo giới tính theo cách 1 12

Hình 10.1: Thực hiện vẽ biểu đồ thống kê sản phẩm theo giới tính theo cách 2 12

Hình 10.2: Biểu đồ thể hiện sản phẩm mua theo giới tính 13

Hình 10.3: Biểu đồ thể hiện sản phẩm mua theo giới tính 13

Hình 11: Thực hiện vẽ trung bình dặm bằng cách 1 14

Hình 11.1: Thực hiện vẽ trung bình dặm bằng cách 2 14

Hình 11.2: Biểu đồ dặm cho mỗi sản phẩm bằng cách 1 15

Hình 11.3: Biểu đồ dặm cho mỗi sản phẩm bằng cách 2 15

Hình 12: Thực hiện trực quan phạm vi khách hàng bằng cách 1 16

Hình 12.1: Thực hiện trực quan phạm vi khách hàng bằng cách 2 16

Hình 12.2: Vẽ biểu đồ trực quan phạm vi khách hàng bằng cách 1 17

Trang 5

Hình 13: Thực hiện việc trực quan dữ liệu I, A, U,P bằng cách 1 18

Hình 13.1: Thực hiện việc trực quan dữ liệu I, A, U,P bằng cách 2 18

Hình 13.2 : Thực hiện việc trực quan dữ liệu I, A, U,P bằng cách 3 19

Hình 13.3 : Biểu đồ trực quan I, A, U,P bằng cách 1 19

Hình 13.4: Biểu đồ trực quan I, A, U,P bằng cách 2 20

Hình 13.5 Biểu đồ trực quan I, A, U,P bằng cách 3 20

Hình 14 : Tính toán ma trận tương quan 21

Hình 14.1 : Vẽ bản đồ của ma trận tương quan bằng cách 1 22

Hình 14.2 : Vẽ bản đồ của ma trận tương quan bằng cách 2 22

Hình 14.3: Vẽ bản đồ của ma trận tương quan bằng cách 3 23

Hình 14.4: Ma trận tương quan của dữ liệu Cardio 24

Hình 14.5: Biểu đồ trực quan cho ma trận tương quan bằng cách 1 24

Hình 14.6: Biểu đồ trực quan cho ma trận tương quan bằng cách 2 25

Hình 14.6: Biểu đồ trực quan cho ma trận tương quan bằng cách 3 25

Hình 15: Thực hiện việc chia dữ liệu thành Train và Test 26

Hình 16: Thực hiện áp dụng Linear Regression 26

Hình 16.1: Kết quả độ chính xác của mô hình 27

Hình 17: Thực hiện Logistic Regression 27

Hình 17.1: Kết quả độ chính xác của mô hình 27

Hình 18: Thực hiện Decision Tree Classifier 28

Hình 18.1: Kết quả độ chính xác của mô hình 28

Trang 7

Dự án Cardio Good Fitness là chiến lược phân tích dữ liệu sử dụng Python

và PySpark để xem xét kỹ lưỡng dữ liệu từ một công ty có tên là Cardio GoodFitness chuyên sản xuất thiết bị thể dục Có những thông tin về khách hàng như làtuổi , họ tên ,phản hồi của khách hàng khi sử dụng sản phẩm của công ty

Mục tiêu chính của dự án là tạo điều kiện cho công ty hiểu được khách hàng

và cách sử dụng sản phẩm của họ Các kỹ thuật phân tích dữ liệu được sử dụngtrong dự án bao gồm làm sạch dữ liệu, khám phá, trực quan hóa và phân tích thốngkê

Tiếp theo là thực hiện phân tích thống kê trên dữ liệu để xác định xu hướng

và mối liên hệ giữa các biến khác nhau, bao gồm phân tích tương quan để xác địnhcường độ và hướng của mối quan hệ giữa các biến khác nhau

Cuối cùng, dự án kết thúc bằng cách trình bày một loạt khuyến nghị choCardio Good Fitness dựa trên những hiểu biết thu được từ phân tích dữ liệu Những

đề xuất này bao gồm các đề xuất cải tiến sản phẩm, chiến lược tiếp thị và sáng kiếnthu hút khách hàng

Mục đích của bài báo cáo này là thực hiện một dự án phân tích dữ liệu trên nền tảngPySpark, sử dụng các công cụ và kỹ thuật của ngôn ngữ lập trình Python Dự ánxoay quanh chương trình Cardio Good Fitness, bao gồm việc xem xét kỹ lưỡng dữliệu khách hàng cho một công ty sản xuất sản phẩm thể dục

Bài tiểu luận này bao gồm phần giới thiệu về PySpark và dự án Cardio Good Fitness,tiền xử lý dữ liệu, phân tích dữ liệu khám phá và triển khai các thuật toán máy học

để dự đoán hành vi của khách hàng Mục tiêu cuối cùng là cung cấp một ví dụ thực

tế về cách PySpark có thể được sử dụng để phân tích các tập dữ liệu lớn và đưa raquyết định sáng suốt

Trang 8

NỘI DUNG

I Khái Niệm

1.1 Khái niệm Phân Tích Dữ Liệu

Phân tích dữ liệu chuyển đổi dữ liệu thô thành thông tin chuyên sâu hữu ích.Quá trình này bao gồm đa dạng các công cụ, công nghệ và quy trình được áp dụng

để tìm kiếm xu hướng và giải quyết vấn đề bằng dữ liệu Phân tích dữ liệu có thểđịnh hình các quy trình kinh doanh, cải thiện khả năng ra quyết định và thúc đẩytăng trưởng doanh nghiệp

Phân tích dữ liệu được áp dụng trong một số ngành và lĩnh vực như tài chính,chăm sóc sức khỏe, tiếp thị và nghiên cứu khoa học Nó cho phép các tổ chức xácđịnh xu hướng, mẫu và mối quan hệ trong dữ liệu của họ, mà họ có thể sử dụng đểđưa ra quyết định sáng suốt, hợp lý hóa hoạt động và nâng cao kết quả

Trong thời đại dữ liệu lớn ngày nay, nơi các tổ chức thu thập và lưu trữlượng thông tin khổng lồ hàng ngày, phân tích dữ liệu đóng một vai trò quan trọng.Bằng cách sử dụng sức mạnh của phân tích dữ liệu, các tổ chức có thể có đượcthông tin chi tiết về khách hàng và hoạt động của họ

1.2 Khái niệm về PySpark

PySpark là API Python cho Apache Spark Nó cho phép bạn thực hiện xử lý

dữ liệu quy mô lớn thời gian thực trong môi trường phân tán bằng Python Nó cũngcung cấp một PySpark shell để phân tích dữ liệu của bạn một cách tương tác.PySpark kết hợp khả năng học và sử dụng dễ dàng của Python với sức mạnhcủa Apache Spark để cho phép xử lý và phân tích dữ liệu bất kỳ kích thước cho tất

cả mọi người quen thuộc với Python

PySpark hỗ trợ tất cả các tính năng của Spark như Spark SQL, DataFrames,Structured Streaming, Machine Learning (MLlib) và Spark Core

Trang 9

1.3.Khái niệm về Apache Spark ?

Apache Spark là một framework xử lý dữ liệu mã nguồn mở trên quy

mô lớn Spark cung cấp một giao diện để lập trình các cụm tính toán songsong với khả năng chịu lỗi Ban đầu Spark được phát triển tại AMPLab củaĐại học California Berkeley, sau đó mã nguồn được tặng cho ApacheSoftware Foundation vào năm 2013 và tổ chức này đã duy trì nó cho đến nay.Khả năng tính toán phân tán của Apache Spark khiến nó rất phù hợpvới big data và machine learning, vốn đòi sức mạnh tính toán khổng lồ để làmviệc trên các kho dữ liệu lớn Spark cũng giúp loại bỏ một số gánh nặng lậptrình khỏi vai của các nhà phát triển với một API dễ sử dụng đảm nhiệm phầnlớn công việc khó khăn của tính toán phân tán và xử lý dữ liệu lớn

Hình 1: Các tính năng của Apache Spark

Trang 10

1.4 Ưu điểm và Nhược điểm của Pyspark

Ưu điểm :

- Khả năng mở rộng: PySpark có thể xử lý phân tích và xử lý dữ liệu quy môlớn Nó có thể chi phối khối lượng công việc trên nhiều máy, giúp dự án dễ dàngtăng và giảm quy mô khi cần

- Tốc độ: PySpark xử lý dữ liệu với tốc độ cao Nó có thể xử lý dữ liệu nhanhhơn tới 100 lần so với Hadoop MapReduce truyền thống

- Tính linh hoạt: PySpark có thể tích hợp với nhiều nguồn dữ liệu và công cụkhác nhau, bao gồm Hadoop, Hive, Cassandra và Kafka, cho phép người dùng viếtcode bằng nhiều ngôn ngữ, bao gồm Python, Java và Scala

- Máy học: PySpark cung cấp một thư viện máy học mạnh mẽ, cho phépngười dùng xây dựng và đào tạo các mô hình phức tạp trên các tập dữ liệu lớn

Trang 11

II.Triển khai nội dung

1)Chúng ta sẽ thực hiện bằng Pyspark DataFrame nên chúng ta cầnthực hiện theo các bước sau đây:

a Import các thư viện cần thiết cho việc phân tích dữ liệu:

Hình 2: Import các thư viện

Trang 12

b Do làm việc trên Pyspark nên ta cần tạo Spark và truyền vào đấy

dữ liệu mà cần phân tích:

Hình 3: Tạo Spark và truyền dữ liệu vào Spark

c Sau khi truyền dữ liệu vào ta sẽ cần kiểm tra thông tin của dữliệu và các dòng đầu tiên của dữ liệu:

Hình 4: Hiện thông tin của dữ liệu

OutPut:

Hình 4.1: Kết quả thông tin dữ liệu

Trang 13

Hình 4.2: Kiểm tra dữ liệu

Hình 4.3: Kết quả sau khi kiểm tra dữ liệu

d Tiền xử lý dữ liệu: Chúng ta cần chắc chắn rằng kiểu dữ liệu củacác cột đều chính xác Vì kiểu dữ liệu sẽ ảnh hưởng đến quátrình phân tích dữ liệu của chúng ta

Hình 5: Chuyển đổi kiểu dữ liệu

Trang 14

Tại đây ta tiến hành gán cột Product, Gender, Marital Status thành kiểu String.

Hình 5.1: Kết quả sau khi chuyển đổi

e Tiếp đến chúng ta cần làm sạch dữ liệu để chắc chắn rằng không

có dữ liệu mang giá trị Null:

Hình 6: Kiểm tra giá trị Null trong dữ liệuOutput: Ta có thể thấy dữ liệu không hề mang giá trị Null

Hình 6.1: Kết quả Null của dữ liệu

Trang 15

f Tiếp theo việc kiểm tra giá trị Null chúng ta cần kiểm tra các giátrị trùng lặp:

Trang 16

Hình 8.1: Kết quả của việc tổng quan

h Chúng ta sẽ tiến hành vẽ biểu đồ tròn cho sản phẩm đã được mua:h1 Cách 1: Chuyển Pandas để vẽ

Hình 9: Thực hiện việc vẽ biểu đồ cho sản phẩm bằng cách 1h2 Cách 2: Vẽ trực tiếp không chuyển qua Pandas

Trang 17

Hình 9.1 : Thực hiện việc vẽ biểu đồ cho sản phẩm bằng cách 2Output: Thông qua biểu đồ ta có thể thấy được sản phẩm TM195 được bánnhiều nhất so với 2 sản phẩm còn lại trong khi TM798 lại được mua ít nhất.

Hình 9.2: Biểu đồ tròn cho các sản phẩm bán được vẽ bằng Cách 1

Trang 18

i Biểu đồ thống kê sản phẩm được mua theo giới tính:

Trang 19

Output: Qua biểu đồ ta thấy được các sản phẩm được ưa chuộng khác nhauvới giới tính của họ Cả sản phẩm TM195 và TM498 có vẻ đồng đều về mặtgiới tính Riêng TM 798 có vẻ chỉ phổ biến đối với nam.

Hình 10.2: Biểu đồ thể hiện sản phẩm mua theo giới tính

Hình 10.3: Biểu đồ thể hiện sản phẩm mua theo giới tính

Trang 20

j Biểu đồ trung bình dặm đối với mỗi sản phẩm:

j1 Cách 1 :Chuyển Pandas để vẽ

Hình 11: Thực hiện vẽ trung bình dặm bằng cách 1j2 Cách 2 :Vẽ trực tiếp không chuyển Pandas để vẽ

Hình 11.1: Thực hiện vẽ trung bình dặm bằng cách 2

Trang 21

Output: Qua biểu đồ này ta có thể thấy sản phẩmTM798 những người đibộ/chạy sử dụng nhiều hơn so với sản phẩm khác.

Hình 11.2: Biểu đồ dặm cho mỗi sản phẩm bằng cách 1

Hình 11.3: Biểu đồ dặm cho mỗi sản phẩm bằng cách 2

Trang 23

Output: Ta có thể thấy khách hàng có thu nhập trong khoảng 30000 - 100000,

rõ ràng hơn nằm trong phạm vi lương thấp và kiếm ít hơn 70000

Hình 12.2: Vẽ biểu đồ trực quan phạm vi khách hàng bằng cách 1

Hình 12.3: Vẽ biểu đồ trực quan phạm vi khách hàng bằng cách 2

Trang 24

l Biểu đồ thể hiện tương quan giữa Income, Age, Product, Usage:l1 Cách 1 : Dùng Replot() để vẽ

Hình 13: Thực hiện việc trực quan dữ liệu I, A, U,P bằng cách 1l2 Cách 2: Dùng Matplotlib để vẽ

Hình 13.1: Thực hiện việc trực quan dữ liệu I, A, U,P bằng cách 2l3 Cách 3 : Dùng scatterplot() để vẽ

Trang 25

Hình 13.2 : Thực hiện việc trực quan dữ liệu I, A, U,P bằng cách 3Output: Thông qua biểu đồ ta có thể thấy được người có độ tuổi từ 23 - 35 tậptrung nhiều hơn và những người có Income dưới 70000 mua sản phẩmTM195 và TM498 Còn TM798 được khách hàng trong độ tuổi 23 - 30 vàngười có thu nhập trên 70000.

Hình 13.3 : Biểu đồ trực quan I, A, U,P bằng cách 1

Trang 26

Hình 13.4: Biểu đồ trực quan I, A, U,P bằng cách 2

Hình 13.5 Biểu đồ trực quan I, A, U,P bằng cách 3

Trang 27

m Tính toán ma trận tương quan của dữ liệu Cardio và vẽ biểu đồtrực quan cho dữ liệu đã tính:

Các thông tin này cho biết được các thông tin mới và sự phụ thuộc của dữ liệuvới nhau

Chúng ta có thể thấy được có sự tương quan mạnh 0.79 giữa Fitness và Miles.Điều này thấy được khách hàng có xu hướng chạy nhiều hơn trên máy chạy bộ.Trong khi tương quan giữa Fitness và MilesPerUsage là 0.56 có nghĩa là họ thườngxuyên chạy hơn là đi bộ

Mối liên giữa Education và Income là 0.63 điều này có thể thấy đượcIncome của họ sẽ cao hơn nếu họ dạy được nhiều năm hơn

Mối tương quan tích cực mạnh giữa việc mua TM798 dựa vào yếu tố Fitness(0,73), Income (0,71), Miles (0,66), Usage (0,65) và Education (0,58) Trong khi đó,

có mối tương quan thấp hơn giữa việc mua TM498 hoặc TM198

Hình 14 : Tính toán ma trận tương quan

Trang 29

m3 Cách 3: Dùng matplotlib để vẽ

Hình 14.3: Vẽ bản đồ của ma trận tương quan bằng cách 3

Trang 30

Hình 14.4: Ma trận tương quan của dữ liệu Cardio

Hình 14.5: Biểu đồ trực quan cho ma trận tương quan bằng cách 1

Trang 31

Hình 14.6: Biểu đồ trực quan cho ma trận tương quan bằng cách 2

Ngày đăng: 27/11/2024, 17:47

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

TÀI LIỆU LIÊN QUAN

w