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

Tiểu luận khoa học dữ liệu

43 41 0

Đ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 đề Đồ Án Kết Thúc Môn Học Khoa Học Dữ Liệu
Tác giả Vũ Nguyễn Năng Khánh, Nguyễn Minh Nhật, Đồng Đan Hoài, Huỳnh Thị Cẩm Nhung, Nguyễn Phúc Hải
Người hướng dẫn Thầy Trương Việt Phương
Trường học Đại học Kinh tế TP Hồ Chí Minh
Chuyên ngành Khoa Học Dữ Liệu
Thể loại đồ án
Năm xuất bản 2022
Thành phố TP Hồ Chí Minh
Định dạng
Số trang 43
Dung lượng 3,5 MB

Cấu trúc

  • 1. Phân Công Nhiệm Vụ, Tỉ Lệ Điểm Thành Viên (7)
  • 2. Chọn bộ dữ liệu và mô tả (8)
  • 3. Tiền Xử Lý Dữ Liệu (13)
  • 5. Tiến Hành Phân Lớp, Dự Báo Từ 10% Dữ Liệu từ Bộ Dữ Liệu Phân Lớp (33)
  • 6. Phụ Lục (43)

Nội dung

BỘ GIÁO DỤC VÀ ĐÀO TẠO ĐẠI HỌC KINH TẾ TP HỒ CHÍ MINH KHOA CÔNG NGHỆ THÔNG TIN KINH DOANH  ĐỒ ÁN KẾT THÚC MÔN HỌC KHOA HỌC DỮ LIỆU Chuyên ngành Khoa Học Dữ Liệu Sinh viên thực hiện Vũ Nguyễn Năn.

Phân Công Nhiệm Vụ, Tỉ Lệ Điểm Thành Viên

Thành Viên Nhiệm Vụ, Phân Công Tỉ Lệ Điểm Thành Viên

Vũ Nguyễn Năng Khánh Chọn dataset, tiền xử lý dữ liệu, phân lớp dữ liệu và so sánh 10% dữ liệu

Nguyễn Minh Nhật Chọn dataset, tiền xử lý dữ liệu, phân lớp dữ liệu và so sánh 10% dữ liệu

20% Đồng Đan Hoài Chọn dataset, mô tả data + thống kê, phân cụm

Huỳnh Thị Cẩm Nhung Chọn dataset, mục tiêu phân tích, phân cụm, hoàn thiện file Docs đồ án

Nguyễn Phúc Hải Chọn dataset, tiền xử lý dữ liệu, phân cụm, hoàn thiện file Docs đồ án

Chọn bộ dữ liệu và mô tả

A/ Bộ dữ liệu được chọn:

Dữ liệu thu thập được bao gồm 4746 dòng với biến “Area Type” là biến phụ thuộc

Bài viết mô tả các biến quan trọng liên quan đến thông tin bất động sản "Posted On" chỉ rõ ngày tháng năm mà dữ liệu được ghi nhận "BHK" thể hiện tổng số phòng ngủ, sảnh và phòng bếp dưới dạng số "Rent" ghi lại giá cho thuê của căn nhà hoặc căn hộ, cũng được thể hiện bằng số "Size" đề cập đến kích thước của căn nhà hoặc căn hộ tính theo đơn vị Square Feet, với 1 square feet tương đương 0.0929 mét vuông Cuối cùng, "Floor" cho biết vị trí của nhà hoặc căn hộ trên tổng số tầng hiện có, ví dụ như "Ground out of 2".

Kích thước của nhà hoặc căn hộ được xác định dựa trên diện tích xây dựng (Super Area), diện tích thông thủy (Carpet Area) hoặc diện tích tim tường (Build Area) Vị trí của nhà hoặc căn hộ cũng rất quan trọng, và thành phố nơi căn hộ tọa lạc có thể là Kolkata, Delhi, hoặc các địa điểm khác.

