Tìm hiểu về phân tích dự báo. Ứng dụng Machine Learning xây dựng mô hình dự báo trong Big Data

Phân tích dự báo là gì?

Phân tích dự báo (predictive analytics) đang là một hướng quan trọng trong lĩnh vực khai phá dữ liệu, nhất là khai phá dữ liệu lớn. Đây là nghiệp vụ trích chọn thông tin từ dữ liệu để phát hiện các mẫu hành vi, thói quen của đối tượng chủ thể, từ đó đưa ra dự báo về các hành vi và xu hướng trong tương lai của đối tượng đó.

Các công cụ phân tích dự báo có thể giúp các công ty đánh giá trước được khả năng bán hàng, chẳng hạn dự báo một khách hàng nào đó sẽ mua hay không sản phẩm của mình, nếu mua thì khi nào và mua bao nhiêu. Dựa trên những thông tin này, các công ty có thể điều chỉnh chiến dịch tiếp thị và bán hàng của mình cho phù hợp.

Ví dụ điển hình là Amazon. Cỗ máy khuyến nghị mua hàng mà Amazon sử dụng đã giúp tăng 30% doanh số bán hàng của công ty. Những điển hình thành công như vậy làm cho các nhà đầu tư rất phấn khích khi đầu tư vào các công ty khởi nghiệp cung cấp dịch vụ phân tích dự báo, chẳng hạn công ty khởi nghiệp Lattice Engines.

Khi triển khai khả năng phân tích dự báo, tiếp thị và bán hàng là lĩnh vực được các tổ chức ứng dụng đầu tiên. Lí do là các công cụ liên quan ngày càng dễ dùng hơn đối với những người làm việc trực tiếp trong lĩnh vực kinh doanh, vốn không phải là các chuyên gia phân tích. Một yếu tố quan trọng trợ giúp cho việc phân tích dự báo chính là nguồn dữ liệu khổng lồ hiện có. Việc giải thích dữ liệu lớn ngày càng trở nên quan trọng.

Trong bài viết này chúng ta tìm hiểu về chủ đề Bài toán dự đoán (Prediction) – một trường những mảng tương đối hay ho mà Machine Learning có thể làm được.

Mô hình hóa dự báo

Mô hình dự đoán (Prediction Modeling) là một kỹ thuật thống kê thường được sử dụng để dự đoán hành vi trong tương lai. Các giải pháp mô hình dự đoán là một dạng công nghệ khai thác dữ liệu hoạt động (data mining) bằng cách phân tích dữ liệu lịch sử và hiện tại, đồng thời tạo ra một mô hình để giúp dự đoán kết quả trong tương lai.

Supervised Learning vs Unsupervised Learning

Học máy hiểu đơn giản là tập hợp các phương pháp, các giải thuật khiến cho máy tính có thể tự “học”, tự “suy nghĩ” và đưa ra các quyết định giống như con người. Chính vì lý do đó người ta xếp Machine Learning (ML) thuộc vào phạm vi của lĩnh vực Trí tuệ nhân tạo. Người ta thường phân chia các thuật toán trong ML thành 2 dạng đó là (supervised learning) và (unsupervised learning). Mình sẽ trình bày sơ qua khái niệm này trong các phần tiếp theo để chúng ta có thể hiểu được một cách cơ bản nhất trước khi bước vào chủ để chính của bài viết này đó là thảo luận về Bài toán dự đoán trong ML. OK chúng ta tiếp tục thôi nào…

Học có hướng dẫn (Supervised Learning – SL)

Nhiều người đã dịch SL là học có giám sát, tuy nhiên mình thấy cách dịch này đôi khi làm khó hiểu cho những người mới tìm hiểu về ML. Thay vì đó, mình xin tạm dịch SL là học có hướng dẫn. Điều này nghĩa là sao? Có nghĩa là trong SL, chúng ta cần phải cung cấp cho máy tính một tập dữ liệu mấu (ví dụ như một tập hợp các câu hỏi và các câu trả lời đúng chẳng hạn). Sau đó chúng ta kì vòng rằng máy tính có thể thông qua các thuật toán, các mô hình được cài đặt để tìm ra các câu trả lời cho các câu hỏi chưa có đáp án trong tương lai.

