1. Phân phối mũ trong Numpy

Phân phối hàm mũ được sử dụng để mô hình thời gian giữa các biến cố xảy ra theo một tỷ lệ trung bình là hằng số. Trong Lý thuyết xác suất và thống kê, phân phối mũ là một lớp của các phân bố xác suất liên tục.

Phân phối mũ và phân phối Poisson là hai phân phối có mối liên hệ với nhau: Phân phối Poisson đề cập đến số lần xuất hiện của một sự kiện trong một khoảng thời gian trong khi phân phối mũ đề cập đến thời gian giữa các sự kiện này.

Trong Numpy, để tạo ra mảng dựa theo phân phối mũ ta sẽ cần sử dụng hàm random.exponential() – hàm này yêu cầu 2 tham số:

  • Tham số scale – là nghịch đảo của tỷ lệ (tương tự giá trị lam trong phân phối poisson) mặc định là 1,0.
  • Tham số size – là kích thước mảng cần trả về

Ví dụ dưới đây, sử dụng hàm random.exponential() để tạo ra một mảng 2 chiều có kích thước 2 x 3, các giá trị theo phân phối mũ với scale = 1 như sau:

from numpy import random

x = random.exponential(scale=2, size=(2, 3))

print(x)

Kết quả:

[[2.67485413 0.03298822 1.40620362]
 [3.69438672 5.6763252  1.78055815]]

2. Trực quan hóa phân phối mũ

Chúng ta có thể trực quan hóa các phân phối mũ thông qua hàm sns.distplot() trong mô-đun Seaborn.

Ví dụ dưới đây, trực quan hóa phân phối mũ trong mảng 1 chiều có kích thước 1 x 1000 có giá trị scale = 1 thông qua hàm sns.distplot() như sau:

from numpy import random
import matplotlib.pyplot as plt
import seaborn as sns

sns.distplot(random.exponential(size=1000), hist=False)

plt.show()