Giter Site home page Giter Site logo

tampth / laptop_price_prediction Goto Github PK

View Code? Open in Web Editor NEW

This project forked from giathuan0506/laptop_price_prediction

0.0 0.0 0.0 235 KB

Dự đoán giá laptop dựa vào thuộc tính, đặc trưng của laptop được lấy từ trang thương mại của FPTShop

Jupyter Notebook 100.00%

laptop_price_prediction's Introduction

LAPTOP_PRICE_PREDICTION

Đồ án cuối kỳ môn Khoa học Dữ liệu

Giáo viên: Lê Ngọc Thành, Hoàng Xuân Trường

Đề tài: Dự đoán giá laptop


1. Thông tin nhóm

Tên MSSV
Đặng Thái Gia Thuận 1712173
Lê Kinh Luân 1612355

2. Thông tin đồ án

2.1. Câu hỏi được đặt ra là gì?

  • Dựa vào các thuộc tính, đặc trưng cơ bản của laptop như CPU, RAM, kích thước,… để dự đoán giá của sản phẩm trên thị trường.
  • Đầu vào của bài toán là tập các thuộc tính, đặc trưng cơ bản của laptop
  • Đầu ra của bài toán là giá trị dự đoán được từ những thuộc tính, đặc trưng ở đầu vào.
  • Bài toán sẽ được giải quyết bằng phương pháp Linear Regressin (hồi quy tuyến tính).

2.2. Nếu trả lời được câu hỏi thì có ý nghĩa gì?

Giải quyết bài toàn này sẽ giúp cho người dùng dễ dàng thẩm định được giá trị của laptop, cùng với đó lời giải của bài toán cung cấp cho chúng ta mối quan hệ giữa các đặc trưng của laptop đến giá cả của nó trên thị trường.

2.3. Cách thức thu nhập dữ liệu như thế nào? (từ đâu, parse HTML hay API, tham khảo từ đâu,...)

2.4. Tổng quan dữ liệu thu nhập được có bao nhiêu dòng, cột và cột cần dự đoán là gì.

  • Dữ liệu sau khi thu thập được gồm 224 hồ sơ (records) về laptop. Sau khi lọc bỏ những dữ liệu thiếu (NaN), dữ liệu còn lại bao gồm 185 hồ sơ.
  • Mỗi hồ sơ bao gồm 115 trường dữ liệu về thuộc tính và đặc trưng của sản phẩm. Trong đó, bao gồm 1 cột dữ liệu về giá (price) cần được dự đoán, một cột về tên của sản phẩm, một cột chứa đường dẫn sản phẩm, các cột còn lại là thuộc tính, đặc trưng của sản phẩm.
  • Tuy nhiên dữ liệu chưa hoàn toàn sạch. Trong dữ liệu tồn tại các giá trị “đang cập nhật” thể hiện một giá trị chưa biết của giá trị đó. Với từng kiểu dữ liệu, cần một phương pháp xử lý phù hợp để thay thế giá trị này bằng giá trị khác.

2.5. Với mỗi cột dữ liệu thu thập có ý nghĩa gì, kiểu dữ liệu và ví dụ.

  • Về mặt ý nghĩa các cột có thể chia thành:
    • CPU:
      • Gồm các trường dữ liệu: Tốc độ CPU, CPU, Tốc độ BUS, Loại CPU, Tốc độ tối đa, Hãng CPU, Bộ nhớ đệm, Tên đầy đủ (CPU), Số luồng, Số lõi.
      • Đây là trường dữ liệu mô tả các thông số kĩ thuật của CPU, trường “Tên đầy đủ (CPU)” có thể đại diện cho nhóm này.
Tốc độ CPU 2.30 GHz
CPU Ryzen 7
Tốc độ BUS 8 GT/s
Loại CPU 3750H
Tốc độ tối đa 4.00 GHz
  • Ví dụ: Với laptop “Acer Aspire Gaming A715-41G-R150/R7-3750H”, có các thông số kĩ thuật sau:
    • RAM:
      • Gồm các trường dữ liệu: RAM, Loại RAM, Số khe cắm rời, Tốc độ RAM, Dung lượng nâng cấp tối đa, Số RAM onboard, Tên đầy đủ (RAM), Số khe RAM còn lại.
      • Đây là trường dữ liệu mô tả các thông số kĩ thuật của RAM, trường "Tên đầy đủ (RAM)" có thể đại diện cho nhóm này.