Đó chính là tư tưởng của bài toán dự đoán (prediction) mà chúng ta sắp thảo luận dưới đây. Để làm được việc này người ta thường tạo ra một tập dữ liệu chuẩn để làm tập dữ liệu huấn luyện (training dataset). Trên tập này chúng ta sẽ “hướng dẫn” cho máy tính “học” thông qua các mô hình mà chúng ta quy định. Các tham số sinh ra được từ tập dữ liệu huẩn luyện sẽ được sử dụng để thẩm định lại tính thích hợp của mô hình trên tập dữ liệu kiểm tra (testing dataset). Có hai lớp bài toán điển hình trong SL đó là hồi quy (regression) và phân lớp (Classification)

Học không cần hướng dẫn (Unsupervised Learning – USL)

Nếu như học có hướng dẫn chúng ta cần phải cung cấp cho máy tính một tập dữ liệu mẫu với các câu trả lời đúng cho từng câu hỏi (hướng dẫn) thì có những thuật toán trong USL không cần làm điều đó. Các thuật toán USL có khả năng khai thác cấu trúc ẩn của dữ liệu từ một tập dữ liệu chưa được gán nhãn trước (chưa có câu trả lời mẫu). Các hướng tiếp cận điển hình trong USL có thể kể đến như Phân cụmPhát hiện bất thườngMạng Nơ ron nhân tạo.

Học không giám sát là một lớp mô hình học sử dụng một thuật toán để mô tả hoặc trích xuất ra các mối quan hệ tiềm ẩn trong dữ liệu. Khác với học có giám sát, học không giám sát chỉ thực thi trên dữ liệu đầu vào không cần các thuộc tính nhãn, hoặc mục tiêu của việc học. Tức là không hề được cung cấp trước một kiến thức nào trước trừ dữ liệu. Các dữ liệu không được “hướng dẫn” trước như trong trường hợp học có giám sát. Các thuật toán cần học được từ dữ liệu mà không hề có bất cứ sự hướng dẫn nào.

Hình dưới đây cho thấy sự khác biệt giữa học có giám sát và học không giám sát. Đối với học có giám sát chúng ta biết trước tên của các nhãn là “mèo” hoặc “không phải mèo” ttrong khi trong học không giám sát, tên của các nhãn không có trong bộ dữ liệu, chúng ta chỉ tìm được quan hệ rằng, có một số ảnh giống nhau ở phía trên (Similar Group 1) và một số ảnh giống nhau ở phía dưới (Simliar Group 2). Chúng ta không biết hai tập này là gì, và chỉ biết rằng chúng “giống nhau”. Sau khi tìm được sự giống nhau này rồi, chúng ta vẫn có thể gán nhãn cho dữ liệu tương tự như bài toán phân lớp. Tuy nhiên, trong nhiều trường hợp, điều này đòi hỏi khá nhiều kiến thức của chuyên gia.

Có rất nhiều bài toán trong mô hình học không giám sát, nổi bật nhất là hai bài toán: phân cụm và xấp xỉ phân phối xác suất. Bài toán phân cụm (classification) (clustering) có nhiệm vụ tìm kiếm các nhóm có tương quan trong dữ liệu (như ví dụ trên Hình trên), tức là có các đặc tính gần tương tự như nhau. Bài toán xấp xỉ phân phối tìm cách tổng hợp dạng phân phối của dữ liệu.

