Thống kê ứng dụng 3: Các vấn đề trong thống kê

ANOVA

Trong phần 1, ta đã biết về các khái niệm: means, median, standard deviations. Phần 2, ta cũng đã biết cách tính confidence interval và thực hiện hypothesis testing như thế nào. Trong phần cuối series học thống kê thông qua lập trình Jupyter notebook, ta giải quyết các vấn đề trong thống kê gồm:

  • Tính khoảng tin cậy như thế nào nếu mẫu dữ liệu thu thập nhỏ hơn 30?
  • So sánh hai quần thể xem chúng có khác biệt nhau hay không (thường ứng dụng trong A/B testing)?
  • Làm sao để kiểm tra 2 bản báo cáo lượt view giữa Facebook và Google bằng Chi-square?
  • ANOVA trong việc phân tích mức độ yêu thích của người dùng giữa các bộ phim?

Download: Jupyter notebook

Thống kê ứng dụng 2: Suy luận thống kê

Statistics for Hackers

Ở phần trước, ta đã tìm hiểu các khái niệm cơ bản của thống kê như means, median, standard deviations, probability, normal distribution, central limit theorem. Những độ đo này giúp ta hiểu biết tổng quan về dữ liệu đang phân tích. Trong phần tiếp theo, ta sẽ tìm hiểu về suy luận thống kê từ các độ đo này. Ta sẽ biết thế nào là độ lỗi chuẩn (standard error), làm sao để tính khoảng tin cậy (confidence interval) cho một mẫu bất kỳ vừa thu thập được, và thực hiện kiểm định giải thuyết như thế nào cho những câu hỏi được đặt ra.

Tất cả những thao tác này được gọi là suy luận thống kê (inferential statistics). Ví dụ, một lớp học gồm 50 học sinh. Trong đó, các bạn nữ cho rằng mỗi lần khảo bài thì họ bị gọi lên nhiều hơn các bạn nam. Họ cho rằng như vậy giáo viên đã thiên vị. Còn giáo viên thì cho rằng họ thực hiện điều này một cách ngẫu nhiên. Vậy ai đúng trong trường hợp này. Thông qua suy luận thống kê, ta sẽ tiến hành lấy mẫu thực nghiệm, đặt giả thuyết thống kê, xác định ngưỡng bác bỏ \alpha, tính toán z-score và p-value, cuối cùng là so sánh \alpha và p-value để xem kết luận cuối cùng là gì.

Download: Jupyter notebook

Xem thêm:

Thống kê ứng dụng 1: Quan sát dữ liệu

rating_histogram

Học thống kê thông qua lập trình sẽ giúp ta không chỉ kiểm chứng lại lý thuyết đã học mà còn hỗ trợ nắm bắt các khái niệm phức tạp một cách dễ dàng hơn. Thêm vào đó, ta sẽ biết cách ứng dụng những kiến thức này vào trong công việc khi cần thiết.

Ta sử dụng Jupyter notebook để điểm qua các khái niệm, thao tác cơ bản giúp quan sát và mô tả dữ liệu. Ta sẽ phân biệt được các loại dữ liệu (nomial, numbers, odinal, ratio) trong dataset như thế nào, tìm trọng tâm của tập dữ liệu, quan sát sự biến đổi của dữ liệu thông qua các chỉ số cơ bản (range, variance, standard deviation, z-score, percentile), cùng với một vài nguyên lý tính xác suất Bayes và cách mô phỏng central limit theorem.

z_score_distribution

central_limit_on_rating

Information extraction – Bài toán rút trích thông tin trong văn bản

brat_annotation_tools

Trong bài viết này, ta sẽ khảo sát bài toán Rút trích thông tin (Information extraction – IE), một nhánh nghiên cứu nâng cao thiên về rút trích thông tin ngữ nghĩa trong văn bản. Từ đây, ta sẽ có nhiều ứng dụng cho nhiều domain như Web mining (rút trích tên người nổi tiếng, sản phẩm đang hot, so sánh giá sản phẩm, nghiên cứu đối thủ cạnh tranh, phân tích tâm lý khách hàng), Biomedical, Business intelligent, Financial professional (đánh giá thị trường từ các nguồn khác nhau: giá xăng dầu tăng giảm, thông tin chiến tranh, chính trị giữa các nước, điều luật mới trong thị trường kinh doanh), Terrism event (sử dụng vũ khí gì, đối tượng tấn công là ai).

