Chi tiết bước làm

Một phần của tài liệu môn ứng dụng phân tích dữ liệu lớn trong kinh doanh đề tài hồi quy tuyến tính và ứng dụng (Trang 24 - 33)

CHƯƠNG 3: ỨNG DỤNG MÔ HÌNH THỰC TẾ 3.1.Giới thiệu

3.3. Chi tiết bước làm

Bước 1: Đọc dữ liệu và nhập các thư viện

- Bước đầu tiên của quy trình là đọc tập dữ liệu để xử lý. Quá trình xử lý được áp dụng trên tập dữ liệu.

- Sử dụng Pandas để quản lý dữ liệu và NumPy để xử lý mảng.

- Sử dụng thư viện Scikit-learn để các chức năng liên quan đến máy học và những phương pháp đánh giá.

- Đọc file dữ liệu (ví dụ: từ CSV) bằng Pandas.

- Đầu vào: dữ liệu đầu vào là tập CSV "day.csv" chứa thông tin về nhu cầu sử dụng xe đạp - Đầu ra: dữ liệu được đọc và lưu vào dataframe "bike" cho việc phân tích tiếp theo.

Bước 2: Kiểm tra và phân tích bộ dữ liệu

- Kiểm tra giá trị Null/Missing: Kết quả như hình 3.4a và 3.4b bên dưới cho thấy bộ dữ liệu không có giá trị Null/Missing trong cột hoặc hàng. Không có các giá trị Null/Missing thì chuyển đến bước tiếp theo.

Hình. Kết quả kiểm tra dữ liệu null

- Nhóm kiểm tra các bản ghi có bản ghi nào bị trùng lặp không vì đây là một lý do rất phổ biến khi trong quá trình ghi thông tin bị nhầm lẫn và điều đó dẫn đến mô hình có thể sai lệch nhiều. Nên nhóm sẽ kiểm tra và loại bỏ các bản ghi nếu có.

Hình

- Kết quả sau khi chạy lệnh thả trùng lặp giống với khung dữ liệu gốc. Do đó, chúng tôi có thể kết luận rằng không có giá trị trùng lặp nào trong tập dữ liệu.

- Làm sạch dữ liệu: Tạo một bản sao của DataFrame mà không bao gồm cột 'instant', vì cột này chứa các giá trị duy nhất và không có ý nghĩa khi thực hiện đếm số lượng giá trị trên nó.

Duyệt qua từng cột trong DataFrame mới tạo và in ra số lần xuất hiện của từng giá trị trong cột đó.

Hình . Hầu như không có các giá trị không xác định trong toàn bộ tập dữ liệu.

- Instant: Nó chỉ là một giá trị chỉ mục

- dteday : Cái này có ngày, vì chúng tôi đã có các cột riêng biệt cho 'năm' & 'tháng', do đó, chúng tôi có thể sống mà không cần cột này.

- casual & registered : Cả hai cột này đều chứa số lượng xe đạp được đặt bởi các loại khách hàng khác nhau. Vì mục tiêu của chúng tôi là tìm tổng số xe đạp chứ không phải theo danh mục cụ thể nên chúng tôi sẽ bỏ qua hai cột này. Hơn nữa, chúng tôi đã tạo một biến mới để có tỷ lệ của các loại khách hàng này.

Chúng tôi sẽ lưu khung dữ liệu mới dưới dạng bike_new, để tập dữ liệu gốc được giữ nguyên cho mọi phân tích/xác thực trong tương lai.

- Tạo biến giả: Nhóm sẽ tạo các biến giả cho 4 biến phân loại 'mnth', 'weekday', 'season'

& 'weathersit'. Trước khi tạo biến giả, nhóm sẽ phải chuyển đổi chúng thành kiểu dữ liệu

“category”.

- Tạo các biến giả cho các biến phân loại của nó, loại bỏ các biến phân loại ban đầu và loại bỏ biến giả đầu tiên cho mỗi bộ giả được tạo để tránh hiện tượng đa cộng tuyến.

Bước 3: Chia tập dữ liệu

- Chia dữ liệu thành tập Train và tập Test với tỷ lệ 70:30. Chúng tôi sẽ sử dụng phương thức train_test_split từ gói sklearn cho việc này

+ Đầu vào: dữ liệu đã được tiền xử lý.

+ Đầu ra:

Tập Train: 70% dữ liệu gốc, tập có kích thước lớn nhất dùng để huấn luyện mô hình.

Tập Test: 30% dữ liệu gốc, tập dùng để đánh giá mô hình sau quá trình học.