In major cities like Hyderabad, Bangalore, Chennai, and Mumbai, the furnishing status of a property can significantly influence rental decisions, categorized as Furnished, Semi-Furnished, or Unfurnished Tenant preferences vary, with options for Bachelors, Families, or a combination of both The availability of bathrooms is also a key consideration, often quantified numerically For inquiries regarding properties, potential renters can reach out to the Point of Contact, which may include the Owner, Builder, or Agent Additionally, properties with at least one bathroom are marked as having a bathroom.

Bộ dữ liệu được khảo sát về tình trạng thuê nhà ở Ấn Độ trong một giai đoạn 3 tháng (Từ ngày 13/4/2022 đến 11/7/2022)

Lấy năm dòng đầu tiên của DataFrame

Hình 1 1 Năm dòng đầu của DataFrame

Xem kích cỡ của DataFrame( gồm có 4746 dòng và 13 cột)

Hình 1 2 Kích cỡ của DataFrame

DataFrame gồm có 13 thuộc tính trong đó là 4 kiểu dữ liệu định lượng(int64) và 13 kiểu dữ liệu định tính(object)

Hình 1 3 Mô tả dữ liệu

Dữ liệu của nhà có giá cao nhất:

Hình 1 5 Dữ liệu nhà có 100 phòng tắm

Giá thuê nhà theo thành phố:

Hình 1 7 Giá thuê nhà theo thành phố

Là biến Area Type với 3 giá trị Super Area - Carpet Area - Build Area (biến Super Area chiếm đa số)

Kích thước của nhà hoặc căn hộ được xác định dựa trên loại diện tích, từ đó có thể so sánh với các yếu tố khác, đặc biệt là biến "Size" và giá thuê Điều này giúp đưa ra nhận định chính xác và lựa chọn hợp lý cho cả người cho thuê và người thuê.

Tiền Xử Lý Dữ Liệu

A/ Tổng Quan Các Vấn Đề Dữ Liệu Đang Gặp Phải

B/ Xử Lý Dữ Liệu Bị Thiếu

Sử dụng Python để tìm kiếm dữ liệu bị thiếu

Phần trăm thuộc tính BHK và Furnishing Status, Tenant Preferred thiếu dữ liệu lần lượt là 0.25% và 0.35%, 0.63%

Nguyên nhân thiếu sót thông tin trong việc điền biến BHK (số phòng trong nhà trừ phòng tắm) và biến Furnishing Status (tình trạng nội thất) có thể xuất phát từ việc người cung cấp thông tin quên hoặc cố tình che giấu những thiếu sót của căn hộ Điều này xảy ra vì cả hai biến này đều thể hiện rõ giá trị của một căn hộ hoặc ngôi nhà, khiến người điền thông tin có thể muốn che giấu những điểm yếu trong tài sản của mình.

Để xử lý dữ liệu bị thiếu cho các biến định tính (BHK), cần điền vào các giá trị thiếu bằng giá trị có tần suất xuất hiện cao nhất trong thuộc tính.

Hình 2 1 Code Python thống kê phần trăm dữ liệu bị thiếu của các thuộc tính

Đối với các biến định lượng như Tenant Preferred và Furnishing Status, sử dụng phần mềm Orange để tính toán giá trị trung bình (mean) và trung vị (median) là cần thiết, đặc biệt khi có sự xuất hiện của các giá trị ngoại lai (outliers) trong các thuộc tính, nhằm điền vào các giá trị thiếu (missing values).

Thuộc tính Giá trị replace

Hình 2 4 Sử dụng Orange để tính Mean, Median cho thuộc tính BHK

C/ Xử Lý Dữ Liệu Bị Nhiễu

Sau khi phân tích biểu đồ, chúng tôi nhận thấy một số giá trị không hợp lý trong thuộc tính Bathroom, đặc biệt là sự xuất hiện của những ngôi nhà có tới 100 phòng tắm.

