Ứng dụng python trong data analysis

Nội dung chính

  • Web Development
    • Tại sao cần một web framework?
    • Nên sử dụng web framework Python nào?
    • Điều khác biệt giữa Django và Flask là gì?
  • Data Science – bao gồm Machine learning, Data analysis và Data visualization
    • Machine learning là gì?
      • Đây là nơi mà Machine learning ứng dụng vào
      • Python cho Machine learning
    • Data analysis và Data visualization
      • Data analysis/visualization với Python

Là một trong top những ngôn ngữ được sử dụng phổ biến nhất, Python được rất nhiều người đam mê ngôn ngữ lập trình yêu thích và lựa chọn bởi những ưu điểm và tính năng vượt trội. 

Nếu bạn đang nghĩ đến việc học Python – hoặc là mới bắt đầu học nó, có thể bạn tự hỏi: Chính xác thì tôi có thể sử dụng Python để làm gì? Đó là một câu hỏi khó trả lời, bởi vì có rất nhiều ứng dụng sử dụng Python. Hãy cùng Hybrid Technologies tìm hiểu ứng dụng thực tế của Python là gì nhé!

Web Development

Các web frameworks xây dựng sử dụng Python như Django và Flask gần đây đã trở nên rất phổ biến cho việc phát triển web. Các web frameworks này giúp bạn tạo ra serve-side code [backend code] bằng Python. Đó là những đoạn mã chạy trên phía máy chủ của bạn, trái ngược với trên các thiết bị và trình duyệt của người dùng [front-end code].

Tại sao cần một web framework?

Đó là vì một web framework giúp ta dễ dàng hơn trong việc xây dựng logic backend chung [common backed logic]. Bao gồm ánh xạ các URLs khác nhau tới các đoạn code Python, xử lý cơ sở dữ liệu và tạo các tệp HTML mà người dùng thấy trên trình duyệt của họ.

Nên sử dụng web framework Python nào?

Django và Flask là hai trong số các web framework sử dụng Python phổ biến nhất. Bạn nên sử dụng một trong hai nếu bạn mới bắt đầu.

Điều khác biệt giữa Django và Flask là gì?

  • Flask cung cấp sự đơn giản, linh hoạt và kiểm soát chi tiết, nó cho phép bạn quyết định các bạn muốn thực hiện mọi thứ.

  • Django cung cấp trải nghiệm đầy đủ hơn: bạn có bảng quản trị [admin panel], giao diện CSDL [database interfaces], ORM và cấu trúc thư mục cho các ứng dụng của bạn.

Bạn nên chọn:

  • Flask, nếu bạn tập trung vào trải nghiệm và cơ hội học tập hoặc nếu bạn muốn kiểm soát nhiều hơn về những thành phần cần sử dụng [chẳng hạn như CSDL bạn muốn sử dụng và các bạn muốn tương tác với chúng].
  • Django, nếu bạn tập trung và sản phẩm cuối cùng. Đặc biệt nếu bạn đang làm việc trên một ứng dụng đơn giản như trang web tin tức, cửa hàng điện tử hoặc blog và bạn muốn ở đó luôn luôn là một cách đơn giản, rõ ràng để làm mọi thứ.

Nói cách khác, nếu bạn là người mới bắt đầu, Flask có lẽ là sự lựa chọn tốt hơn vì nó có ít thành phần hơn để giải quyết. Ngoài ra, Flask là một sự lựa chọn tốt hơn nếu bạn muốn tùy biến hơn. Ngoài ra, Flask phù hợp hơn cho việc tạo ra REST API hơn là Django do tính linh hoạt của nó.

Mặt khác, nếu bạn đang tìm cách xây dựng thứ gì đó tiến xa hơn, Django có thể sẽ cho phép bạn đến đó nhanh hơn.

Data Science – bao gồm Machine learning, Data analysis và Data visualization

Machine learning là gì?

Có lẽ cách tốt nhất để giải thích học máy [machine learning] là gì là lấy một ví dụ đơn giản.

Giả sử bạn muốn phát triển một chương trình tự động phát hiện nội dung trong ảnh. Vì vậy, với hình ảnh dưới đây, bạn muốn chương trình nhận ra rằng đây là một con chó.

Với bức ảnh khác, bạn muốn chương trình của mình nhận ra rằng đó là một cái bàn.

Bạn có thể chỉ cần viết một vài đoạn mã để làm điều đó. VÍ dụ, có thể nếu có nhiều điểm ảnh màu nâu trong hình, thì chúng ta có thể nói đó là một con chó. Hoặc, bạn có thể tìm ra cách phát hiện các cạnh trong hình. Sau đó, bạn có thể nói, nếu có nhiều cạnh thẳng, thì đó là một cái bàn.

Tuy nhiên, cách tiếp cận này khá phức tạp. Điều gì sẽ xảy ra nếu có một chú chó màu trằng trong ảnh không có quả đầu màu nâu? Điều gì xảy ra nếu hình ảnh chỉ hiển thị các phần của chiếc bàn.

Đây là nơi mà Machine learning ứng dụng vào

Machine learning thường thực hiện một thuật toán tự động phát hiện một mẫu trong đầu vào đã cho.

Bạn có thể đưa ra, ví dụ, 1000 hình ảnh của một chú chó và 1000 hình ảnh của một chiếc bàn cho một thuật toán học máy. Sau đó, nó sẽ tìm hiểu sự khác biệt giữa một con chó và một cái bàn. Khi bạn đưa đào vào là một hình ảnh mới của một con chó hoặc một cái bàn, nó sẽ có thể nhận ra hình ảnh đó là cái gì.

