Trong bài viết này, ta sẽ tìm hiểu về mô hình hồi quy tuyến tính (linear regression) cũng như cài đặt một ví dụ đơn giản sử dụng thư viện scikit-learn.
Notebooks: linear_regression.
Trong bài viết này, ta sẽ tìm hiểu về mô hình hồi quy tuyến tính (linear regression) cũng như cài đặt một ví dụ đơn giản sử dụng thư viện scikit-learn.
Notebooks: linear_regression.
Trong bài viết này, ta sẽ tìm hiểu thuật toán K-láng giềng gần (K-nearest neighbors (KNN)). KNN thuộc nhóm phương pháp phân lớp dựa trên thể hiện (instance-based classification). Tôi sẽ trình bày ý tưởng đơn giản về thuật toán này. Sau đó, ta sẽ sử dụng thư viện scikit-learn phục vụ cho việc cài đặt mô hình dự đoán KNN.
Notebooks: knn.
Trong bài viết này, ta sẽ khảo sát tổng quan ba hệ thống plotting trong R. Mỗi hệ thống có điểm mạnh và điểm yếu riêng. Chúng ta sẽ tìm hiểu sơ về ý tưởng tổng quát của các hệ thống này. Ở các bài viết sau, ta sẽ đi vào chi tiết hơn.
Notebooks: explore_plot_sys.
Trong bài viết này, ta sẽ khảo sát về k-means clustering, một cách đơn giản khác để quan sát tập dữ liệu đa chiều (multi-dimensional data). Tương tự như hierarchical clustering, kĩ thuật này hữu ích khi bước đầu phân tích dữ liệu (quan sát mối quan hệ giữa các điểm dữ liệu, thuộc tính).
Notebooks: explore_kmeans_clustering.
Hôm nay, chúng ta sẽ tìm hiểu về hierarchical clustering. Đây là kĩ thuật hữu ích trong giai đoạn đầu phân tích dữ liệu, nó giúp chúng ta hiểu rõ hơn về tập dữ liệu đang khảo sát (nhận dạng mẫu, mối quan hệ giữa các thuộc tính). Hierarchical clustering có nghĩa là tạo ra cây phân cấp các nhóm dữ liệu.
Notebooks: explore_hierarchical_clustering.
Trong bài viết này, ta sẽ thảo luận về exploratory graphs (các biểu đồ cơ bản). Đây là một công cụ quan trọng và đóng một vai trò đặc biệt trong qúa trình phân tích dữ liệu.
Notebooks: explore_basic_chart.
Ở bài viết trước, chúng ta đã học về năm thao tác chính trong dplyr: select(), filter(), arrange(), mutate(), và summarize(). Hàm summarize() rất mạnh mẽ trong việc áp dụng dữ liệu đã gom nhóm. Chúng ta tiếp tục làm việc với tập dữ liệu 225,000 packages của R. Ở đây, ta dùng file log July 8, 2014 (http://cran-logs.rstudio.com/).
Notebooks: r_group_by.
R có một phương thức đặc biệt để biểu diễn ngày và thời gian. Đây là kiểu dữ liệu hữu dụng khi bạn làm việc với dữ liệu mà đòi hỏi giá trị thay đổi theo thời gian (time-series data) hay những dữ liệu chứa các thông tin như ngày sinh chẳng hạn.
Ngày được biểu diễn bởi lớp ‘Date’ và Thời gian được biểu diễn bởi lớp ‘POSIXct’ và ‘POSIXlt’. Bên trong nó, Ngày được lưu dưới dạng số ngày kể từ 1970-01-01 và Thời gian được lưu dưới dạng số giây kể từ 1970-01-01 (POSIXct) hoặc danh sách giây, phút, giờ (POSIXlt).
Notebooks: r_datetime.
Ở bài viết trước, chúng ta đã học về hai hàm thành viên quan trọng trong R đó là lapply() và sapply(). Cả hai đều nhận đầu vào là list, apply một hàm tương ứng với các phần tử trong list, sau đó kết hợp và trả về kết quả cuối cùng. lapply() luôn trả về một list, trong khi sapply() cố gắng tinh giản kết quả trả về.
Trong bài viết này, ta sẽ học về cách sử dụng vapply() và tapply(), mỗi hàm đóng một vai trò nhất định vào chiến lược Split-Apply-Combine. Chúng ta sẽ sử dụng cùng tập dữ liệu ở bài viết ‘lapply và sapply’.
Tập dữ liệu Flags lấy từ UCI Machine Learning Repository chứa thông tin chi tiết về quốc kỳ của các quốc gia. Để biết thêm thông tin các bạn có thể truy cập tại trang web sau: http://archive.ics.uci.edu/ml/datasets/Flags.
Notebooks: vapply_and_tapply.
Trong bài viết này, ta sẽ học cách sử dụng hàm lapply() và sapply(), hai trong số những hàm quan trọng trong R. Chúng được gọi là loop function trong nhóm hàm *apply(). Những hàm mạnh mẽ này, cùng với các hàm gần kề chúng (vapply() và tapply()) cung cấp các công cụ chính xác và tiện lợi trong chiến lược phân tích dữ liệu Split-Apply-Combine (tách-áp dụng-kết hợp). Những hàm *apply này sẽ TÁCH (SPLIT) dữ liệu ban đầu ra thành những thành phần nhỏ hơn, ÁP DỤNG (APPLY) một tác vụ nào đó lên các thành phần này, và KẾT HỢP (COMBINE) các kết quả này lại. Để tìm hiểu chi tiết hơn về chiến lược này ta có thể tham khảo trong bài báo của Hadley Wickham’s Journal of Statistical Software có tiêu đề là “The Split-Apply-Combine Strategy for Data Analysis”.
Trong suốt bài viết này, ta sẽ sử dụng tập dữ liệu Flags (quốc kỳ) từ UCI Machine Learning Repository. Tập dữ liệu này chứa thông tin chi tiết về quốc kỳ của các quốc gia. Để biết thêm thông tin hãy truy cập vào link này: http://archive.ics.uci.edu/ml/datasets/Flags.
Notebooks: lapply_and_sapply.
Functions là một trong những thành phần cơ bản của ngôn ngữ R. Chúng là những mẫu code nhỏ có thể sử dụng lại nhiều lần và được xem như các đối tượng khác trong R. Ở các bài viết trước, chắc hẳn chúng ta cũng đã sử dụng qua nhiều hàm dựng sẵn (built-in function). Một function bao gồm tên hàm và đi kèm theo là các đối số (parameters).
Notebooks: how_to_func.
Một trong những điểm mạnh nhất của R, khi so với các ngôn ngữ lập trình khác, đó là ta có thể dễ dàng tạo ra các biểu đồ chất lượng cao một cách dễ dàng. Trong bài viết này, chúng ta sẽ học về các biểu đồ cơ bản trong R. Chúng ta còn có các thư viện đồ thị nâng cao khác nhưng sẽ không được đề cập đến ở đây đó là lattice, ggplot2, và ggvis. Ta có thể tham khảo bài viết theo hướng tiếp cận khác với ggplot2. Xem thêm ở link sau: http://varianceexplained.org/r/teach_ggplot2_to_beginners/
Notebooks: basic_charts.
Trong bài viết này, chúng ta sẽ khảo sát về matrices và data frames. Cả hai đều biểu diễn cấu trúc dữ liệu dạng bảng (rectangular), nghĩa là chúng được sử dụng để lưu trữ dữ liệu gồm các dòng và cột. Sự khác biệt duy nhất giữa matrices và data frames đó là matrices chỉ có thể chứa duy nhất một kiểu dữ liệu, trong khi data frames có thể chứa nhiều kiểu dữ liệu khác nhau.
Notebooks: matrix_and_dataframe.
Trong bài viết này, ta sẽ học cách truy xuất các thành phần trong vector dựa trên những điều kiện chúng ta chỉ đinh. Ví dụ, chúng ta chỉ quan tâm đến 20 phần tử đầu tiên trong vector, hay truy xuất các phần tử không mang giá trị NA, hay chỉ truy xuất các phần tử dương. Kết thúc bài viết này, chúng ta sẽ biết cách xử lý từng tình huống trên.
Notebooks: accessing_vectors.
Dữ liệu bị thiếu (missing values) đóng một vai trò quan trọng trong thống kê và phân tích dữ liệu. Thông thường, missing values không nên bị bỏ qua mà cần được nghiên cứu cẩn thận để xem xét xem điều gì khiến cho các missing values này bị thiếu. Trong R, NA được sử dụng để thể hiện các giá trị không tồn tại (not available) hay bị thiếu (missing) theo nghĩa thống kê. Trong bài viết này, ta sẽ tìm hiểu kỹ hơn về các giá trị này.
Notebooks: handling_missing_data.
Hôm nay, chúng ta sẽ tìm hiểu về vector, một trong những kiểu dữ liệu đơn giản và thông dụng nhất trong R. Vectors có hai định dạng: atomic vectors (vector đơn cấu trúc) và list (vector đa cấu trúc). Atomic vector chỉ chứa duy nhất một kiểu dữ liệu. Trong khi đó, list có thể chứa nhiều kiểu dữ liệu khác nhau. Chúng ta sẽ tìm hiểu về atomic vector trước rồi sau đó đến list.
Notebooks: vector_in_r.
Trong bài viết này, chúng ta sẽ học về cách tạo ra chuỗi số trong R.
Notebooks: generate_sequence.
Ở bài viết này, chúng ta sẽ thao tác trên dữ liệu với dplyr. dplyr là một package mạnh mẽ của R được viết bởi Hadley Wickham và Romain Francois cho phép chúng ta làm việc với dữ liệu dạng bảng (tabular). Một trong những khía cạnh độc đáo của dplyr đó là với cùng một tập các tools, chúng ta có thể thao tác với nhiều nguồn dữ liệu khác, bao gồm data frames, data tables, databases và multidimensional arrays. Trong bài viết này, chúng ta chỉ tập trung thao tác trên data frames. Tuy nhiên, bạn vẫn có thể áp dụng cho các dạng format khác.
Notebooks: working_with_dplyr.
Trong bài viết này, ta sẽ khảo sát lubridate R package được phát triển bởi Garrett Grolemund và Hadley Wickham. Theo tác giả đề cập, “lubridate có cú pháp đồng nhất và dễ nhớ giúp cho thao tác trên dữ liệu Ngày và Thời gian thêm thú vị thay vì bực dọc”. Nếu bạn đã từng làm việc với Ngày và Thời gian thì phát biểu trên sẽ khiến bạn chú ý.
Notebooks: datetime_with_lubridate.
Trong bài viết này, ta sẽ học cách dọn dẹp dữ liệu với tidyr package. Các phần trong bài viết này đòi hỏi sử dụng dplyr. Nếu bạn không có kiến thức căn bản về dplyr, bạn nên đọc trước loạt bài dplyr trước khi bắt đầu bài viết này.
Notebooks: working_with_tidyr_dplyr.