Nhiều nguyên nhân có thể dẫn đến tình trạng sai lệch thông tin, bao gồm sự cố trong quá trình nhập dữ liệu của người thu thập hoặc do sự cố ý gây nhiễu từ người cung cấp thông tin, cũng như sự khó hiểu trong cách truyền đạt thông tin.

Hình 2 5 Biểu đồ cho thấy biến không hợp lý

Sử dụng Orange để tính toán giá trị trung bình của thuộc tính Bathroom, thay thế các giá trị gây nhiễu bằng giá trị trung bình là 2.09 Sau khi xử lý dữ liệu bị thiếu, lưu file dưới định dạng csv để tải lên Google Colab.

D/ Xử Lý Dữ Liệu Dư Thừa

Cột dữ liệu "Have Bathroom" thể hiện giá trị nhị phân về sự hiện diện của nhà tắm trong các căn hộ, nhưng khi so sánh với biến "Bathroom", không có căn hộ nào thiếu nhà tắm Do đó, tất cả các giá trị trong cột này đều là 100% CÓ, dẫn đến việc cần thiết phải loại bỏ cột "Have Bathroom" khỏi dữ liệu.

Trong phần mềm Orange, việc sử dụng tính năng Select Columns giúp loại bỏ thuộc tính "Have Bathroom", đồng thời công cụ Rank cũng cho thấy rằng thuộc tính này không cần thiết, khi tất cả các chỉ số đều bằng 0.

Hình 2 8 Thống kê dữ liệu dư thừa

Hình 2 9 Sử dụng Orange để loại bỏ thuộc tính Have Bathroom

E/ Workflow và Link Python, Dataset

Link Orange: https://drive.google.com/file/d/1b4whLsI0TLhLBjqmOgyTeaI4qM2mEcOf/view?usp

Link Python: https://colab.research.google.com/drive/1GKThLCSdXCgycrQHOvrWYgaFoZuqL0x C?usp=sharing

Link dữ liệu đã tiền xử lý: https://drive.google.com/file/d/1sRd0tuMP0Pz4Pv8KHe8TglYSqKMdzdhX/view?usp

4 Tiến Hành Phân Cụm, Chọn Số Cụm Tốt Nhất và

So Sánh với Nhãn Hiện Có, Nhận Xét

Bước 1: Cập nhật file dữ liệu và chọn biến target để thực hiện phân cụm (unsupervised learning)

Hình 3 2 Nhập file dữ liệu vào Orange và chọn Area Type làm Target

Bảng dữ liệu sau khi cập nhật file dữ liệu

Bước 2: Dùng Select columns để loại bỏ đi biến target

Table thể hiện dữ liệu sau khi loại đi biến Target:

Bước 3: Thực hiện phân cụm theo phương pháp Hierarchical Clustering:

Sử dụng Distance để đo khoảng cách giữa các dữ liệu là một phương pháp hiệu quả trong việc phân cụm Trong trường hợp này, chúng ta chọn Distance Between Row và áp dụng thuật toán chuẩn hóa Euclid để đạt được kết quả chính xác hơn.

Hình 3 6 Dùng Orange tính Distance sử dụng chuẩn hóa Euclid

Bước 4: Thực hiện phân cụm theo phương pháp K-means:

C/ Chọn Số Phân Cụm Tốt Nhất và Giải Thích

Phân cụm theo phương pháp Hierarchical Clustering (Agnes Dendrogram):

Dưới đây là biểu diễn hai cụm sử dụng phương pháp tính khoảng cách giữa các cụm bằng cách lấy trung bình Sau khi điều chỉnh số lượng cụm mà không cải thiện tình trạng các cụm đầu có ít dữ liệu và cụm cuối có quá nhiều dữ liệu, chúng tôi quyết định ngừng đánh giá và chỉ chia thành hai cụm.

Chú thích về Average-linkage:

