6. Bố cục của luận văn
2.3.2. Ngơn ngữ lập trình và thư viện cho ML
Trong số các sản phẩm được trình bày ở trên, Weka cĩ vẻ là một hướng tốt nhất đối với các nhà khoa học dữ liệu. Các nhà khoa học trong lĩnh vực Máy học và phân tích dữ liệu phải sử dụng các cơng cụ chuyên biệt hơn để phục vụ cơng việc của họ.
Trong phần này tơi sẽ trình bày những ngơn ngữ lập trình và các thư viện dùng cho máy học. Khơng phải tất cả đều thích hợp để sử dụng trong các hệ thống thực tế, nhưng chúng là cơ sở lý tưởng để chúng ta học tập, tìm hiểu và tạo nguyên mẫu (prototyping).
Python: Scikit Learn
Python là một ngơn ngữ lập trình thơng dịch (interpreted), hướng đối tượng (object-oriented), và là một ngơn ngữ bậc cao (high-level) ngữ nghĩa động (dynamic semantics). Python hỗ trợ các module và gĩi (packages), khuyến khích chương trình module hĩa và tái sử dụng mã nguồn. Trình thơng dịch Python và thư viện chuẩn mở rộng cĩ sẵn dưới dạng mã nguồn hoặc dạng nhị phân cho tất cả các nền tảng chính và cĩ thể được phân phối tự do. Sau đây là các đặc điểm của Python:
Cú pháp đơn giản, dễ đọc.
Vừa hướng thủ tục (procedural-oriented), vừa hướng đối tượng (object- oriented)
Hỗ trợ module và hỗ trợ gĩi (package)
Xử lý lỗi bằng ngoại lệ (Exception)
Kiểu dữ liệu động ở mức cao.
Cĩ các bộ thư viện chuẩn và các module ngồi, đáp ứng tất cả các nhu cầu lập trình.
Cĩ khả năng tương tác với các module khác viết trên C/C++ (Hoặc Java cho Jython, hoặc .Net cho IronPython).
Cĩ thể nhúng vào ứng dụng như một giao tiếp kịch bản (scripting interface). Machine Learning trong Python được xây dựng dựa trên NumPy và Scipy. Thư viện này rất phù hợp với các lập trình viên Python hoặc Ruby. Nĩ rất dễ sử dụng, mạnh mẽ và đi kèm với tài liệu hướng dẫn tuyệt vời.
Gĩi tính tốn khoa học như NumPy, scipy và panda của cấu trúc dữ liệu thực sự cĩ hiệu quả bằng cách tận dụng sức mạnh của API Python viết bằng C C++ /. NumPy là viết tắt của Numeric Python, là một gĩi thư viện hỗ trợ cho các tính tốn khoa học bằng ngơn ngữ lập trình Python.
Tương tự như vậy, các thư viện như Scikit đã được thiết kế để xây dựng hỗ trợ nhiều thuật tốn máy học.
Nhìn chung, hầu hết các gĩi phần mềm cung cấp các cơng cụ thơ cho các nhà khoa học dữ liệu cĩ thể thực hiện các chương trình nghiên cứu, thí nghiệm của riêng mình. Luận văn này sẽ nghiên cứu làm thế nào để xây dựng MLBlocks như là một những cơng cụ để cung cấp một mức độ trừu tượng cao hơn cho các nhà khoa học dữ liệu.
R và Matlab:
R là một ngơn ngữ lập trình mã nguồn mở
Hỗ trợ các machine learning, thống kê máy tính
Cĩ nhiều thư viện hỗ trợ trong ngành thống kê tin học
R rất phổ biến, nhưng nĩ khơng phải là lựa chọn duy nhất: Python cũng ngày càng phổ biến
R được biết đến là một ngơn ngữ lập trình mạnh mẽ và chuyên biệt dành cho những bài tốn thống kê, hỗ trợ một thư viện lớn các số liệu thống kê và các thuật tốn máy học. Nĩ cung cấp hiệu suất tuyệt vời, nhưng cú pháp khá phức tạp của nĩ đơi khi gây khĩ cho các lập trình viên.
Trái ngược với Python, Matlab cũng cung cấp một nền tảng cho chuyên ngành thống kê tin học, và cĩ thể cung cấp hiệu suất rất tốt. Hai ngơn ngữ này đã truyền cảm hứng cho sự phát triển của chính Python.