Sau các bước tiền xử lý thiên về từ vựng và cú pháp như tách câu, tách từ, phân tích cú pháp, gán nhãn từ loại. Từ IE ta sẽ đơn giản hóa thành các bài toán con gồm: Rút trích tên thực thể (Named entity recognition – NER: people, organization, location), phân giải đồng tham chiếu (Coreference resolution) và Rút trích quan hệ giữa hai thực thể (Relation extraction – RE: founderOf, headQuarteredIn). Các mô hình khi thực nghiệm sẽ được đánh giá thông qua các chỉ số Precision, Recall, F1-score. Dưới đây là một ví dụ về rút trích quan hệ trong câu.

Continue reading “Information extraction – Bài toán rút trích thông tin trong văn bản”

TensorFlow – thư viện code Deep Learning

tensorboard

Bài viết này không nhằm vào hướng dẫn lập trình TensorFlow. Lý do, các bạn có thể tìm thấy nhiều source code hướng dẫn khác nhau trên internet, tự cài đặt và lập trình dễ dàng. Nếu các bạn đã có kiến thức cơ bản về Neural Network thì việc nắm bắt công nghệ này cũng sẽ đơn giản hơn rất nhiều.

Thông thường, ta sẽ đi theo flow nghiên cứu sau: vào trang https://www.tensorflow.org/ để xem qua bài giới thiệu chung chung, sau đó tiến hành cài đặt, cài đặt thất bại do conflict thư viện, cài đặt thành công, đọc source code, cài đặt thuật toán từ các tutorial, hiểu sơ sơ, bắt đầu hoang mang do có quá nhiều bài viết cần đọc và cài đặt -> mất hết cảm hứng.

Do đó, mình sẽ hướng các bạn đi theo một tiếp cận khác. Đầu tiên, ta sẽ lấy cảm hứng nghiên cứu thông qua các ứng dụng ngoài thực tế, người thật việc thật của TensorFlow. Tiếp đến, ta sẽ xem mọi người đánh giá như thế nào về mã nguồn này, có đáng để ta tiếp tục nghiên cứu không. Sau cùng, ta sẽ bắt tay vào tiến hành cài đặt và ứng dụng công nghệ cùng với các tài liệu tham khảo chất lượng đã thu thập được.

Continue reading “TensorFlow – thư viện code Deep Learning”

Gán nhãn từ loại (Part-of-Speech tagging POS)

Tagging problem
Tagging problem

Trong nhiều tác vụ của Xử lý ngôn ngữ tự nhiên (XLNNTN), ta mong muốn xây dựng được một mô hình mà chuỗi các quan sát đầu vào (từ, ngữ, câu,…) đi kèm với chuỗi các nhãn đầu ra (từ loại, ranh giới ngữ, tên thực thể,…) gọi là pairs of sequences.

Gán nhãn từ loại (Part-of-speech tagging – POS) có lẽ là bài toán sớm nhất được nghiên cứu và được mọi người biết đến khi nhập môn chuyên ngành XLNNTN. Trong bài viết này, ta sẽ tìm hiểu về bài toán gán nhãn từ loại, các hướng tiếp cận và thuật toán cơ bản để giải quyết vấn đề này.

Continue reading “Gán nhãn từ loại (Part-of-Speech tagging POS)”

Language Modeling là gì

Language model
Language model

Trong bài viết này, ta sẽ tìm hiểu thế nào là một mô hình ngôn ngữ (language modeling). Làm sao để xây dựng được một mô hình ngôn ngữ từ tập các mẫu câu của một ngôn ngữ bất kỳ (Anh, Việt, Nhật, …). Mô hình ngôn ngữ ban đầu được ứng dụng trong nhận dạng tiếng nói (speech recognition) và đã được áp dụng vào trong những tác vụ khác liên quan trong lĩnh vực Xử lý ngôn ngữ tự nhiên (Natural Language Processing – NLP) như gán nhãn từ loại (tagging), phân tích cây cú pháp (parsing), dịch máy (machine translation), …