Phương pháp tính khoảng cách giữa các cụm dữ liệu dựa trên khoảng cách trung bình giữa một phần tử trong cụm và một phần tử trong cụm khác Tuy nhiên, trong dataset này, sự khác biệt giữa các phương pháp Average, Complete và Single-linkage không đáng kể, do đó không ảnh hưởng nhiều đến kết quả.

Theo phân tích Silhouette plot, phương pháp phân cụm Hierarchical chủ yếu chỉ đánh giá được cụm C2 do số lượng dữ liệu trong cụm C1 quá ít Do đó, chúng ta quyết định loại bỏ phương pháp Hierarchical Clustering và chuyển sang kiểm tra phương pháp Partitioning Clustering (K-means).

Hình 3 10 Đánh giá của Silhouette Plot đối với Hierarchical Clustering

Phân cụm theo phương pháp Partitioning Clustering (K-means):

Chúng tôi đã thử nghiệm với nhiều số lượng cluster, từ 2 đến 8, để xác định số cluster tối ưu Sau khi thực hiện tiền xử lý và chuẩn hóa các cột dữ liệu, kết quả cho thấy việc chia thành 2 cluster đạt điểm số tốt nhất, do đó chúng tôi quyết định tách dữ liệu thành 2 cluster.

Ta có 174 dữ liệu với đánh giá Silhouette index < 0.5 (trên tổng số

4746 dữ liệu: khoảng 3.67%) Như vậy là ta có khoảng 92.53% dữ liệu với đánh giá Silhouette index trên 0.5

Hình 3 11 Đánh giá của Silhouette Scores đối với K-means

Dữ liệu của chúng tôi đạt 92.53% độ chính xác, cho thấy sự phù hợp cao với thực tế, vượt trội hơn so với phương pháp phân cụm Hierarchical đã đề cập trước đó Do đó, chúng tôi quyết định chọn phương pháp phân cụm Partitioning, cụ thể là K-Means, cho tập dữ liệu về cho thuê nhà.

Phía dưới là table thể hiện dataset sau khi phân cụm theo thuật toán K- means(có Silhouette nhỏ nhất là 0.45623):

Hình 3 13 Dataset thể hiện đánh giá của Silhouette score cho từng dữ liệu sau phân cụm theo thuật toán K-means

D/ So Sánh Với Nhãn Hiện Có Và Nhận Xét:

Mở file House_Renting_Clean_2 được dùng để phân cụm bằng phương pháp K-means Ghi dữ liệu Area Type từ file House_Renting_Clean để so sánh với Cluster

Thực hiện hàm trong excel để xem biến Area Type sẽ thay đổi như thế nào sau khi phân cụm:

Hình 3 15 Công thức thay giá trị Area Type theo phân cụm

Hình 3 16 Bảng Excel sau khi thay giá trị theo phân cụm

Tới đây là sẽ thấy có một số sự khác biệt giữa nhãn hiện có và nhãn sau khi đã được phân cụm bằng phương pháp K-means

Tiếp theo ta sử dụng hàm trong excel để so sánh giữa nhãn hiện có và nhãn sau khi phân cụm:

Hình 3 17 Công thức so sánh nhãn và dự báo

Hình 3 18 Bảng Excel sau khi so sánh

Sau đó ta sẽ đếm giá trị TRUE VÀ FALSE để xem có bao nhiêu giá trị giống và khác nhau bằng hàm trong excel:

Hình 3 19 Công thức tính số giá trị giống và khác

Ta sẽ thu được số giá trị TRUE là: 2779 và giá trị FALSE là: 1967

Trong thuật toán phân cụm K-means, chúng ta không có nhãn cho từng điểm dữ liệu Mục tiêu chính là phân chia dữ liệu thành các cụm khác nhau, đảm bảo rằng các điểm dữ liệu trong cùng một cụm có đặc điểm tương đồng với nhau.

Tiến Hành Phân Lớp, Dự Báo Từ 10% Dữ Liệu từ Bộ Dữ Liệu Phân Lớp

Bộ Dữ Liệu Phân Lớp