Xây dựng boxplot của tất cả các biến phân loại: tạo ra một lưới các biểu đồ boxplot, trong đó mỗi đồ thị phụ hiển thị phân phối của 'cnt' qua các nhóm của một biến phân loại.

Biểu đồ này giúp hiểu cách mỗi biến dự đoán liên quan đến biến mục tiêu.

Hình.

Phân tích dựa trên sáu biến phân loại trong tập dữ liệu. Biểu đồ hộp được sử dụng để xem xét ảnh hưởng của chúng đối với biến phụ thuộc ('cnt'). Dưới đây là các kết luận được rút ra:

- season: Khoảng 32% số lượng đặt xe đạp diễn ra trong mùa 3 với một trung vị hơn 5000 đơn đặt (trong khoảng 2 năm). Tiếp theo là mùa 2 và mùa 4 với 27% và 25% tổng số lượng đặt. Điều này cho thấy, mùa có thể là một chỉ số dự đoán tốt cho biến phụ thuộc.

- mnth: Gần 10% số lượng đặt xe đạp diễn ra trong các tháng 5, 6, 7, 8 và 9 với một trung vị hơn 4000 đơn đặt mỗi tháng. Điều này cho thấy, tháng có một số xu hướng đối với số lượng đặt và có thể là một chỉ số dự đoán tốt cho biến phụ thuộc.

- weathersit: Gần 67% số lượng đặt xe đạp diễn ra trong 'weathersit1' với một trung vị gần 5000 đơn đặt (trong khoảng 2 năm). Tiếp theo là weathersit2 với 30% tổng số lượng đặt.

Điều này cho thấy, weathersit có một số xu hướng đối với số lượng đặt xe đạp và có thể là một chỉ số dự đoán tốt cho biến phụ thuộc.

- holiday: Gần 97,6% số lượng đặt xe đạp diễn ra khi không phải là ngày nghỉ, điều này cho thấy dữ liệu này rõ ràng là thiên vị. Điều này cho thấy, ngày nghỉ KHÔNG THỂ là một chỉ số dự đoán tốt cho biến phụ thuộc.

- weekday: Biến weekday cho thấy một sự tương tự giữa các ngày trong tuần (từ 13,5% đến 14,8% tổng số lượng đặt vào tất cả các ngày trong tuần) có trung vị độc lập từ 4000 đến 5000 đơn đặt. Biến này có thể có ảnh hưởng hoặc không có ảnh hưởng đối với dự đoán. Tôi sẽ để cho mô hình quyết định xem điều này cần được thêm vào hay không.

- workingday: Gần 69% số lượng đặt xe đạp diễn ra trong 'workingday' với một trung vị gần 5000 đơn đặt (trong khoảng 2 năm). Điều này cho thấy, workingday có thể là một chỉ số dự đoán tốt cho biến phụ thuộc.

- Kiểm tra hệ số tương quan:

Hình. Bản đồ nhiệt

- Bản đồ nhiệt cho thấy rõ ràng tất cả các biến nào có bản chất đa cộng tuyến và biến nào có độ cộng tuyến cao với biến mục tiêu. Chúng tôi sẽ tham chiếu qua lại bản đồ này trong khi xây dựng mô hình tuyến tính để xác thực các giá trị tương quan khác nhau cùng với giá trị VIF & p, nhằm xác định biến chính xác để chọn/loại bỏ khỏi mô hình.

- Chuẩn hoá dữ liệu: Việc các biến có phạm vi giá trị khác nhau khiến cho mô hình học khó khăn hơn, nên nhóm quyết định sử dụng phương pháp chuẩn hoá Minmaxscaler từ thư viện sklearn .Việc sử dụng phương pháp chuẩn hóa trong xử lý dữ liệu là một phần quan trọng của quá trình tiền xử lý dữ liệu, phương pháp này giúp đồng nhất hóa phạm vi giá trị của các biến, tạo điều kiện thuận lợi cho việc huấn luyện và cải thiện hiệu suất của mô hình dự đoán.

Hình

Bước 4. Xây dựng mô hình

- Bỏ biến phụ thuộc ‘cnt’ (biến tổng số lượng người sử dụng xe đạp).

- Sử dụng phương pháp RFE (Recursive Feature Elimination) chọn ra 15 đặc trưng quan trọng từ mô hình dự đoán ban đầu.

- Sau đó chọn ra 15 đặc trưng phù hợp với mô hình, đồng thời loại bỏ các biến không phù hợp.

