Thống kê dữ liệu

Làm sạch dữ liệu bằng Java

Dennis Lee

Software Engineer

Gặp giảng viên của bạn!

 

Dennis Lee

 

  • Kỹ sư phần mềm tại Amazon
  • Công nghệ và vận hành
  • Tiến sĩ Kỹ thuật Điện và Máy tính

 

Instructor photo

Làm sạch dữ liệu bằng Java

Vì sao cần làm sạch dữ liệu

 

Title Publish Date Rating Review Count Price
[null] 1/10/23 4.8 165 $30.61
9/13/19 4.8 2,521 $38.00
Clean Code 8/1/08 4.7 5,639 $400.00

 

  • Dữ liệu bẩn: mất doanh thu, gây nhầm lẫn, dự báo kém tin cậy
  • Giải pháp: làm sạch dữ liệu
Làm sạch dữ liệu bằng Java

Đề cương khóa học

  1. Đánh giá chất lượng dữ liệu

 

1_Ch1_L1_.jpg

Làm sạch dữ liệu bằng Java

Đề cương khóa học

  1. Đánh giá chất lượng dữ liệu
  2. Biến đổi dữ liệu

 

2_Ch1_L1_.jpg

Làm sạch dữ liệu bằng Java

Đề cương khóa học

  1. Đánh giá chất lượng dữ liệu
  2. Biến đổi dữ liệu
  3. Xác thực dữ liệu

 

3_Ch1_L1_.jpg

Làm sạch dữ liệu bằng Java

Đề cương khóa học

  1. Đánh giá chất lượng dữ liệu
  2. Biến đổi dữ liệu
  3. Xác thực dữ liệu
  4. Làm sạch dữ liệu dạng bảng

 

4_Ch1_L1_.jpg

Làm sạch dữ liệu bằng Java

Cấu trúc dữ liệu

import java.time.LocalDate;
public class BookSalesExample {
    private record BookSales(String title, LocalDate publishDate, 
                             int reviewCount,  double rating, double price) {}}
book.rating() // book is an instance of BookSales
Title Publish Date Rating Review Count Price
Python Crash Course 1/10/23 4.8 165 $30.61
The Pragmatic Programmer 9/13/19 4.8 2,521 $38.00
Clean Code 8/1/08 4.7 5,639 $40.00
Làm sạch dữ liệu bằng Java

Tạo dữ liệu mẫu

import java.time.LocalDate;
import java.util.Arrays;
import java.util.List;
// Create books with title, publishDate, reviewCount, rating, and price
List<BookSales> books = Arrays.asList(
        new BookSales("Python Crash Course", LocalDate.of(2023, 1, 10),
                      165, 4.8, 30.61),
        new BookSales("The Pragmatic Programmer", LocalDate.of(2019, 9, 13),
                      2521, 4.5, 38.00),
        new BookSales("Clean Code", LocalDate.of(2008, 8, 1),
                      5639, 4.7, 40.00));
Làm sạch dữ liệu bằng Java

Tính trung bình, min, max

import org.apache.commons.math3.stat.descriptive.DescriptiveStatistics;


public class BookSalesExample { public static void main(String[] args) { // Create stats calculator DescriptiveStatistics stats = new DescriptiveStatistics(); // Add each book's price to stats books.forEach(book -> stats.addValue(book.getPrice())); } }
Làm sạch dữ liệu bằng Java

Ví dụ đầu ra: khoảng giá

System.out.printf("Books analyzed: %d%n", books.size());
Books analyzed: 3
System.out.printf("Average price: $%.2f%n", stats.getMean());
Average price: $36.20
System.out.printf("Price range: $%.2f - $%.2f%n", stats.getMin(), stats.getMax());
Price range: $30.61 - $40.00
Làm sạch dữ liệu bằng Java

Tính phần vị

public class BookSalesExample {
    public static void main(String[] args) {
        // 50th percentile = median
        System.out.printf("Median price: $%.2f%n", stats.getPercentile(50));

System.out.printf("Normal range: $%.2f - $%.2f%n", stats.getPercentile(25), stats.getPercentile(75)); } }
Median price: $38.00

Normal range: $30.61 - $40.00
Làm sạch dữ liệu bằng Java

Thống kê để kiểm soát chất lượng

  • Phương thức DescriptiveStatistics
    • .getMean(): giá trung bình
    • .getMin(), .getMax(): khoảng giá
    • .getPercentile(): mức giá điển hình
  • Tìm vấn đề bằng cách xem khoảng giá
  • Lợi ích
    • Phát hiện nhanh vấn đề
    • Mở rộng cho dữ liệu lớn
    • Thay thế kiểm tra thủ công

Chồng sách

Làm sạch dữ liệu bằng Java

Hãy thực hành!

Làm sạch dữ liệu bằng Java

Preparing Video For Download...