Điều này có phần tương tự như cách một đứa trẻ học những điều mới. Làm thế nào để một đứa trẻ biết rằng một thứ trông giống như một con chó hay chiếc bàn? Có lẽ từ một loạt các ví dụ.

Bạn có thể không nói rõ cho một đứa trẻ, “Nếu thứ gì đó có lông và có quả đầu màu nâu, thì đó có thể là một con chó.”

Có thể bạn sẽ chỉ cần nói, “Đó là một con chó. Đây cũng là một con chó. Và cái này là một cái bàn. Cái đó cũng là một cái bàn.”

Các thuật toán học máy cũng hoạt động theo cùng một cách.

Bạn có thể áp dụng cùng một ý tưởng cho:

  • Hệ thống gợi ý [recommendation systems]
  • Nhận diện khuôn mặt [face recognition]
  • Nhận diện giọng nói [voice recognition]

trong nhiều ứng dụng khác nhau.

Các thuật toán học máy phổ biến mà bạn có thể đã nghe nói về bao gồm:

  • Neural Networks
  • Deep Learning
  • Support Vector Machines
  • Random forest

Bạn có thể sử dụng bất kì thuật toán nào ở trên để giải quyết vấn đề đánh nhãn hình ảnh mà tôi đã giải thích ở trên.

Python cho Machine learning

Có các thư viện và các frameworks học máy phổ biến cho Python.

Hai trong số đó là scikit-learn và TensorFlow.

  • scikit-learn đi kèm với một số thuật toán học máy phổ biến được tích hợp sẵn [đã đề cập bên trên].
  • TensorFlow là một thư viện cấp thấp hơn cho phép bạn xây dựng các thuật toán học máy tùy chỉnh.

Nếu bạn chỉ mới bắt đầu với một dự án học máy, bạn nên bắt đầu với scikit-learn. Nếu bạn bắt đầu chạy và các vấn đề hiệu năng [efficiency issues], bạn có thể quan tâm đến TensorFlow.

Data analysis và Data visualization

Giả sử bạn đang làm việc cho một công ty bán hàng online. Sau đó, với tư cách là nhà phân tích dữ liệu, bạn có thể vẽ một biểu đồ dạng như thế này

Từ biểu đồ này, chúng ta có thể nói rằng, nam giới đã mua hơn 400 sản phẩm và phụ nữ mua khoảng 350 sản phẩm vào Chủ Nhật.

Là nhà phân tích dữ liệu, bạn có thể đưa ra một số giải thích cho sự khác biệt này.

Một lời giải thích rõ ràng có thể là sản phẩm này phổ biến hơn với đàn ông hơn là với phụ nữ. Một lời giải thích khác có thể là kích thước mẫu quá nhỏ và sự khác biệt này chỉ gây ra bởi sự tình cờ. Và một lời giải thích khác có thể là đàn ông có xu hướng mua sản phẩm này nhiều hơn vào Chủ Nhật vì một lý do nào đó.

Để hiều được lời giải thích nào là đúng, bạn có thể vẽ một biểu đồ như thế này.

Thay vì chỉ hiển thị dữ liệu cho ngày Chủ Nhật, chúng ta phân tích dữ liệu trong một tuần. Như bạn có thể thấy, từ biểu đồ này, chúng ta có thể thấy sự khác biệt này khá nhất quán trong những ngày khác nhau.

Từ phân tích nhỏ này, bạn có thể kết luận rằng giải thích nhất cho sự khác biệt này là sản phẩm này đơn giản là phổ biến hơn với đàn ông hơn là cho phụ nữ.

Mặt khác, nếu bạn thấy biểu đồ như thế này thì sao?

Sau đó, điều gì giải thích sự khác biệt vào ngày Chủ Nhật?

Bạn có thể nói, có lẽ đàn ông có xu hướng mua nhiều sản phẩm này chỉ vào Chủ Nhật vì một số lý do. Hoặc, có lẽ nó chỉ là một sự trùng hợp ngẫu nhiên mà đàn ông đã mua nhiều hơn vào ngày Chủ Nhật.

Vì vậy, đầy là một ví dụ đơn giản về phân tích dữ liệu [Data Analysis] có thể trông như thế nào trong thế giới thực.

Công việc phần tích dữ liệu của tác giả khi làm việc tại Google và Microsoft rất giống với ví dụ này – chỉ phức tạp hơn thôi. Tác giả đã sử dụng Python tại Google cho loại phân tích này và Javascript tại Microsoft.

Tác giả đã sử dụng SQL ở cả hai công ty đó để lấy dự liệu từ cơ sở dữ liệu của họ. Sau đó, sử dụng Python và Matplotlib [tại Google] hoặc JavaScript và D3.js [tại Microsoft] để trực quan hóa [visualize] và phân tích [analyze] dữ liệu này.

Data analysis/visualization với Python

Một trong những thư viện phổ biến nhất để hiển thị hóa dữ liệu [Data visualization] là Matplotlib

Đó là một thư viện tốt để bắt đầu vì:

  • Dễ dàng để bắt đầu
  • Một số thư viện khác như seaborn được dựa trên base của nó. Vì vậy, việc học Matplotlib sẽ giúp bạn tìm hiểu các thư viện này sau này.

Hy vọng với những chia sẻ trên sẽ giúp bạn có một cái nhìn tổng quan hơn về những ứng dụng của Python, đặc biệt là với người mới bắt đầu! Hãy chia sẻ những thắc mắc và ý kiến của bạn ngay dưới comment để chúng mình giải đáp nhé!

Nguồn: Sưu Tầm.

Chủ Đề