Giter VIP home page Giter VIP logo

gold-price-prediction's Introduction

Gold-Price-Prediction

Thành viên trong nhóm 11:

  1. Mai Chí Trung - 20280109
  2. Mai Chí Thanh - 20280084
  3. Nguyễn Quốc HUy - 20280045
  4. Đặng Ngọc Hưng - 20280039

Bước 1: Nhập các thư viện cần thiết

Sử dụng Pandas để nhập dữ liệu, Matplotlib và Seaborn để trực quan hóa dữ liệu, sklearn cho các thuật toán, tran_test_split để chia tập dữ liệu trong tập kiểm tra và traing set, accuracy_score để đánh giá mô hình. image

Bước 2: Tải bộ dữ liệu

Lấy dữ liệu từ trang: https://www.nasdaq.com/marketactivity/commodities/gc%3Acmx image

Bộ dữ liệu này bao gồm giá vàng theo thời gian thực tính bằng USD từ năm 2012 đến năm 2022. Date - Ngày ghi giá Close - Ngày đóng giá vàng tính bằng USD Volume - Tổng lượng mua và bán của hàng hoá vàng Open - Giá mở của vàng vào ngày cụ thể đó High - Giá vàng cao nhất của ngày cụ thể đó Low - Giá vàng thấp nhất vào ngày cụ thể đó. image image

Đọc dữ liệu vàng hàng ngày trong 10 năm qua và lưu trữ nó trong df. Xóa các cột không liên quan image

Bước 3: Đánh giá thống kê thông tin

image Các thuộc tính có kiểu dữ liệu phù hợp để phân tích, cột Date đã có kiểu Datetime image Kích thước của dữ liệu: image

Dữ liệu có missing value nên phải xử lý lại dữ liệu image Sau khi xử lý missing value chúng ta loại bỏ đi 39 hàng trong bộ dữ liệu. Do 39 dòng nhỏ so với số lượng hơn 2000 dòng trong bộ dữ liệu nên sau khi loại bỏ 39 dòng, bộ dữ liệu vẫn còn đủ tốt để phân tích và train model.

Bước 4: Trực quan hóa dữ liệu

        Sử dụng hàm pairplot, heatmap để tìm kiếm các biến có tương quan mạnh với giá vàng
        ![image](https://user-images.githubusercontent.com/125122891/222762136-c6f50d81-8e4c-45b1-970b-e9b405aa13c6.png)
        ![image](https://user-images.githubusercontent.com/125122891/222762166-72dccbb0-c603-413e-b24d-5fbd79f24943.png)

          Nhìn vào biểu đồ trên ta thấy các biến Close/Last, Open, High, Low có tương quan với nhau
           Ngoài ra có thể sử dụng heatmap để tìm tương quan giữa các biến 

image Qua biểu đồ trên cho thấy các biến Close/Last, Open, High, Low có tương quan mạnh với nhau

Bước 5: Features engineering and selection

Sử dụng tính năng tương quan để train model image Sử dụng MinMaxScaler của sklearn để chuẩn hóa lại dữ liệu trong khoảng từ 0 đến 1 image

Phía dưới là dữ liệu sau khi biến đổi: image So sánh dữ liệu trước và sau khi biến đổi image image image

Bước 6: Model creation and training

Tiếp theo tách dữ liệu để train model theo kích thước 8:2 image image image image

ĐÁNH GIÁ MÔ HÌNH

image

MÔ HÌNH ANN:

  • 3 hidden layers
  • 40 Neuron node on each layer
  • Relu activation function

image

Mô hình sẽ biên dịch với:

  • Chức năng tối ưu hóa Adam
  • Với hàm mất lỗi bình phương trung bình
  • Tiến trình training với:
  • 100 Epochs
  • 50 rows of batch size

image image

DecisionTreeRegressor:

Sử dụng mô hình DecisionTree Regressor để dự đoán với tham số mặc định image image

RandomForest:

Random Forest là một thuật toán học có giám sát. Nó tạo ra một khu rừng và biến nó thành ngẫu nhiên theo cách nào đó. Các rừng mà nó xây dựng, là một tập hợp các Cây quyết định, phần lớn thời gian được huấn luyện bằng phương pháp “đóng gói”. Các ý tưởng chung của phương pháp đóng gói là sự kết hợp của các mô hình học tập sẽ làm tăng kết quả tổng thể.Các khu rừng quyết định ngẫu nhiên sửa lỗi cho các cây quyết định có thói quen khớp quá mức với tập huấn luyện của chúng.Tôi đã sử dụng hai tham số n_estimators=50 (giá trị mặc định =10), số lượng cây trong rừng. và random_state=0, random_state là hạt giống được sử dụng bởi trình tạo số ngẫu nhiên. Trong phần này sẽ chỉnh 3 thông số của RamdomForest là n_estimators, max_features, max_depth image image Sau khi áp dụng random forest với n_estimators = 100, đạt được kết quả như sau: image

SVR:

Mô hình được tạo ra bởi Support Vector Regression chỉ phụ thuộc vào một tập con của dữ liệu huấn luyện, bởi vì hàm chi phí để xây dựng mô hình bỏ qua mọi dữ liệu huấn luyện gần với dự đoán của mô hình. Sử dụng SVR với (kernel=’linear’) image image image

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.