RAM 8 GB Số RAM onboard 0
Loại RAM DDR4 Tên đầy đủ (RAM) 8 GB DDR4 2666 MHz
Số khe cắm rời 2 Số khe RAM còn lại 1
Tốc độ RAM 2933 MHz Dung lượng nâng cấp tối đa 32 GB
  • Ví dụ với laptop “Asus TUF Gaming FX506LI-HN039T/i5-10300H”, có các thông số kĩ thuật sau:
    • Màn hình
      • Gồm các trường dữ liệu: Màn hình cảm ứng, Công nghệ màn hình, Màn hình, Độ phân giải, Tần số quét, Loại cảm ứng, Tấm nền, Tên đầy đủ (Màn hình), Độ tương phản, Độ sáng, Tỷ lệ màn hình, Độ phủ màu, Kiểu màn hình.
      • Đây là trường dữ liệu mô tả các thông số kĩ thuật của màn hình, trường “Tên đầy đủ (Màn hình)” có thể đại diện cho nhóm này.
Màn hình cảm ứng Không Loại cảm ứng Không
Công nghệ màn hình LED Backlit Tấm nền IPS
Màn hình 15.6" Kiểu màn hình LED
Độ phân giải 1920 x 1080 Pixel Độ tương phản 600:1
Tần số quét 60 Hz Độ sáng) 250 nits
Tỷ lệ màn hình 16:09 Độ phủ màu 45% NTSC
Tên đầy đủ (Màn hình) "15.6"" Anti-glare LED-backlit"
  • Ví dụ với laptop “Asus TUF Gaming FX506LI-HN039T/i5-10300H”, có các thông số kĩ thuật sau:
    • Đồ hoạ
      • Gồm các trường dữ liệu: Card đồ họa, Card rời, Có Card rời, Có Card onbroad, Hãng (Card onbroad), Model (Card onbroad), Model (Card rời), Xung nhịp tối đa (Card onbroad), Xung nhịp (Card onbroad), Đồ họa, Xung nhịp (Card rời), Xung nhịp tối đa (Card rời), Card onbroad, Bộ nhớ đồ họa (Card rời), Kiểu bộ nhớ, Hãng (Card rời), Tên đầy đủ (Card rời), Tổng số khe cắm SSD/HDD, Tốc độ đọc/ghi, Tốc độ quay HDD, Có SSD, Số khe SSD/HDD còn lại, Dung Lượng HDD, Ổ cứng, Dung lượng SSD, Kiểu HDD, Chuẩn M2, Kiểu SSD,Có HDD.
      • Đây là trường dữ liệu mô tả các thông số kĩ thuật của card đồ hoạ. “Model (Card onbroad)” và “Model (Card rời)” là hai trường dữ liệu đại diện cho nhóm này.
    • Khác
      • Gồm các trường dữ liệu: Hỗ trợ công nghệ Optane, Khe đọc thẻ nhớ, Bluetooth, Số cổng Gigabit Ethernet, Số cổng HDMI, Số cổng VGA, Wireless, Số cổng Type-C, Số cổng USB 2.0, Webcame, Số cổng 3.5 mm headphone/speaker jack, Số cổng DC-in jack, Số cổng USB 3.0, Số cổng Thunderbolt, Số cổng Card reader, Senser, Công nghệ âm thanh, Số Loa, Nhận diện khuôn mặt, Mở khóa vân tay (Finger Print), Mật khẩu, Ổ đĩa quang, Loại ổ đĩa quang, Bàn phím số, Công nghệ đèn bàn phím, Kiểu bàn phím, TouchPad, Loại đèn bàn phím, Màu đèn LED, PIN có thể tháo rời, Loại PIN, PIN (Cell), Power Supply, Type, Version, Hệ điều hành, Chất liệu mặt bên ngoài cùng, Chất liệu khung màn hình, Width (mm), Tản nhiệt, Height (mm), Bản lề (Hinge / Kickstand), Trọng lượng (kg), Chất liệu mặt lưng, Kích thước (mm), Chất liệu mặt bàn phím + kê tay,Model Series, PN, Thời gian bảo hành, Xuất xứ, Năm ra mắt, Phụ kiện kèm theo (bút / bàn phím/ cáp chuyển…).
      • Đây là các trường dữ liệu đại diện mô tả các thiết bị ngoại vi và bảo mật của laptop.
  • Về mặt giá trị các cột dữ liệu có thể chia thành:
    • Các trường dữ liệu có giá trị là giá trị và đơn vị: các trường dữ liệu này cần được tiền xử lý bằng phương pháp loại bỏ đơn vị, giữ lại giá trị của trường dữ liệu này. Với các giá trị “đang cập nhật”, giá trị trung bình của tập các giá trị còn lại sẽ được dùng nhằm thay thế.
      • Ví dụ với laptop “Asus TUF Gaming FX506LI-HN039T/i5-10300H” có trường “RAM” có giá trị là “8 GB”. Sau khi tiền xử lý, trường “RAM” sẽ chỉ còn giá trị là 8.
    • Các trường dữ liệu dạng có không: Với các trường dữ liệu, các giá trị “có” sẽ được chuyển thành giá trị 1, các giá trị “không” sẽ được chuyển thành giá trị 0. Các giá trị “đang cập nhật” sẽ được thay thế bằng giá trị 0 hoặc 1 tuỳ vào giá trị có số lượng nhiều nhất.
      • Ví dụ với laptop “Asus TUF Gaming FX506LI-HN039T/i5-10300H” có trường dữ liệu “Có card onboard” nhận giá trị là “Có”. Sau khi tiền xử lý giá trị của trường này là 1.
    • Các trường dữ liệu có giá trị là một mã số kĩ thuật. Để xử lý các giá trị này, chúng tôi sẽ sử dụng một thang đo chuẩn để đánh giá lại giá trị này bằng 1 giá trị khác phù hợp hơn.
      • Ví dụ với laptop “Asus TUF Gaming FX506LI-HN039T/i5-10300H” có trường dữ liệu “Tên đầy đủ CPU” nhận giá trị là “Intel Core i5-10300H”. Chúng tôi dựa vào thang điểm trên trang “https://www.cpubenchmark.net” để thay thế giá trị 8854 cho giá trị cũ.

