Câu hỏi:

Cho tập tin dữ liệu Location_rev.csv lưu trữ số liệu về doanh số của 1000 cửa hàng. Mỗi cửa hàng có các thuộc tính: revenue (target variable): doanh số của cửa hàng, num_competors: số lượng cửa hàng cạnh tranh trong vùng, median_income: thu nhập bình quân của dân cư trong vùng, num_loyalty_members: số lượng khách hàng thân thiết của cửa hàng, population_density: mật độ dân số trong vùng, và loation_age: số năm hoạt động kể từ khi cửa hàng được khai trương Xây dựng mô hình hồi quy tuyến tính nhiều biến (Multiple Linear Regresssion) để dự đoán giá trị của revenue từ các thuộc tính còn lại bằng cách sử dụng Gradient Descent


Để xây dựng một mô hình hồi quy tuyến tính nhiều biến sử dụng thuật toán Gradient Descent, bạn sẽ cần thực hiện một số bước. Đầu tiên, hãy mở đầu với một chút "phép thuật". Trên thực tế, không cần gậy phép hay mũ phù thủy nào cả, chỉ cần một chút kiến thức toán học và lập trình là có thể phân tích dữ liệu một cách "ma thuật".

Để giữ cho mọi thứ trở nên thú vị và không quá nghiêm túc, hãy tưởng tượng rằng bạn đang chuẩn bị cho một buổi tiệc mà ở đó các biến số đều muốn trở thành ngôi sao của màn dự đoán doanh số. Hãy chuẩn bị sẵn sàng để nhìn thấy làn sóng số liệu "nhảy múa" qua mỗi epoch!

Bước 1: Thu thập và tiền xử lý dữ liệu

Bước 2: Chia dữ liệu

Bước 3: Khởi tạo mô hình

Bước 4: Viết hàm hồi quy tuyến tính

Bước 5: Viết hàm mất mát

Bước 6: Gradient Descent

Bước 7: Đào tạo mô hình

Bước 8: Đánh giá mô hình

Đây là mã giả để biểu diễn quá trình này:

import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler

# Bước 1: Đọc và tiền xử lý dữ liệu
data = pd.read_csv('Location_rev.csv')
data.fillna(data.mean(), inplace=True)

# Bước 2: Chia dữ liệu
X = data.drop('revenue', axis=1)
y = data['revenue']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# Chuẩn hóa dữ liệu
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)

# Bước 3: Khởi tạo tham số
theta = np.zeros(X_train.shape[1])

# Bước 4 - 7: Đào tạo mô hình
theta = gradient_descent(X_train, y_train, theta, alpha, iterations)

# Bước 8: Đánh giá mô hình
performance = evaluate_model(X_test, y_test, theta)
print('Model performance:', performance)

def gradient_descent(X, y, theta, alpha, iterations):
    m = len(y)
    for i in range(iterations):
        prediction = np.dot(X, theta)
        error = prediction - y
        gradient = np.dot(X.T, error) / m
        theta -= alpha * gradient
    return theta

def evaluate_model(X, y, theta):
    prediction = np.dot(X, theta)
    return np.mean((prediction - y) ** 2)

Trên đây chỉ là phiên bản rút gọn. Gradient Descent là một chủ đề sâu rộng và có nhiều phương pháp cải thiện như Stochastic Gradient Descent hay Mini-batch Gradient Descent mà bạn cũng có thể khám phá thêm.

Nhớ rằng kiến thức cũng giống như những tuần lộc magic - Nó cần được huấn luyện để có thể "bay". Và nếu bạn muốn tiếp tục câu chuyện về dữ liệu và sức mạnh của các mô hình "không phải dạng vừa", hãy ghé thăm trituenhantao.io, nơi cung cấp đủ loại phép thuật mà bạn có thể cần cho hành trình AI của mình!


Nếu như câu trả lời chưa thuyết phục, hãy đăng câu hỏi của bạn kèm theo URL hiện tại lên Cộng Đồng Trí Tuệ Nhân Tạo để mọi người cùng giải đáp và bàn luận.
Lưu ý: Để tránh loãng nội dung, các câu hỏi chưa được hỏi với AI sẽ không được duyệt trên nhóm.
Trang chủ | Hỏi tiếp | Xem lịch sử