OK vậy là chúng ta đã có một chút khái niệm cơ bản về học máy rồi phải không nào. Bây giờ chúng ta sẽ cùng nhau đi sâu tìm hiểu một lớp bài toán quan trọng trong ML đó chính là bài toán dự đoán dựa trên phương pháp hồi quy – một phương pháp nổi tiếng đã được nhắc đến trong phần Học có hướng dẫn ở trên.

Phân tích hồi quy

Bản chất của phân tích hồi quy chính là việc ước lượng mối quan hệ giữa các tham số (variables) trong mô hình mà chúng ta đang xét. Quay về trên quan điểm của xác suất thống kê, mình vẫn nhớ quan điểm của một người thầy rằng “Không có một sự kiện nào trên đời là ngẫu nhiên, những thứ đang cho là ngẫu nhiên chỉ là những sự kiện ta chưa tìm ra được mô hình để biểu diễn quy luật của chúng”. Hãy tạm coi như phát biểu của ông thầy kia là đúng và tưởng tượng chúng ta đang là những người đánh xổ số. Giả sử rằng chúng ta có thể tìm ra được mối liên hệ giữa kết quả xổ số của một ngày với một vài tham số dễ thương như sau:

  • Biến X1 biểu diễn số trẻ em sinh ra trong ngày hôm nay
  • Biến X2 biểu diễn số người chết đi trong ngày hôm nay
  • Biến X3 biểu diễn lượng mưa trong ngày hôm nay
  • Biến X4 biểu diễn số thằng bị thất tình trong ngày hôm nay

Và giả sử rằng kết quả xổ số của ngày hôm nay phụ thuộc một cách nào đó vào số người mới sinh, số người chết, lượng mưa và số thằng thất tình… Tức là chúng ta có thể viết dưới dạng toán học như sau:

Kết quả xổ số = f(X1, X2, X3, X4, …)

Hàm f của chúng ta là gì??? Đó là công việc của hàm hồi quy, việc của chúng ta đó là hãy sưu tập cho máy tính một tập dữ liệu gốc thật chuẩn (training dataset). Sau khi tìm ra được các tham số phụ thuộc ví dụ như:

Kết quả xổ số = 0.6X1 + 3X2 – 9X3 + 0.25X4 +…)

chúng ta sẽ sử dụng để so sánh nó trên tập dữ liệu kiểm tra (testing dataset). Thay đổi các phương pháp hồi quy cho đến khi sai số trên tập dữ liệu kiểm tra là nhỏ nhất. Như vậy chúng ta đã có một mô hình hồi quy sử dụng để tính toán kết quả xổ sổ rồi. Việc còn lại là tìm các giá trị cho X1X2X3…. áp vào mô hình rồi lấy kết quả đi đánh xổ số và tự tin với xác suất thắng lợi giống y như xác suất cao nhất bạn đạt trên tập dữ liệu kiểm tra. Qúa thú vị phải không nào. Hi vọng qua ví dụ hơi hoang tưởng trên bạn có thể hình dung ra được việc sử dụng phương pháp hồi quy trong bài toán dự đoán là như thế nào. Tất nhiên, trên thực tế người ta đã sử dụng mô hình hồi quy để ứng dụng vào các bài toán như:

  • Dự đoán giá cả của sản phẩm
  • Dự đoán biến động chứng khoán
  • Dự đoán thời tiết

Kết luận

Qua bài viết này mình muốn chia sẻ với các bạn những hiểu biết rất cơ bản về phương pháp hồi quy – một phương pháp đơn giản mà hiệu quả trong học máy được sử dụng cho bài toán dự đoán. Mình dự định sẽ viết sâu thêm về các thuật toán trong phương pháp hồi quy nói riêng và rộng hơn là các trong bài toán dự đoán nói chung. Rất mong được sự ủng hộ và theo dõi từ các bạn.

Tham khảo:

https://viblo.asia/p/bai-toan-du-doan-prediction-dua-tren-mo-hinh-hoi-quy-trong-machine-learning-YmjeoLgzkqa

Leave a Reply

Your email address will not be published. Required fields are marked *