2.6. Tự đánh giá đồ án (kết quả, thiếu sót, cần làm gì phát triển thêm,..).

  • Do các đặc trưng sản phẩm quá nhiều (hơn 100 trường dữ liệu), điều này là một thử thách rất lớn cho tiến trình tiền xử lý dữ liệu. Nên nhóm sẽ giữ lại 25 giá trị cột dữ liệu đầu tiên để tiến hành xử lý các giá trị đặc trưng thành một vector đặc trưng của từng sản phẩm. Các đặc trưng cụ thể mà nhóm sử dụng là: Tên đầy đủ (CPU), Số luồng, Số lõi, RAM, Số khe cắm rời, Tốc độ RAM, Dung lượng nâng cấp tối đa, Số RAM onboard, Số khe RAM còn lại, Màn hình, Độ phân giải, Tần số quét, Độ sáng, Có Card rời, Có Card onbroad, Xung nhịp tối đa (Card onbroad), Bộ nhớ đồ họa (Card rời), Tổng số khe cắm SSD/HDD, Có SSD, Số khe SSD/HDD còn lại, Có HDD, Số cổng Gigabit Ethernet, Số cổng HDMI, Số cổng VGA
  • Nhóm sẽ phân chia bộ dữ liệu này thành 2 nhóm train và test nhờ vào hàm train_test_split của thư viện sklearn với tỉ lệ tập test là: 0.2. Sau khi nhiều lần chạy thử nghiệm, kết quả trung bình theo đánh giá rmse là: 2824189.5807544095
  • Đây là một kết quả có thể chấp nhận được.
  • Để cải thiện kết quả của mô hình, thì nhóm cần:
    • Chọn lọc các trường dữ liệu sử dụng để xây dựng vector đặc trưng phù hợp hơn.
    • Sử dụng các thang đo có độ chính xác cao hơn.
    • Cải thiện việc xử lý các dữ liệu bị thiếu hoặc “đang cập nhật”.
    • Thu thập thêm nhiều dữ liệu để huấn luyện và kiểm thử.

2.7. Phân công công việc.

image

2.8. Hướng dẫn chạy các file notebook (tất cả các quy trình, cả code thu nhập dữ liệu)

Nhóm đã đính kèm theo file notebook có chú thích code: https://github.com/giathuan0506/LAPTOP_PRICE_PREDICTION/blob/main/Crawler_laptop_data.ipynb https://github.com/giathuan0506/LAPTOP_PRICE_PREDICTION/blob/main/Final.ipynb

laptop_price_prediction's People

Contributors

giathuan0506 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.