Để đánh giá và lựa chọn mô hình phân lớp, đầu tiên, dữ liệu sẽ được nhập vào phần mềm Orange, và biến Area type sẽ được xác định là biến mục tiêu cho quá trình phân lớp Hình ảnh dưới đây cung cấp cái nhìn tổng quan về dữ liệu đầu vào mà chúng ta sẽ xử lý.

Hình 4 1 Đọc file dữ liệu vào phần mềm Orange

Ta được bảng dữ liệu như sau:

Hình 4 2 Bảng dữ liệu chi tiết

Từ bảng dữ liệu, các mô hình phân lớp sẽ được thử nghiệm và đánh giá nhằm lựa chọn mô hình tối ưu nhất Dưới đây là chi tiết các tham số cho từng mô hình.

Hình 4 3 Bảng tham số mô hình cây quyết định

Hình 4 4 Tham số của mô hình hồi quy Logistics

Hình 4 5 Tham số của mô hình Random Forest

Hình 4 6 Tham số của mô hình Support Vector Machine (SVM)

Hình 4 7 Tham số của mô hình Neural Network

Sau đó, với mỗi mô hình, ta sẽ kiểm tra và đánh giá, kết quả đạt được như sau:

Hình 4 8 Bảng kết quả đánh giá của các mô hình

Kết quả từ phần mềm Orange cho thấy thuật toán Mạng Nơron (Neural Network) đạt được chỉ số đánh giá cao nhất với 0.86 AUC, 0.804 CA, 0.803 F1, 0.807 Precision và 0.804 Recall Do đó, nhóm đã quyết định sử dụng mô hình Neural Network để thực hiện phân lớp.

Mạng nơ-ron, hay còn gọi là mạng nơ-ron nhân tạo (ANN) hoặc mạng nơ-ron mô phỏng (SNN), là một mô hình quản lý thông tin được thiết kế để mô phỏng hệ thống thần kinh sinh học của não bộ Mô hình này hoạt động bằng cách tái tạo cách các tế bào thần kinh tương tác và xử lý thông tin từ các giác quan của con người.

Mạng Nơron được cấu thành từ các nút nơron và các kết nối giữa chúng, trong đó mỗi nút đại diện cho một hàm đầu ra cụ thể, còn các kết nối thể hiện mức độ ảnh hưởng của nút này lên các nút xung quanh với trọng số tương ứng Kết quả đầu ra của mạng Nơron nhân tạo phụ thuộc vào cách các nút được kết nối và trọng số của các kết nối này Mạng Nơron đã được ứng dụng rộng rãi trong nhiều lĩnh vực như phân loại chữ số viết tay, nhận dạng giọng nói, dự đoán giá cổ phiếu, xếp hạng tín dụng, phân tích hành vi khách hàng, hỗ trợ ra quyết định, và dự đoán tỷ giá hối đoái và lãi suất Ưu điểm nổi bật của mạng Nơron nhân tạo là khả năng xấp xỉ các hàm phi tuyến, giúp phát hiện những mối liên hệ phức tạp ẩn trong dữ liệu.

38 | K h o a h ọ c d ữ l i ệ u tạo lại phụ thuộc nhiều vào cấu trúc mạng mà việc tìm ra cấu trúc tối ưu thường phức tạp và tốn nhiều tài nguyên

Mỗi nút Nơron hoạt động như một mô hình hồi quy tuyến tính độc lập, bao gồm các thành phần như dữ liệu đầu vào, trọng số, độ lệch (hoặc ngưỡng) và đầu ra.

Hình 4 9 Công thức của Mô hình mạng Neuron

Hình 4 10 Công thức của Mô hình mạng Neuron

Khi lớp đầu vào được xác định, trọng số sẽ được gán cho từng biến, xác định tầm quan trọng của chúng Các biến có trọng số lớn hơn sẽ có ảnh hưởng đáng kể hơn đến đầu ra Tất cả đầu vào được nhân với trọng số tương ứng và cộng lại, sau đó đầu ra sẽ được đưa qua một hàm kích hoạt Nếu đầu ra vượt ngưỡng nhất định, nó sẽ kích hoạt nút để truyền dữ liệu đến lớp tiếp theo trong mạng, dẫn đến việc đầu ra của một nút trở thành đầu vào cho nút tiếp theo.

