Những tool tự học Data Scientist là gì?

  1. Công nghệ thông tin

Nhờ mọi người bỏ chút thời gian chia sẻ cho đàn em như em đang theo đuổi trở thành 1 Data Scientist nhưng tự học ah. Em cám ơn mọi người nhiều.

Từ khóa: 

công nghệ thông tin

Chào bạn, về tự học Data Scientist thì không thiếu phần mềm tự học, quan trọng bạn cần xác định mình cần gì trước để chọn đúng thứ thôi.

R

Được tung ra vào năm 1995 với tư cách là truyền nhân của ngôn ngữ lập trình S. R đã có những bước phát triển và cải thiện mình. Hiện project đang được hỗ trợ bởi R Foundation for Statistical Computing.

License: Hoàn toàn miễn phí!!

Điểm mạnh:

Chất lượng tuyệt hảo, domain chi tiết và open source packages. R gần như có mọi package cho từng thể loại app khác nhau. Có thể kể đến là neural networks, non-linear regression, phylogenetics, advanced plotting, v.v…

Phần mềm cài đặt đã có tích hợp sẵn các function và phương pháp thông kê nâng cao. R cũng không gặp phải vấn đề gì với ma trận đại số.

Data visualization cực kì mạnh mẽ với các libraries như ggplot2.

Điểm yếu:

Hiệu năng. R không phải là một ngôn ngữ nhanh nhẹn.

Chỉ thích hợp cho một số mục đích nhất định. R cực kì tuyệt vời về thông số và data science nhưng thua những đứa em khác khi bạn chỉ muốn lập trình chung chung thôi.

R có một số tính năng hơi quái khi đi ngược với các ngôn ngữ lập trình khác như: index bắt đầu từ 1, sử dụng nhiều assignment operators, cấu trúc dữ liệu lạ lẫm.

Kết luận – Tuyệt vời cho mục đích của nó

R là một ngôn ngữ vô cùng mãnh mẽ khi nói về thông số và data visualization, và cũng như việc là open source cho phép cộng đồng đóng góp cải thiện R. Gần đây, nó càng ngày nổi tiếng vì quá xuất sắc tại lĩnh vực của mình.


Python

Guido van Rossum giới thiệu Python vào năm 1991. Kể từ đó, nó chở nên rất nổi tiếng bởi sự đa năng của mình và được dùng rộng rãi trong cộng đồng data science. Hai phiên bản chính hiện nay là 3.6 và 2.7.

License: Hoàn toàn miễn phí!!

Điểm mạnh

Python rất nổi tiếng, được xem là ngôn ngữ lập trình mainstream, thích hợp cho nhiều mục đích khác nhau. Nó có modules được tạo ra nhằm mở rộng tính năng của mình cũng như sự trợ giúp đến từ cộng đồng. Có nhiều dịch vụ online còn cung cấp cả một Python API.

Python rất dễ học bởi nó đơn giản. Do đó mà thường được các lập trình viên chọn ngôn ngữ đầu tiên để học.

Với những package như pandas, scikit-learn và Tensorflow khiến cho Python trở thành một lựa chọn khá tốt cho những app có áp dụng machine learning ở level cao.

Điểm yếu

Python là ngôn ngữ thuộc dạng dynamical, nên bạn sẽ phải rất quan tâm đến nó. Bởi các Type errors sẽ xuất hiện thường xuyên.

Với một số tình huống phân tích dữ liệu và thống kê, R sẽ vượt trội hơn so với Python. Còn nếu chỉ là đơn giản học chung chung thì lại có những lựa chọn khác tốt hơn Python.

Kết luận – Cân bằng mọi mặt

Python là một lựa chọn khá tuyệt vời cho data science. Đa phần bởi quá trình của data science nằm ở ETL process nên Python cũng rất được chú ý bởi sự thích hợp của nó.


SQL

SQL (‘Structured Query Language’) defines, quản lí và queries databases. Xuất hiện từ 1974, trải qua nhiều thay đổi nhưng giá trị cốt lỗi vẫn được giữ nguyên.

License: Tùy thuộc – một số implementations miễn phí và số khác là tính phí.

Điểm mạnh

Cực kì hiệu quả với querying, update cũng như kiểm soát databases.

Declarative syntax giúp cho SQL trở thành một ngôn ngữ dễ đọc. Chẳng có gì khó hiểu với SELECT name FROM users WHERE age > 18 cả.