Tại sao chúng ta cần mô hình ngôn ngữ? Lý do thứ nhất, mô hình này cung cấp cho bạn thông tin về phân bố xác suất tiền nghiệm (prior distribution) p(x_1...x_n) để xét xem câu gồm các từ đầu vào có phù hợp hay không với ngôn ngữ xác định. Ví dụ, ta sẽ có xác suất của câu p(toi \ nay \ duoc \ di \ choi \ roi \ vui \ qua) > p(qua \ roi \ vui \ di \ choi \ toi \ nay \ duoc) nhờ vậy mà ta xác định được câu “tối nay được đi chơi rồi vui quá” sẽ phù hợp hơn với ngôn ngữ tiếng Việt hơn câu hai “quá rồi vui đi chơi tối”. Thứ hai, các kĩ thuật liên quan đến ước lượng tham số cho mô hình thông qua tập dữ liệu huấn luyện cho trước được sử dụng trong các mô hình khác như Hidden Markov Model, Natural Language Parsing. Và cuối cùng, đây là một trong những cơ sở kiến thức để các bạn đọc hiểu được các bài viết liên quan đến Long short-term memory (LSTM).

Continue reading “Language Modeling là gì”

Các bước phân tích dữ liệu

Các bước phân tích dữ liệu

Trong quá khứ, khi bắt đầu nghiên cứu một vấn đề nào đó, ta thường phải tìm kiếm hay thu thập dữ liệu tương ứng với bài toán mà ta đề ra. Nhờ có tiến bộ của internet mà ngày nay ta được tiếp cận với nhiều thông tin hơn, đến nỗi quá nhiều, quá Big khiến cho vấn đề không còn nằm ở chỗ thiếu thông tin nữa mà là làm sao rút trích được những thông tin hữu ích và súc tích nhất cho câu hỏi ban đầu.

Khi đó ta thường đối mặt với những thách thức về dữ liệu như:

  • Làm sao tìm được dữ liệu cho bài toán của mình?
  • Phân tích dữ liệu thu thập được như thế nào?
  • Sau khi phân tích, ta có thể đưa ra được kết luận thú vị nào không cho bài toán đề ra?

Mặc dù mỗi lĩnh vực nghiên cứu khác nhau sẽ có những đòi hỏi và mục tiêu khác nhau, nhưng nhìn chung, ta có thể áp dụng cùng một phương pháp hữu ích như tôi sắp trình bày bên dưới để có thể tiến hành một quy trình phân tích dữ liệu thành công.

Continue reading “Các bước phân tích dữ liệu”

Featured

Machine Learning cho người bắt đầu

Bắt đầu học Machine Learning

Những bạn yêu thích Machine Learning và không biết mình nên bắt đầu từ đâu có thể tham khảo bài viết này. Mọi câu hỏi, các bạn có thể comment bên dưới, mình luôn sẵn sàng ở đây để hỗ trợ.

Khởi động

Bạn cần làm quen với một vài điểm cơ bản để bắt đầu cuộc hành trình của mình.

Machine learning là gì

Tại sao cần Machine learning

AI, Machine Learning, Deep Learning phân biệt như thế nào cho đúng

Kĩ năng phân tích dữ liệu

Bạn cần học và thực hành tiến trình áp dụng machine learning vào bài toán cụ thể. Chuẩn bị dữ liệu > Huấn luyện > Đánh giá và lựa chọn mô hình.

Cách xác định bài toán trong Machine Learning

Tiền xử lý dữ liệu (Horse Colic dataset)

Lấy và làm sạch dữ liệu: Xử lý dữ liệu ngoại lai (Outliers)

Đánh giá mô hình (Model evaluation)

Big data

Một vài kiến thức và kĩ năng giúp bạn bắt đầu làm việc với Big Data.

Bắt đầu Big Data từ đâu và như thế nào?

FAQ: Big data cho người mới bắt đầu

Làm việc với Spark DataFrames – Truy vấn cơ bản

Kỹ năng hệ thống

Bạn cũng nên chuẩn bị cho mình phương pháp quản lý dự án và thao tác nhanh với hệ thống.

Git notes

Command line thường dùng

Soạn slides bằng Beamer

Viết luận văn bằng LaTeX

Continue reading “Machine Learning cho người bắt đầu”

Machine Learning và Real-Time Bidding

Real-Time Bidding
Real-Time Bidding