- Tệp dữ liệu sau khi bỏ.

Xây dựng mô hình hồi quy bằng phương pháp sử dụng mô hình thống kê

MÔ HÌNH 1:

VIF CHECK 3.3 Kết quả

Dựa trên đánh giá của phương pháp R-Squared Score của bài R2 Score ≈ 0,662

R2 Score gần bằng 0,662: R2 Score có giá trị khá cao, đạt khoảng 66,2%. Điều này cho thấy mô hình có khả năng giải thích biến thiên của dữ liệu tương đối tốt, với khoảng 66,2% sự biến thiên của biến phụ thuộc được giải thích bởi mô hình. Vậy mô hình có thể dự đoán giá xe đã qua sử dụng với độ chính xác lên đến 66%.

Qua mô hình có thể tìm ra được phương trình hồi quy tuyến tính của bài:

Selling_price = 0,0063 name + 0,0909 year - 0,1465 km_driven - 0,0082 fuel✕ name + 0,0909 ✕ year - 0,1465 ✕ km_driven - 0,0082 ✕ fuel ✕ name + 0,0909 ✕ year - 0,1465 ✕ km_driven - 0,0082 ✕ fuel ✕ name + 0,0909 ✕ year - 0,1465 ✕ km_driven - 0,0082 ✕ fuel ✕ name + 0,0909 ✕ year - 0,1465 ✕ km_driven - 0,0082 ✕ fuel + 0,0211 seller_type + 0,0324 transmission - 0,0007 owner + 0,0314 mileage +✕ name + 0,0909 ✕ year - 0,1465 ✕ km_driven - 0,0082 ✕ fuel ✕ name + 0,0909 ✕ year - 0,1465 ✕ km_driven - 0,0082 ✕ fuel ✕ name + 0,0909 ✕ year - 0,1465 ✕ km_driven - 0,0082 ✕ fuel ✕ name + 0,0909 ✕ year - 0,1465 ✕ km_driven - 0,0082 ✕ fuel 0,0277 engine + 0,3552 max_power - 0,0057 seats✕ name + 0,0909 ✕ year - 0,1465 ✕ km_driven - 0,0082 ✕ fuel ✕ name + 0,0909 ✕ year - 0,1465 ✕ km_driven - 0,0082 ✕ fuel ✕ name + 0,0909 ✕ year - 0,1465 ✕ km_driven - 0,0082 ✕ fuel

Nhận xét: Biến năm sản xuất (year) có hệ số dương, cho thấy giá của xe tăng theo thời gian. Ngược lại, biến số km đã đi (km_driven) có hệ số âm, cho thấy giá xe giảm khi số km đã đi càng lớn. Công suất tối đa của động cơ (max_power) có hệ số dương lớn nhất, cho thấy mối liên hệ tích cực mạnh với giá của xe, với mức độ tăng giá lớn khi công suất tăng.

Các biến như loại nhiên liệu (fuel), loại người bán (seller_type), và các biến khác như tên xe (name), loại hộp số (transmission), số chủ sở hữu trước đó (owner), mức tiêu hao nhiên liệu (mileage), dung tích động cơ (engine), và số ghế (seats) có hệ số không đáng kể, cho thấy chúng không có ảnh hưởng quan trọng đến giá của xe trong mô hình này.

Kết luận: Có thể thấy với những người mua xe đã qua sử dụng, họ quan tâm nhiều đến số km đã đi vì khi số km đã đi càng lớn, do sự mòn hao và giảm hiệu suất của xe sau thời gian sử dụng. Với năm sản xuất càng mới thì giá xe sẽ cao hơn và người dùng ưu tiên xe mới. Bên cạnh đó, yếu tố công suất tối đa của xe được đặc biệt quan tâm. Và các yếu tố khác như hãng xe, người bán, chỗ ngồi,...không được quan tâm nhiều. Có thể thấy người mua xe cũ quan tâm nhiều đến hiệu năng và độ mới của xe những yếu tố khác không đáng kể. Từ những nhận xét trên, mô hình đã cung cấp cái nhìn sơ bộ về yếu tố quyết định giá của xe, tuy nhiên cần thêm nghiên cứu và điều chỉnh để đảm bảo tính chính xác và đáng tin cậy

Một phần của tài liệu môn ứng dụng phân tích dữ liệu lớn trong kinh doanh đề tài hồi quy tuyến tính và ứng dụng (Trang 24 - 33)

Tải bản đầy đủ (DOCX)

(34 trang)
w