SQL được dùng bởi rất nhiều ứng dụng khác nhau nên sẽ có ích khi bạn biết về nó. Các Modules như SQLAlchemy giúp việc việc integrate SQL với các ngôn ngữ khác trở nên dễ dàng và nahnh chóng.

Điểm yếu

Khả năng phân tích của SQL khá hạn chế – ngoài tổng hợp, cộng, đếm và tính số trung bình cho data thì bạn không có nhiều lựa chọn lắm.

Programmer đôi khi sẽ thấy rằng SQL’s declarative syntax khá khó học

Có rất nhiều implementations cho SQL như PostgreSQL, SQLite, MariaDB. Điều quan trọng là chúng quá khác nhau đến mức việc bạn phải học từng cái đã rất đau đầu.

Kết luận – Hiệu quả và bền bỉ

SQL là ngôn ngữ thích hợp với việc xử lí data hơn là dùng để phân tích nó. Tuy vậy vẫn có nhiều quá trình data science dựa vào ETL, cũng như sự bền bỉ và hiệu quả của SQL đã chứng minh rõ sự mạnh mẽ của mình.


Java

Java là một ngôn ngữ lâp trình cực kì nổi tiếng, chạy trên (JVM) Java Virtual Machine. Nó cho phép tính di động giữa các platform và hiện đang được phát triển bởi Oracle.

License: Version 8 — hoàn toàn miễn phí

Điểm mạnh

Ở khắp mọi nơi. Rất nhiều hệ thống và app ngày nay được tạo ra trên Java back-end. Tính năng tích hợp data science vào thẳng codebase quả thật cực kì mạnh mẽ.

Java bảo đảm bạn không phải lo về lỗi type. Đối với những big data applications, đây như là một thiên đường vậy.

Java là một ngôn ngữ compile với hiệu suất rất cao. Nhờ đó mà nó thích hợp cho việc tạo ra những ETL production code hiệu quả cũng như các thuật toán machine learning phức tạp.

Điểm yếu

Với những app tập trung về phân tích thông số thì Java sẽ không phải là lựa chọn đầu tiên bởi sự vượt trội của R và Python.

Không như R, Java không có nhiều libraries cho các phương thức thông kê nâng cao.

Kết luận – Một ứng viên đầy tiềm năng cho Data Science

Có rất nhiều nguyên nhân để chọn Java làm ngôn ngữ data science. Rất nhiều công ty sẽ quí trọng khả năng tích hợp data science production code trực tiếp vào codebase, cũng như là hiệu năng cao và ít lỗi type của Java. Tuy vậy nếu như bạn chỉ tập trung thuần túy vào việc phân tích và thống kê thì ngoài Java ra vẫn có R và Python.


Scala

Phát triển bởi Martin Odersky và được tung ra vào 2004, Scala là một ngôn ngữ chạy trên JVM. Nó là một mô hinh đa ngôn ngữ, cho phép sử dụng cả 2 phương thức object-oriented và functional. Framework Apache Spark cũng được được bằng Scala.

License: Miễn phí!

Điểm mạnh

Scala + Spark = cluster computing với năng suất cực cao. Scala là một lựa chọn lí tưởng khi làm với những data sets với qui mô lớn.

Đa mô hình: Scala programmers được hưởng tất cả những thứ tốt nhất. Cả hai mô hình object-oriented và functional đều có thể dùng được.

Scala được compiled vào Java bytecode và chạy trên JVM. Nhờ đó cho phép khả năng tương tác Java. Nhờ đó mà Scale là môt ngôn ngữ khá mạnh mẽ, phù hợp cho nhiều mục đích khác nhau.

Điểm yếu

Scala không phải là ngôn ngữ dễ cho bạn chọn đầu tiên để học. Cách tốt nhất là download sbt và set-up một IDE như Eclipse hay IntelliJ với Scala plug-in.

Syntax và type system rất phức tạp nên sẽ khiến nó không hấp dẫn bằng Python.

Kết luận – Hoàn hảo cho big data

Khi nói về cluster computing với Big Data, Scala + Spark là một sự kết hợp hoàn hảo cho bạn. Nếu đã từng dùng qua Java hoặc các ngôn ngữ thuộc statically typed, bạn sẽ thấy rằng các tính năng của Scala rất mạnh mẽ. Tuy nhiên nếu không nhắm tới qui mô như vậy thì R và Python sẽ là những lựa chọn phù hợp hơn.