Real-Time Bidding (RTB) tạm dịch là “Đấu gía thời gian thực”. RTB là việc mua bán lượt hiển thị quảng cáo online thông qua cơ chế thời gian thực xảy ra vào lúc trang web đang tải. Những cuộc đấu giá diễn ra dễ dàng hơn bởi ad exchange, demand-side platforms và supply-side platforms (SSP).

RTB khác với các mô hình quảng cáo truyền thống như thế nào? Tại sao chúng ta cần RTB? RTB mang lại lợi ích gì cho các trang mạng (publishers) và các nhà quảng cáo (advertisers)? Machine learning áp dụng vào các hệ thống RTB như thế nào? Qua bài viết này, tôi sẽ trả lời các câu hỏi trên cũng như trình bày những thách thức về Big Data trong RTB và tình hình nghiên cứu hiện nay của Machine Learning vào RTB. Continue reading “Machine Learning và Real-Time Bidding”

Giới thiệu các công cụ Xử lý ngôn ngữ tự nhiên

NLP tools
NLP tools

Nếu bạn đang làm việc và nghiên cứu trên ngôn ngữ tiếng Anh thì ta có thể sử dụng các thư viện/module NLP của Python được liệt kê bên dưới. Mục đích của bài viết này được dùng để liệt kê những thư viện/module và những chức năng hữu ích trong NLP. Các bạn có thể tham khảo danh sách các thuật ngữ liên quan đến các chức năng ở bài viết này.

Continue reading “Giới thiệu các công cụ Xử lý ngôn ngữ tự nhiên”

Các thuật ngữ trong Xử lý ngôn ngữ tự nhiên

Natural Language Processing
Natural Language Processing

Vai trò của Xử lý ngôn ngữ tự nhiên-XLNNTN (Natural Language Processing-NLP) trong khai thác Big Data là không thể phủ nhận trong bối cảnh phát triển của doanh nghiệp hiện nay. Đối với ngôn ngữ tiếng Anh, ta đã được kế thừa nhiều tri thức cũng như nhiều công cụ có sẵn để áp dụng ngay vào thực tiễn. Tuy nhiên, đối với ngôn ngữ tiếng Việt, ta vẫn còn gặp nhiều khó khăn (nhân sự có chuyên môn còn hạn chế, ngữ liệu để huấn luyện chưa đủ lớn) bên cạnh những cơ hội rất lớn (thị trường Việt Nam chưa được khai thác) cho những ai đam mê lĩnh vực này.

Vì vậy, trong bài viết này, tôi xin lập ra danh sách các thuật ngữ thường gặp trong NLP để tiện tham khảo cũng như giúp cho những bạn mới bắt đầu có thể nhanh chóng tra cứu sơ để tiến hành nghiên cứu ngay các tài liệu khoa học. Bài viết sẽ luôn được cập nhật. Nếu có các thuật ngữ chưa rõ, các bạn có thể comment để chúng ta tiếp tục mở rộng thêm danh sách này.

Continue reading “Các thuật ngữ trong Xử lý ngôn ngữ tự nhiên”

Lấy và làm sạch dữ liệu: Xử lý dữ liệu ngoại lai (Outliers)

Outlier
Outlier

Các phần tử ngoại lai (Outliers hay anomalies) có ảnh hưởng lớn đến độ chính xác của các mô hình dự đoán. Phát hiện và xử lý các điểm ngoại lai là một bước quan trọng trong quá trình chuẩn bị dữ liệu cho mô hình dự đoán. Trong bài viết này, ta sẽ tìm hiểu thế nào là điểm ngoại lai trong thống kê cũng như liệt kê một số phương pháp để xử lý các điểm dữ liệu này.

Continue reading “Lấy và làm sạch dữ liệu: Xử lý dữ liệu ngoại lai (Outliers)”

Feature engineering là gì

Feature engineering
Feature engineering

Trong bài viết này, ta sẽ tìm hiểu về kĩ thuật feature engineering. Đây là chủ đề mà hầu như không có bài báo hay cuốn sách nào đề cập đến nhưng kĩ thuật này là yếu tố quan trọng trong việc xây dựng thành công mô hình dự đoán có độ chính xác cao. Bài viết này nhằm trả lời câu hỏi feature engineering là gì, tại sao nó quan trọng, và các bài toán con trong kĩ thuật feature engineering.

Continue reading “Feature engineering là gì”

Điểm qua các thuật toán Machine Learning hiện đại

