Machine learning cơ bản với Python #Bài 02


Bài 2. PHÂN BỐ DỮ LIỆU VÀ VẼ BIỂU ĐỒ

2.1. PHÂN BỐ DỮ LIỆU - Data distribution
Trong các ví dụ, chúng ta thường làm việc với số ít dữ liệu để dễ hình dung và nắm bắt các thuật ngữ khác nhau. Tuy nhiên trong thực tế, nhất là khi làm dự án, chúng ta phải xử lý với số lượng dữ liệu lớn hơn nhiều.
Trong Python, chúng ta sử dụng module Numpy và một vài phương thức để tạo các tập dữ liệu ngẫu nhiên cho dù kích cỡ mẫu to lớn kiểu nào.

Ví dụ, chúng ta tạo một tập hợp 250 số thực (floats) ngẫu nhiên từ 0 đến 5

     import numpy
     x = numpy.random.uniform(0.05.0250)
     print(x)

Để trực quan hóa dữ liệu, chúng ta có thể vẽ biểu đồ dữ liệu đó
Dùng module Matplotlib để vẽ

    import numpy
    import matplotlib.pyplot as plt
    x = numpy.random.uniform(0.05.0250)
    plt.hist(x, 5)
    plt.show()


Kết quả chúng ta có biểu đồ sau
Biểu đồ trên thể hiện:
* Có 52 giá trị nằm trong khoảng 0-1
* 48 giá trị nằm trong khoảng 1-2
* 49 giá trị nằm trong khoảng 2-3
* 51 giá trị nằm trong khoảng 3-4
* 50 giá trị nằm trong khoảng 4-5


2.2. PHÂN PHỐI CHUẨN - Normal Distribution

Thuật ngữ Việt hóa "Phân phối CHUẨN" thực ra hơi khó hiểu, vì tiếng Anh nó là "Normal distribution" nghĩa là phân phối thông dụng, hoặc phổ biến. Bởi vì trong thực tiễn, hầu hết sự vật, hiện tượng đều tuân theo phân phối đó. Nên nó có tên là "Normal" hoặc có thể hiểu "CHUẨN" nghĩa là hầu hết các phân bố tự nhiên tuân theo quy luật "chuẩn" và "không cần chỉnh"

Trong lý thuyết thống kê, người ta cũng gọi "phân phối chuẩn" là "phân phối Gaussian", theo tên nhà toán học Carl Friedrich Gaus, người đầu tiên đưa ra công thức cho phân phối này.

Muốn tìm hiểu thêm về phân phối chuẩn, click link tiếng Việt này nhé https://vi.wikipedia.org/wiki/Ph%C3%A2n_ph%E1%BB%91i_chu%E1%BA%A9n

Sau đây là ví dụ trong Python
Chúng ta lấy 10 vạn điểm ngẫu nhiên với giá trị trung bình mean = 5, độ lệch chuẩn standard deviation (std) = 1.0
Biểu đồ được vẽ thành 100 cột

      import numpy
      import matplotlib.pyplot as plt
      x = numpy.random.normal(5.01.0100000)
      plt.hist(x, 100)
      plt.show()

Kết quả cho biểu đồ sau

Chúng ta có thể thấy từ biểu đồ, hầu hết giá trị nằm trong khoảng từ 4.0- 6.0. Đỉnh biểu đồ xấp xỉ có giá trị bằng ~ 5.


2.3. VẼ BIỂU ĐỒ
Trong Python, chúng ta dùng module Matplotlib để vẽ biểu đồ.
Ví dụ ta có 2 cột x và y như sau
x = [5,7,8,7,2,17,2,9,4,11,12,9,6]
y = [99,86,87,88,111,86,103,87,94,78,77,85,86]
Dùng lệnh scatter() để vẽ biểu đồ

      import matplotlib.pyplot as plt
      x = [5,7,8,7,2,17,2,9,4,11,12,9,6]
      y = [99,86,87,88,111,86,103,87,94,78,77,85,86]
      plt.scatter(x, y)
      plt.show()



Trong Machine learning, tập dữ liệu có thể có hàng ngàn, thậm chí hàng triệu giá trị. Sử dụng module Numpy để tạo ra 1000 điểm ngẫu nhiên từ một phân phối chuẩn.
Tạo 1 biểu đồ từ 2 tập dữ liệu, mỗi tập có 1000 điểm.
Tập 1 có mean = 5.0 và std = 1.0
Tập 2 có mean = 10.0  và std = 2.0

       import numpy
       import matplotlib.pyplot as plt
       x = numpy.random.normal(5.01.01000)
       y = numpy.random.normal(10.02.01000)
       plt.scatter(x, y)
       plt.show()


Biểu đồ cho thấy, các điểm tập trung trong khoảng giá trị 5 ở trục x và 10 ở trục y và độ phân tán trên trục y nhiều hơn ở trục x.

Chỗ này chắc không cần diễn giải thêm chi tiết, vì mục đích chính là cách vẽ biểu đồ bằng Python mà.

Kết thúc bài 2 ở đây, bài 3 sẽ là Hồi quy tuyến tính, hồi quy đa thức và hồi quy đa biến.

-----------------------------
Link các bài học:



Machine learning cơ bản với Python #Bài 02 Machine learning cơ bản với Python #Bài 02 Reviewed by VinhHD on 09:57 Rating: 5

Không có nhận xét nào:

ads 728x90 B
Được tạo bởi Blogger.