Julia

Với tuổi đời chỉ mới 5 năm, Julia đã gây được ấn tượng mạnh với cộng đồng lập trình. Nó được biết tới nhanh chóng nhờ vào việc nhiều ông lớn đã chấp nhận sử dụng Julia ngay từ thời điểm nó mới được tung ra.

License: Miễn phí

Điểm mạnh

Julia là một JIT (‘just-in-time’) compiled language với hiệu năng rất cao. Nó cũng có dynamic-typing cùng khả năng scripting như một interpreted language (Python chẳng hạn).

Julia được tạo ra nhằm để phân tích số liệu.

Code của Julia rất dễ đọc.

Điểm yếu

Do tuổi đời còn trẻ nên Julia vẫn chưa được ổn định khi dùng các packages khác nhau.

Mặt khác, số lượng của package vẫn còn rất hạn chế và không được phong phú đa dạng như các ngôn ngữ khác ở trên.

Kết luận – Dành cho tương lai

Vấn đề mà Julia gặp phải là sự non trẻ của mình. Do đó hiện tại Python và R vẫn là những lựa chọn tốt hơn. Tuy vậy, nếu bạn muốn thử sự mới lạ cũng như có đủ kiên nhẫn thì Julia sẽ không làm bạn thất vọng.


MATLAB

MATLAB là một ngôn ngữ chuyên về số liệu được dùng bởi nhiều đại học và công ty khác nhau. Được phát triển bởi MathWorks, một công ty chuyên về phần mềm số hóa.

License: Trả phí

Điểm mạnh

Dành cho việc thống kê và phân tích số liệu. MATLAB rất phù hợp cho những app chuyên về số cùng với áp dụng toán học nâng cao như signal processing, Fourier transforms, matrix algebra và image processing.

Data Visualization.

MATLAB được dùng rộng rãi từ toán học cho tới vật lí, Engineer.

Điểm yếu

Phải trả phí.

MATLAB không đa năng như các ngôn ngữ khác.

Kết luận – Là lựa chọn đầu tiên cho các app nặng về toán học

MATLAB với khả năng ưu việt của nó về phân tích và thống kê số liệu được xem là lựa chọn hoàn hảo cho data science.


Trả lời

Chào bạn, về tự học Data Scientist thì không thiếu phần mềm tự học, quan trọng bạn cần xác định mình cần gì trước để chọn đúng thứ thôi.

R

Được tung ra vào năm 1995 với tư cách là truyền nhân của ngôn ngữ lập trình S. R đã có những bước phát triển và cải thiện mình. Hiện project đang được hỗ trợ bởi R Foundation for Statistical Computing.

License: Hoàn toàn miễn phí!!

Điểm mạnh:

Chất lượng tuyệt hảo, domain chi tiết và open source packages. R gần như có mọi package cho từng thể loại app khác nhau. Có thể kể đến là neural networks, non-linear regression, phylogenetics, advanced plotting, v.v…

Phần mềm cài đặt đã có tích hợp sẵn các function và phương pháp thông kê nâng cao. R cũng không gặp phải vấn đề gì với ma trận đại số.

Data visualization cực kì mạnh mẽ với các libraries như ggplot2.

Điểm yếu:

Hiệu năng. R không phải là một ngôn ngữ nhanh nhẹn.

Chỉ thích hợp cho một số mục đích nhất định. R cực kì tuyệt vời về thông số và data science nhưng thua những đứa em khác khi bạn chỉ muốn lập trình chung chung thôi.

R có một số tính năng hơi quái khi đi ngược với các ngôn ngữ lập trình khác như: index bắt đầu từ 1, sử dụng nhiều assignment operators, cấu trúc dữ liệu lạ lẫm.

Kết luận – Tuyệt vời cho mục đích của nó

R là một ngôn ngữ vô cùng mãnh mẽ khi nói về thông số và data visualization, và cũng như việc là open source cho phép cộng đồng đóng góp cải thiện R. Gần đây, nó càng ngày nổi tiếng vì quá xuất sắc tại lĩnh vực của mình.


Python

Guido van Rossum giới thiệu Python vào năm 1991. Kể từ đó, nó chở nên rất nổi tiếng bởi sự đa năng của mình và được dùng rộng rãi trong cộng đồng data science. Hai phiên bản chính hiện nay là 3.6 và 2.7.