Trong bài viết này, ta sẽ điểm qua một số thuật toán Machine learning thường được sử dụng trong các hệ thống hiện đại chuyên để xử lý Big Data. Các thuật toán này nhắm đến độ chính xác dự đoán và tối ưu hoá khả năng tính toán của hệ thống hiện tại.

Deep Learning

Deep learning là phương pháp nâng cao của mạng nơ-ron nhân tạo (Artificial Neural Networks) khai thác khả năng tính toán ngày càng rẻ từ các chip xử lý hiện đại.

Phương pháp này nhắm tới việc xây dựng nhiều hơn các mạng nơ-ron phức tạp cũng như giải quyết bài toán semi-supervised do tập dữ liệu khổng lồ thường được gán nhãn không đầy đủ.

Các thuật toán deep learning phổ biến:

  • Deep Boltzmann Machine (DBM)
  • Deep Belief Networks (DBN)
  • Convolutional Neural Network (CNN)
  • Stacked Auto-Encoders

Dimensionality Reduction

Tương tự như phương pháp clustering, cơ chế của phương pháp giảm số chiều thuộc tính (dimensionality reduction) cũng dựa trên tính chất vốn có của dữ liệu để rút gọn, tổng hợp lại thành tập dữ liệu mới có thông tin ít hơn rất nhiều nhưng vẫn đảm bảo mô tả toàn vẹn tập dữ liệu ban đầu.

Phương pháp này thường được sử dụng vào Big Data, do số lượng dữ liệu quá lớn và giới hạn tính toán của hệ thống hiện tại, ta có thể rút gọn tập dữ liệu ban đầu để có thể đáp ứng được khả năng tính toán nhưng vẫn giữ được độ chính xác dự đoán có thể chấp nhận được. Một số thuật toán dimensionality reduction:

  • Principal Component Analysis (PCA)
  • Principal Component Regression (PCR)
  • Partial Least Squares Regression (PLSR)
  • Sammon Mapping
  • Multidimensional Scaling (MDS)
  • Projection Pursuit
  • Linear Discriminant Analysis (LDA)
  • Mixture Discriminant Analysis (MDA)
  • Quadratic Discriminant Analysis (QDA)
  • Flexible Discriminant Analysis (FDA)

Ensemble

Phương pháp ensemble là mô hình được tổng hợp từ nhiều mô hình con (weaker model) được huấn luyện độc lập. Kết quả dự đoán cuối cùng dựa trên kết quả “bỏ phiếu” của từng mô hình con đó cho kết quả đầu ra.

Các thuật toán cải tiến cho phương pháp này thường nhắm tới cách làm thế nào để lấy mẫu huấn luyện hiệu quả cho từng mô hình con và làm thế nào để lựa chọn các mô hình con sao cho chúng kết hợp lại có thể tạo ra kết quả dự đoán tốt nhất. Một số kĩ thuật esemble:

  • Boosting
  • Bootstrapped Aggregation (Bagging)
  • AdaBoost
  • Stacked Generalization (blending)
  • Gradient Boosting Machines (GBM)
  • Gradient Boosted Regression Trees (GBRT)
  • Random Forest

The 40 data science techniques

big data algorithms
big data algorithms
  1. Linear Regression
  2. Logistic Regression
  3. Jackknife Regression *
  4. Density Estimation
  5. Confidence Interval
  6. Test of Hypotheses
  7. Pattern Recognition
  8. Clustering – (aka Unsupervised Learning)
  9. Supervised Learning
  10. Time Series
  11. Decision Trees
  12. Random Numbers
  13. Monte-Carlo Simulation
  14. Bayesian Statistics
  15. Naive Bayes
  16. Principal Component Analysis – (PCA)
  17. Ensembles
  18. Neural Networks
  19. Support Vector Machine – (SVM)
  20. Nearest Neighbors – (k-NN)
  21. Feature Selection – (aka Variable Reduction)
  22. Indexation / Cataloguing *
  23. (Geo-) Spatial Modeling
  24. Recommendation Engine *
  25. Search Engine *
  26. Attribution Modeling *
  27. Collaborative Filtering *
  28. Rule System
  29. Linkage Analysis
  30. Association Rules
  31. Scoring Engine
  32. Segmentation
  33. Predictive Modeling
  34. Graphs
  35. Deep Learning
  36. Game Theory
  37. Imputation
  38. Survival Analysis
  39. Arbitrage
  40. Lift Modeling
  41. Yield Optimization
  42. Cross-Validation
  43. Model Fitting
  44. Relevancy Algorithm *
  45. Experimental Design

