Cần những gì để bắt đầu lập trình Machine Learning bằng Python?
Image by mohamed Hassan from Pixabay |
Trong bài viết này, mình muốn liệt kê ra những lựa chọn và những công cụ cần thiết mà một người mới bắt đầu Machine Learning sẽ cần. Và dưới đây chính là danh sách đó.
Python
Đây là điều hiển nhiên khi Python gần đây luôn được nhắc tới khi nói đến Machine Learning và Deep Learning. Sự phổ biến này đến từ tính dễ sử dụng của ngôn ngữ này. Khác với những ngôn ngữ lập trình khác như C++, Java và C# người sử dụng phải có một số kiến thức về lập trình như hướng đối tượng (OOP). Python tuy cũng theo hướng đối tượng nhưng chúng đã được giấu khỏi người sử dụng và thay thế bằng những cú pháp lập trình rất dễ hiểu và gần với ngôn ngữ con người. Cũng chính vì thế mà chúng rất được ưa chuộng bởi những người làm Machine Learning khi họ cần phải thử nghiệm nhiều thuật toán khác nhau một cách nhanh chóngMột môi trường lập trình ảo
Một môi trường lập trình ảo (virtual environment) là một không gian làm việc cách ly trong máy của bạn. Như các bạn đã biết, Python là một ngôn ngữ lập trình có rất nhiều thư viện hỗ trợ cho nhiều mục đích khác nhau. Nhưng đôi khi, những thư viện này cũng có thể làm ảnh hưởng nhau, gây ra những lỗi khó hiểu mà bạn không phải là thủ phạm. Vậy nên có một môi trường ảo giúp tách riêng các nhóm thư viện sẽ giúp bạn "dễ thở" hơn khi làm việc. Ví dụ như bạn sẽ có một môi trường ảo chỉ chứa các thư viện giúp bạn lập trình web và một môi trường ảo khác chứa các thư viện của Machine Learning. Như vậy, sẽ không có việc chẳng may thư viện bên web vô tình phá hỏng thư viện bên Machine Learning của bạn.Hiện nay có 3 công cụ giúp tạo các môi trường lập trình ảo mà mình thấy được nhắc đến nhiều đó là Anaconda, Miniconda và virtualenv.
Anaconda
Nếu bạn là một người mới thì mình khuyên các bạn nên cài đặt Anaconda. Đây là một phần mềm miễn phí đã tổng hợp sẵn tất cả các công cụ hỗ trợ cho việc làm Machine Learing và Data Analyst đồng thời cũng có sẵn python và hỗ trợ việc tạo môi trường ảo mới một cách dễ dàng. Bạn chỉ việc cài đặt rồi "vọc" thôi.Điểm yếu duy nhất của Anaconda là việc khởi động của nó khá lâu và nó sử dụng một hệ thống quản lý thư viện khác là conda thay vì pip (của Python).
Link của Anaconda: https://www.anaconda.com
Miniconda
Bạn đoán không sai đâu, đây là một phiên bản nhỏ hơn của Anaconda. Nếu bạn đã biết mình cần những gì và không muốn bị nặng máy bởi những công cụ đồ sộ mà Anaconda cung cấp thì bạn có thể xài Miniconda.Virtualenv
virtualenv là một thư viện của Python giúp tạo môi trường lập trình ảo. Nếu xài virtualenv thì bạn có nhiều quyền kiểm soát hơn trong việc cài đặt thư viện và nhanh hơn do tất cả đều được làm dưới dạng dòng lệnh (command line). virtualenv sẽ là sự lựa chọn phù hợp với những bạn thích gõ phím hơn là xài chuột và đã quen với python cũng như pip.Cá nhân mình lúc đầu xài Anaconda nhưng sau đó chuyển qua virtualenv để tận dụng sự tiện lợi của Terminal trên Linux. Mình xài virtualenv chung với virtualenvwrapper để dễ tạo và kích hoạt các môi trường lập trình ảo hơn.
Các thư viện
Trong Machine Learning, có các thư viện mà bạn phải quen thuộc với chúng bao gồm:- numpy
- pandas
- matplotlib.pyplot
- scikit-learn
Ngoài ra, tùy theo hướng đi của bạn mà sau này bạn sẽ phải làm quen với các thi viện khác như:
- OpenCV cho xử lý ảnh và thị giác máy tính.
- keras/tensorflow hoặc pytorch cho Deep Learning.
Kaggle
Mình luôn nghĩ một cộng đồng là yếu tố quan trọng để giúp bạn học được nhiều thứ hơn. Kaggle chính là cộng đồng đó, nơi tập hợp nhiều Data Scientist trên thế giới lại với nhau. Ngoài ra, trên Kaggle và hàng nghìn bộ dataset khác nhau và các cuộc thi về Data Science cũng được tổ chức trên này thường xuyên. Kaggle là một nơi mà mình rất muốn bạn ghé qua nếu bạn có hứng thú với Data Science.Link của Kaggle: https://www.kaggle.com/
Nhận xét
Đăng nhận xét