License: Hoàn toàn miễn phí!!

Điểm mạnh

Python rất nổi tiếng, được xem là ngôn ngữ lập trình mainstream, thích hợp cho nhiều mục đích khác nhau. Nó có modules được tạo ra nhằm mở rộng tính năng của mình cũng như sự trợ giúp đến từ cộng đồng. Có nhiều dịch vụ online còn cung cấp cả một Python API.

Python rất dễ học bởi nó đơn giản. Do đó mà thường được các lập trình viên chọn ngôn ngữ đầu tiên để học.

Với những package như pandas, scikit-learn và Tensorflow khiến cho Python trở thành một lựa chọn khá tốt cho những app có áp dụng machine learning ở level cao.

Điểm yếu

Python là ngôn ngữ thuộc dạng dynamical, nên bạn sẽ phải rất quan tâm đến nó. Bởi các Type errors sẽ xuất hiện thường xuyên.

Với một số tình huống phân tích dữ liệu và thống kê, R sẽ vượt trội hơn so với Python. Còn nếu chỉ là đơn giản học chung chung thì lại có những lựa chọn khác tốt hơn Python.

Kết luận – Cân bằng mọi mặt

Python là một lựa chọn khá tuyệt vời cho data science. Đa phần bởi quá trình của data science nằm ở ETL process nên Python cũng rất được chú ý bởi sự thích hợp của nó.


SQL

SQL (‘Structured Query Language’) defines, quản lí và queries databases. Xuất hiện từ 1974, trải qua nhiều thay đổi nhưng giá trị cốt lỗi vẫn được giữ nguyên.

License: Tùy thuộc – một số implementations miễn phí và số khác là tính phí.

Điểm mạnh

Cực kì hiệu quả với querying, update cũng như kiểm soát databases.

Declarative syntax giúp cho SQL trở thành một ngôn ngữ dễ đọc. Chẳng có gì khó hiểu với SELECT name FROM users WHERE age > 18 cả.

SQL được dùng bởi rất nhiều ứng dụng khác nhau nên sẽ có ích khi bạn biết về nó. Các Modules như SQLAlchemy giúp việc việc integrate SQL với các ngôn ngữ khác trở nên dễ dàng và nahnh chóng.

Điểm yếu

Khả năng phân tích của SQL khá hạn chế – ngoài tổng hợp, cộng, đếm và tính số trung bình cho data thì bạn không có nhiều lựa chọn lắm.

Programmer đôi khi sẽ thấy rằng SQL’s declarative syntax khá khó học

Có rất nhiều implementations cho SQL như PostgreSQL, SQLite, MariaDB. Điều quan trọng là chúng quá khác nhau đến mức việc bạn phải học từng cái đã rất đau đầu.

Kết luận – Hiệu quả và bền bỉ

SQL là ngôn ngữ thích hợp với việc xử lí data hơn là dùng để phân tích nó. Tuy vậy vẫn có nhiều quá trình data science dựa vào ETL, cũng như sự bền bỉ và hiệu quả của SQL đã chứng minh rõ sự mạnh mẽ của mình.


Java

Java là một ngôn ngữ lâp trình cực kì nổi tiếng, chạy trên (JVM) Java Virtual Machine. Nó cho phép tính di động giữa các platform và hiện đang được phát triển bởi Oracle.

License: Version 8 — hoàn toàn miễn phí

Điểm mạnh

Ở khắp mọi nơi. Rất nhiều hệ thống và app ngày nay được tạo ra trên Java back-end. Tính năng tích hợp data science vào thẳng codebase quả thật cực kì mạnh mẽ.

Java bảo đảm bạn không phải lo về lỗi type. Đối với những big data applications, đây như là một thiên đường vậy.

Java là một ngôn ngữ compile với hiệu suất rất cao. Nhờ đó mà nó thích hợp cho việc tạo ra những ETL production code hiệu quả cũng như các thuật toán machine learning phức tạp.

Điểm yếu

Với những app tập trung về phân tích thông số thì Java sẽ không phải là lựa chọn đầu tiên bởi sự vượt trội của R và Python.

Không như R, Java không có nhiều libraries cho các phương thức thông kê nâng cao.

Kết luận – Một ứng viên đầy tiềm năng cho Data Science