Hình 4 11 Mô hình mạng Neuron

- Dự đoán phân lớp và so sánh kết quả dự đoán với dữ liệu ban đầu

Trích ra 10% data (476 rows) từ data đã tiền xử lý (4744 rows) để dự đoán (đã skip cột Area Type)

Sau khi so sánh với dữ liệu có nhãn, ta nhận được 83% tỷ lệ chính xác Một tỷ lệ chính xác cao và chấp nhận được

Hình 4 12 Bảng Excel so sánh với dữ liệu có nhãn

C/ Workflow, code Python (link Colab)

Hình 4 14 Code Python lấy ngẫu nhiên 10% dữ liệu

Dữ liệu predict: Prediction.xlsx - Google Trang tính

Dữ liệu đã tiền xử lý: happiness_cleaned.xlsx - Google Trang tính

Dữ liệu trích ra 20%: Sample.xlsx - Google Trang tính

Ngày đăng: 27/09/2022, 14:11

HÌNH ẢNH LIÊN QUAN

Hình 1 .5 Dữ liệu nhà có 100 phịng tắm - Tiểu luận khoa học dữ liệu
Hình 1 5 Dữ liệu nhà có 100 phịng tắm (Trang 10)
11 |Khoa học dữ liệu - Tiểu luận khoa học dữ liệu
11 |Khoa học dữ liệu (Trang 11)
Hình 1. 7 Giá thuê nhà theo thành phố - Tiểu luận khoa học dữ liệu
Hình 1. 7 Giá thuê nhà theo thành phố (Trang 11)
Hình 2. 1 Code Python thống kê phần trăm dữ liệu bị thiếu của các thuộc tính - Tiểu luận khoa học dữ liệu
Hình 2. 1 Code Python thống kê phần trăm dữ liệu bị thiếu của các thuộc tính (Trang 13)
Hình 2 .2 - Tiểu luận khoa học dữ liệu
Hình 2 2 (Trang 14)
Hình 2 .4 Sử dụng Orange để tính Mean, Median cho thuộc tính BHK - Tiểu luận khoa học dữ liệu
Hình 2 4 Sử dụng Orange để tính Mean, Median cho thuộc tính BHK (Trang 15)
Hình 2.5 Biểu đồ cho thấy biến không hợp lý - Tiểu luận khoa học dữ liệu
Hình 2.5 Biểu đồ cho thấy biến không hợp lý (Trang 16)
Hình 2 .6 - Tiểu luận khoa học dữ liệu
Hình 2 6 (Trang 17)
Hình 2. 9 Sử dụng Orange để loại bỏ thuộc tính Have Bathroom - Tiểu luận khoa học dữ liệu
Hình 2. 9 Sử dụng Orange để loại bỏ thuộc tính Have Bathroom (Trang 18)
Hình 2. 10 - Tiểu luận khoa học dữ liệu
Hình 2. 10 (Trang 18)
Hình 2. 11 Workflow - Tiểu luận khoa học dữ liệu
Hình 2. 11 Workflow (Trang 19)
Bảng dữ liệu sau khi cập nhật file dữ liệu - Tiểu luận khoa học dữ liệu
Bảng d ữ liệu sau khi cập nhật file dữ liệu (Trang 21)
Hình 3 .4 - Tiểu luận khoa học dữ liệu
Hình 3 4 (Trang 22)
Hình 3. 7 - Tiểu luận khoa học dữ liệu
Hình 3. 7 (Trang 24)
Hình 3 .8 - Tiểu luận khoa học dữ liệu
Hình 3 8 (Trang 25)

TỪ KHÓA LIÊN QUAN

w