Trực quan tương tác (TQTT, Interactive Visualization) có vai trò quan trọng trong Business Intelligence Dashboard (BID), một công cụ quản lý hữu hiệu cho doanh nghiệp. TQTT gần đây trở nên khá phổ biến trong lĩnh vực khoa học dữ liệu (KHDL). Không chỉ cho việc trình bày giải pháp kết quả, nó còn là phương tiện hữu dụng trong suốt quá trình KHDL, đặc biệt là khám phá dữ liệu, đánh giá và lựa chọn mô hình.
Khoa Công nghệ Thông tin Kinh doanh (BIT), Đại học Kinh tế TP.HCM (UEH) là một trong những cơ sở đầu tiên ở Việt Nam đào tạo ngành Khoa Học Dữ Liệu ứng dụng trong kinh tế và kinh doanh.
Trong kỷ nguyên 4.0, các hệ thống BID hiện đại đều hướng đến “trợ giúp” nhà quản lý. Việc tích hợp các công cụ KHDL sử dụng công nghệ mới, bao gồm nền tảng và phương pháp giải quyết vấn đề: HPC/Cloud-Computing; Trí tuệ nhân tạo (AI) và máy học (ML), là xu thế tất yếu cho phép tìm kiếm giải pháp tối ưu trong điều kiện tính toán phức tạp với dữ liệu lớn (Big Data)**.
R và Python hiện được xem là các môi trường công nghệ lý tưởng cho BID. Có thể thấy cả Power BI (Microsoft) lẫn Tableau đều đã tích hợp R và Python. Là mã nguồn mở, R và Python luôn được cập nhật các phương pháp mới nhất một cách nhanh nhất, hơn hẳn so với các phần mềm trả phí bản quyền có cùng chức năng như Matlab. Chúng đồng thời cũng sở hữu nhiều thư viện trực quan tương tác, giúp tạo ra giao diện sinh động, phong phú cho các hệ thống BID. Một trong những thư viện này là plotly. Plotly khá đơn giản, dễ dùng và tích hợp được nhiều thư viện, frameworks khác. Nó hỗ trợ cả Python và R. Trên R, plotly tích hợp dễ dàng với ggplot2 cho các biểu đồ đa dạng và đẹp mắt.
Lấy ví dụ đoạn code biểu đồ trong Python sau đây:

Tích hợp plotly vào đoạn code trên, cho kết quả biểu đồ tương tác như sau:

Ngoài ra, cũng có thể sử dụng plotly trực tiếp để tạo biểu đồ. Sau đây là ví dụ.

TRỰC QUAN TƯƠNG TÁC VỚI PLOTLY
Thông thường, việc phát triển ứng dụng web BID đòi hỏi cân nhắc lựa chọn platform, ngôn ngữ lập trình, framework và web server. Với mỗi ngôn ngữ lập trình, có nhiều frameworks tương ứng giúp phát triển ứng dụng một cách hiệu quả. Có thể kể ra: Zend, Laravel… cho PHP; ASP.NET, ASP.NET MVC, ASP.NET Core, Core MVC cho C# & VB.Net; Django, FLask… cho Python; R-Shiny cho R…
Cũng xin lưu ý là có thể thực thi các chương trình viết trong R, Python từ các ngôn ngữ lập trình Web phổ biến như C#, Java hoặc PHP. Sau đây là ví dụ lập trình Python trong C# sử dụng IronPython.

Một cách tương tự, dưới đây là đoạn code sử dụng Python trong Java.

Kết hợp đa ngôn ngữ là lựa chọn khi phát triển hệ thống và/hoặc khai thác nền tảng có sẵn. Bạn đọc có thể xem một số ví dụ trực quan tương tác: C# kết hợp R, và C# kết hợp Python.
Với một hệ thống BID mới, sử dụng Python làm môi trường tính toán thì nên lựa chọn Python để phát triển toàn bộ hệ thống. Việc cài đặt Python rất đơn giản và nhanh chóng. Lập trình Web với Python cũng dễ dàng như với PHP. Sử dụng Flask giúp quản lý hệ thống khá mạch lạc, cải thiện tốc độ, thích hợp với Web API/RESTful service. Đoạn code sau đây được cài trên web app với Flask, kết quả như đính kèm.
from datetime import datetime as dt
import matplotlib.pyplot as plt
import pandas as pd, plotly.tools as pp
df = pd.read_csv('https://cdn.tinyray.com/dataset/stock/demo-apple.csv')
X,Y = [dt.strptime(str(x),'%Y%m%d').date() for x in df['date'].values], df['open'].values
fig,ax = plt.subplots(); plt.title("Apple's stock price open")
ax.plot(X,Y); fig.set_size_inches(10,5);
pp.mpl_to_plotly(fig,resize=True).show()
Trên đây là một số chia sẻ về trực quan tương tác, minh họa trong Python và R, và cài đặt cho phát triển các hệ thống BID sử dụng đơn hoặc đa ngôn ngữ lập trình. Cảm ơn bạn đọc đã theo dõi.
Happy Coding!!!
Thanh Le, Ph.D
**Big Data đặc trưng bởi 3V là khác với “large data”. Vì “large data” (dữ liệu kích thước lớn) chỉ có 1V (volume).