Có rất nhiều nguyên nhân để chọn Java làm ngôn ngữ data science. Rất nhiều công ty sẽ quí trọng khả năng tích hợp data science production code trực tiếp vào codebase, cũng như là hiệu năng cao và ít lỗi type của Java. Tuy vậy nếu như bạn chỉ tập trung thuần túy vào việc phân tích và thống kê thì ngoài Java ra vẫn có R và Python.


Scala

Phát triển bởi Martin Odersky và được tung ra vào 2004, Scala là một ngôn ngữ chạy trên JVM. Nó là một mô hinh đa ngôn ngữ, cho phép sử dụng cả 2 phương thức object-oriented và functional. Framework Apache Spark cũng được được bằng Scala.

License: Miễn phí!

Điểm mạnh

Scala + Spark = cluster computing với năng suất cực cao. Scala là một lựa chọn lí tưởng khi làm với những data sets với qui mô lớn.

Đa mô hình: Scala programmers được hưởng tất cả những thứ tốt nhất. Cả hai mô hình object-oriented và functional đều có thể dùng được.

Scala được compiled vào Java bytecode và chạy trên JVM. Nhờ đó cho phép khả năng tương tác Java. Nhờ đó mà Scale là môt ngôn ngữ khá mạnh mẽ, phù hợp cho nhiều mục đích khác nhau.

Điểm yếu

Scala không phải là ngôn ngữ dễ cho bạn chọn đầu tiên để học. Cách tốt nhất là download sbt và set-up một IDE như Eclipse hay IntelliJ với Scala plug-in.

Syntax và type system rất phức tạp nên sẽ khiến nó không hấp dẫn bằng Python.

Kết luận – Hoàn hảo cho big data

Khi nói về cluster computing với Big Data, Scala + Spark là một sự kết hợp hoàn hảo cho bạn. Nếu đã từng dùng qua Java hoặc các ngôn ngữ thuộc statically typed, bạn sẽ thấy rằng các tính năng của Scala rất mạnh mẽ. Tuy nhiên nếu không nhắm tới qui mô như vậy thì R và Python sẽ là những lựa chọn phù hợp hơn.


Julia

Với tuổi đời chỉ mới 5 năm, Julia đã gây được ấn tượng mạnh với cộng đồng lập trình. Nó được biết tới nhanh chóng nhờ vào việc nhiều ông lớn đã chấp nhận sử dụng Julia ngay từ thời điểm nó mới được tung ra.

License: Miễn phí

Điểm mạnh

Julia là một JIT (‘just-in-time’) compiled language với hiệu năng rất cao. Nó cũng có dynamic-typing cùng khả năng scripting như một interpreted language (Python chẳng hạn).

Julia được tạo ra nhằm để phân tích số liệu.

Code của Julia rất dễ đọc.

Điểm yếu

Do tuổi đời còn trẻ nên Julia vẫn chưa được ổn định khi dùng các packages khác nhau.

Mặt khác, số lượng của package vẫn còn rất hạn chế và không được phong phú đa dạng như các ngôn ngữ khác ở trên.

Kết luận – Dành cho tương lai

Vấn đề mà Julia gặp phải là sự non trẻ của mình. Do đó hiện tại Python và R vẫn là những lựa chọn tốt hơn. Tuy vậy, nếu bạn muốn thử sự mới lạ cũng như có đủ kiên nhẫn thì Julia sẽ không làm bạn thất vọng.


MATLAB

MATLAB là một ngôn ngữ chuyên về số liệu được dùng bởi nhiều đại học và công ty khác nhau. Được phát triển bởi MathWorks, một công ty chuyên về phần mềm số hóa.

License: Trả phí

Điểm mạnh

Dành cho việc thống kê và phân tích số liệu. MATLAB rất phù hợp cho những app chuyên về số cùng với áp dụng toán học nâng cao như signal processing, Fourier transforms, matrix algebra và image processing.

Data Visualization.

MATLAB được dùng rộng rãi từ toán học cho tới vật lí, Engineer.

Điểm yếu

Phải trả phí.

MATLAB không đa năng như các ngôn ngữ khác.

Kết luận – Là lựa chọn đầu tiên cho các app nặng về toán học

MATLAB với khả năng ưu việt của nó về phân tích và thống kê số liệu được xem là lựa chọn hoàn hảo cho data science.


Anaconda, Sk-Learn, Tensor Flow,... Có rất nhiều lựa chọn dành cho bạn. Chúc bạn tìm được Tool ưng ý.