Bài viết được sự cho phép của tác giả Kien Dang Chung
Thực hiện Linear Regression với Scikit-learn
Trong bài trước, bạn đã được giới thiệu lý thuyết về Hồi quy tuyến tính (Linear Regression), bạn cũng đã hiểu thuật toán này hoạt động như thế nào, giờ là lúc chúng ta áp dụng nó vào trong bài toán thực tế: Dự đoán doanh thu phim thông qua ngân sách.
Scikit-learn thư viện cần thiết cho Machine Learning
Scikit-learn có lẽ là thư viện phổ biến nhất trong lĩnh vực machine learning, với thư viện này công việc của chúng ta chỉ là cung cấp dữ liệu và mọi thuật toán machine learning đã được xây dựng sẵn trong bộ thư viện này sẽ mang về cho bạn kết quả như mong muốn.
Để sử dụng thuật toán Linear Regression đã được cài đặt sẵn trong Scikit-learn, chúng ta thực hiện import thư viện này vào chương trình:
from sklearn.linear_model import LinearRegression
Bộ thư viện Scikit-learn rất là đồ sộ, do chúng ta đã tìm hiểu về thuật toán Linear Regression nên chúng ta chỉ import phần liên quan đến thuật toán này mà thôi. Để thực hiện thuật toán Hồi quy tuyến tính trên các dữ liệu X, y đã được bóc tách và mô phỏng trong bài trước, chúng ta thực hiện đoạn code trong Python:
regression = LinearRegression()
regression.fit(X, y)
Biến regression chứa một đối tượng LinearRegression trong bộ thư viện Scikit-learn và tiếp theo là thực hiện phương thức fit() trên đối tượng này. Fit() thực hiện tính toán tối ưu hóa các tham số θ0 và θ1, phương thức này trả về một model. Sau khi thực hiện phương thức này, chúng ta đã có một đối tượng chứa đầy đủ thông tin kết quả, ví dụ chúng ta cần lấy về giá trị của các tham số θ0 và θ1:
# theta_1
regression.coef_
# theta_0
regression.intercept_
Với hai tham số θ0θ0 và θ1θ1 là đủ để chúng ta vẽ ra đường thẳng mô tả mối quan hệ giữa ngân sách và doanh thu trong làm phim ảnh. Thực hiện vẽ đường thẳng này với matplotlib:
plt.figure(figsize=(10,6))
plt.scatter(X, y, alpha=0.3)
# Adding the regression line here:
plt.plot(X, regression.predict(X), color='red', linewidth=3)
plt.title('Film Cost vs Global Revenue')
plt.xlabel('Production Budget $')
plt.ylabel('Worldwide Gross $')
plt.ylim(0, 3000000000)
plt.xlim(0, 450000000)
plt.show()
Đoạn code này tận dụng những gì đã code để vẽ lên biểu đồ các điểm (ngân sách, doanh thu).
Dự đoán và đánh giá kết qủa
Với kết quả các tham số θ1 (độ dốc) và θ0 (điểm cắt trục y), chúng ta có thể dự đoán được doanh thu của một phim với ngân sách cho trước như sau:
Doanh_thu = -7,236,192.7 + 3.1115 x Ngân_sách
Với công thức này, một phim có ngân sách 50 triệu USD sẽ có doanh thu là 148 triệu USD, gần gấp 3. Trong phương pháp này cũng có những điểm bất bình thường, ví dụ khi ngân sách = 0 thì doanh thu phim tính được là -7,236,192.7 USD, một điều không thể khi tôi không bỏ tiền ra thì một ai đó có thể lấy của tôi hơn 7 triệu đô. Ngoài ra cũng có những trường hợp rất đặc biệt như phim Avatar chẳng hạn, với chi phí cỡ 450 triệu đô và thu về gần 3 tỉ đô.
Để đánh giá kết quả khi áp dụng Linear Regression chúng ta có một phương thức là score(), phương thức này trả về một hệ số xác định cho R^2. Trong đó, R^2 được tính bằng công thức 1 – u/v với:
- u = ((y_true – y_pred)^2).sum() là tổng bình phương các độ lệch.
- v = ((y_true – y_true.mean())^2).sum()
Giá trị tốt nhất là 1.0, giá trị này có thể âm.
Lời kết
Như vậy chúng ta đã hoàn thành dự án đầu tiên mở màn cho việc học tập nghiên cứu về Trí tuệ nhân tạo nói chung hay Machine learning nói riêng. Với dự án dự đoán doanh thu phim từ tổng chi phí sản xuất, chúng ta đã được làm quen với các quy trình cần thiết khi thực hiện một bài toán bằng các công cụ khoa học dữ liệu. Chúng ta cũng đã làm quen với thuật toán đầu tiên Linear Regression (Hồi quy tuyến tính), qua đó cũng nắm bắt được cách dùng một số thư viện như Matplotlib hay scikit-learn trong Python. Trong bài tiếp theo, chúng ta sẽ thực hiện tổng quát hóa thuật toán Linear Regression với nhiều tham số đầu vào hơn và chính thức kết thúc dự án 1 để chuyển sang những dự án rất thú vị đang chờ phía trước.
Trong quá trình học tập, có bất kỳ câu hỏi, thắc mắc hoặc đơn giản là trao đổi những suy nghĩ của mình, bạn đừng ngại hãy để lại comment trên từng bài viết, tôi và các bạn đang học khác sẽ giúp bạn.
Bài viết gốc được đăng tải tại allaravel.com
Có thể bạn quan tâm:
- Quy trình 3 bước trong Machine Learning và hàm chi phí
- Thử sức học Machine Learning trong vòng 1 tuần
- Giải thích Machine Learning cho con nít 5 tuổi
Xem thêm Việc làm IT hấp dẫn trên TopDev
- B BenQ RD Series – Dòng Màn Hình Lập Trình 4k+ Đầu Tiên Trên Thế Giới
- i iOS 18 có gì mới? Có nên cập nhật iOS 18 cho iPhone của bạn?
- G Gamma AI là gì? Cách tạo slide chuyên nghiệp chỉ trong vài phút
- P Power BI là gì? Vì sao doanh nghiệp nên sử dụng PBI?
- K KICC HCMC x TOPDEV – Bước đệm nâng tầm sự nghiệp cho nhân tài IT Việt Nam
- T Trello là gì? Cách sử dụng Trello để quản lý công việc
- T TOP 10 SỰ KIỆN CÔNG NGHỆ THƯỜNG NIÊN KHÔNG NÊN BỎ LỠ
- T Tìm hiểu Laptop AI – So sánh Laptop AI với Laptop thường
- M MySQL vs MS SQL Server: Phân biệt hai RDBMS phổ biến nhất
- S SearchGPT là gì? Công cụ tìm kiếm mới có thể đánh bại Google?