Nguồn tham khảo:

Statistical hypothesis testing cho dân lập trình

Statistics for Hackers
Statistics for Hackers

Hai kỹ năng cần có của các data scientist là kỹ thuật lập trình và tư duy thống kê. Nhiều data scientist hiện nay có kỹ thuật lập trình rất tốt nhưng họ cảm thấy như là kẻ mạo danh khi nói đến các số liệu thống kê. Trong buổi nói chuyện này, John sẽ lập luận rằng khả năng lập trình máy tính cho phép bạn có những ý tưởng sâu sắc và cơ bản nhất về thống kê học. Mục tiêu của John là thuyết phục các kỹ sư không chuyên về thống kê rằng lộ trình để hiểu thấu đáo các khái niệm trong thống kê học ngắn hơn bạn tưởng.

Lĩnh vực thống kê từ lâu đã có tiếng là khó nhai: nó xoay quanh các biệt ngữ dường như vô tận về phân phối, kiểm định thống kê, khoảng tin cậy, chỉ số p, và hơn thế nữa, với các khái niệm và các giả định tinh tế của riêng chúng. Nhưng ta không nhất thiết phải đi theo cách này. Trong slide trình bày dưới đây, Jake sẽ thảo luận về cách sử dụng kỹ năng lập trình để “hack các lý thuyết thống kê” – để thay thế một số lý thuyết và biệt ngữ khó hiểu bằng phương pháp tính toán trực quan như lấy mẫu (sampling), xáo trộn ngẫu nhiên (shuffling), kiểm chứng chéo (cross-validation), và các phương pháp Bayesian – để thấy rằng ta có thể nắm bắt được các khái niệm cơ bản chỉ cần bạn có thể viết được vài vòng lặp để làm phân tích thống kê.

Tham khảo thêm:

Getting and cleaning data: Các phương pháp lấy mẫu (Sampling)

Tasting soup
Tasting soup

Trong bài viết này, ta sẽ khảo sát một số vấn đề liên quan đến quần thể, các phương pháp lấy mẫu và những sai lầm chủ quan thường mắc phải khi lấy mẫu.
Continue reading “Getting and cleaning data: Các phương pháp lấy mẫu (Sampling)”

A/B testing là gì

Ngay tại thời điểm này, có rất nhiều khả năng ứng dụng Twitter của các bạn hoàn toàn khác với tôi, và hoàn toàn có thể bạn đang sở hữu những tính năng mới mà tôi không nhìn thấy. Thật ra, kể từ khi có nhiều người dùng hơn, Twitter đã trích ra một phần trăm nhỏ băng thông của mình để kiểm nghiệm một số tính năng mới nào đó mà chưa được chính thức công bố. Do đó, để hiểu được những người dùng cụ thể này phản ứng như thế nào so với nhóm người không được sử dụng tính năng mới (control group) được gọi là A/B testing. Đây là phương pháp kiểm nghiệm xem nhóm A hoặc B, nhóm nào có phản ứng tích cực hơn.

Trước khi đi vào quy trình cụ thể, ta hãy xem qua đoạn video ngắn nói về A/B testing layout của một website.

Continue reading “A/B testing là gì”

Exploratory Data Analysis: Các nguyên tắc trình bày biểu đồ

7 Kinds of Data Stories
7 Kinds of Data Stories

Mục tiêu của trình bày biểu đồ là để giao tiếp thông tin rõ ràng, toàn vẹn, và hiệu quả hơn. Một biểu đồ được trình bày tốt sẽ khuyến khích sự tham gia của nhiều thành viên trong nhóm, cũng như giúp mọi người tập trung vào bài báo cáo hơn. Với tập dữ liệu đồ sộ, ta cần một cách hiệu quả để có thể hiểu được tính chất của tập dữ liệu đó. Hệ thống thị giác của con người là kênh đón nhận thông tin nhanh chóng và hiệu quả nhất nên việc nắm bắt các nguyên tắc khi trình bày là một kiến thức hữu ích.

Continue reading “Exploratory Data Analysis: Các nguyên tắc trình bày biểu đồ”