https://github.com/bongudth/mobile-price-prediction
https://github.com/bongudth/mobile-price-prediction
data-science dut-udn
Last synced: 3 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/bongudth/mobile-price-prediction
- Owner: bongudth
- Created: 2022-05-28T16:02:54.000Z (about 3 years ago)
- Default Branch: master
- Last Pushed: 2022-07-02T07:58:18.000Z (almost 3 years ago)
- Last Synced: 2025-02-24T05:47:03.993Z (3 months ago)
- Topics: data-science, dut-udn
- Language: Jupyter Notebook
- Homepage:
- Size: 7.92 MB
- Stars: 1
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 📱 Dự đoán giá điện thoại
## ⚒ Các thư viện cần cài đặt
| Thư viện | Lệnh cài đặt | Mô tả |
| :------- | :---------------------------- | :------------- |
| `bs4` | `pip install bs4` | Beautiful Soup |
| `sklearn` | `pip install -U scikit-learn` | scikit-learn |
| `xgboost` | `pip install xgboost` | XGBoost |## 🚀 Trình tự chạy chương trình
Crawl dữ liệu từ 4 trang web
```bash
crawl.ipynb
```Folder lưu trữ các file dữ liệu thô
```bash
raw_data/
```Làm sạch đúng kiểu dữ liệu và xử lý dữ liệu trống
```bash
clean.ipynb
```Folder lưu trữ dữ liệu được làm sạch
```bash
clean_data/
```Chia bộ dữ liệu thành tập train và test, xử lý ngoại lệ, chuẩn hóa dữ liệu, lựa chọn đặc trưng
```bash
feature_engineering.ipynb
```Folder lưu trữ các file dữ liệu huấn luyện và kiểm thử
```bash
train_test_data/
```Xây dựng mô hình dự đoán giá điện thoại
```bash
modeling.ipynb
```## 👨🏽💻 Thành viên
- [Ngô Văn Đông](https://github.com/ngovandong)
- [Huỳnh Thị Khánh Linh](https://github.com/bongudth)
- [Nguyễn Minh Dũng](https://github.com/dungngminh)## ✍🏽 Dữ liệu
Bộ dữ liệu bao gồm các thông số kỹ thuật, giá bán của điện thoại di động, được thu thập từ:
- [Thế Giới Di Động](https://www.thegioididong.com/)
- [CellphoneS](https://cellphones.com.vn/)
- [Hoàng Hà Mobile](https://hoanghamobile.com/)
- [Nguyễn Kim](https://www.nguyenkim.com/dien-thoai-di-dong)## 🔨 Feature engineering
- Thay thế dữ liệu trống bằng giá trị **mean** cho **dữ liệu dạng số**
- Thay thế dữ liệu trống bằng giá trị **random** cho **dữ liệu phân loại**
- Chuyển dữ liệu phân loại thành dữ liệu dạng số sử dụng **LabelEncoder** của *sklearn*
- Xử lý ngoại lệ sử dụng **IQR** để tìm biên trên và biên dưới của dữ liệu
- Chuẩn hóa dữ liệu sử dụng **StandardScaler** của *sklearn*## 💡 Mô hình dự đoán
- Sử dụng **LinearRegression** của *sklearn*
- Cải tiến dùng **XGBRegressor** của *xgboost*## 🧠 Các metrics đánh giá
- **R2**
- **RMSE**
- **MAE**## ☃️ Kết quả dự đoán
| Mô hình | R2 | RMSE | MAE |
| :--------------- | :----- | :-------- | :-------- |
| LinearRegression | 73.17% | 5241.0791 | 3947.1287 |
| XGBRegressor | 94.45% | 2383.5217 | 1057.4660 |