Làm thế nào để bạn tìm thấy phân phối bình thường tích lũy trong python?

Trong thư viện SciPy của Python, phương thức ppf[] của đối tượng scipy.stats.norm là , là tên gọi khác của hàm lượng tử. Phương thức ppf[] này là nghịch đảo của hàm

0.5
0.5000000000000001
0 trong SciPy

  • 0.5
    0.5000000000000001
    1 là hàm nghịch đảo của
    0.5
    0.5000000000000001
    2
  • 0.5
    0.5000000000000001
    2 là hàm nghịch đảo của
    0.5
    0.5000000000000001
    1

Bạn có thể thấy điều này trong đoạn mã sau

from scipy.stats import norm

print[norm.cdf[norm.ppf[0.5]]]
print[norm.ppf[norm.cdf[0.5]]]

Đầu ra như sau

0.5
0.5000000000000001

Một sự thay thế được đưa ra tiếp theo

Phương pháp 2. số liệu thống kê. bình thường. inv_cdf[]

Trăn 3. 8 cung cấp đối tượng như một phần của mô-đun

0.5
0.5000000000000001
2 có trong thư viện chuẩn. Nó bao gồm chức năng phân phối tích lũy nghịch đảo. Để sử dụng nó, hãy chuyển giá trị trung bình [
0.5
0.5000000000000001
4] và độ lệch chuẩn [
0.5
0.5000000000000001
5] vào hàm tạo
0.5
0.5000000000000001
6 để điều chỉnh nó cho phù hợp với phân phối chuẩn cụ thể trong tầm tay

Hãy xem đoạn mã sau

from statistics import NormalDist

res = NormalDist[mu=1, sigma=0.5].inv_cdf[0.5]
print[res]
# 1.0

Một tài nguyên tuyệt vời về chủ đề này được đưa ra tiếp theo

Người giới thiệu

  • https. // stackoverflow. com/câu hỏi/20626994/làm thế nào để tính toán nghịch đảo của bình thường-tích lũy-phân phối-hàm-trong-p

Bạn có muốn trở thành một bậc thầy NumPy? . [Liên kết Amazon mở trong tab mới. ]

Chris

Trong khi làm việc với tư cách là một nhà nghiên cứu trong các hệ thống phân tán, Dr. Christian Mayer tìm thấy tình yêu của mình với việc dạy sinh viên khoa học máy tính

Để giúp sinh viên đạt được mức độ thành công Python cao hơn, anh ấy đã thành lập trang web giáo dục lập trình Finxter. com. Ông là tác giả của cuốn sách lập trình nổi tiếng Python One-Liners [NoStarch 2020], đồng tác giả của loạt sách tự xuất bản Coffee Break Python, người đam mê khoa học máy tính, cộng tác viên tự do và chủ sở hữu của một trong 10 blog Python lớn nhất thế giới

Niềm đam mê của anh ấy là viết, đọc và mã hóa. Nhưng niềm đam mê lớn nhất của anh ấy là phục vụ các lập trình viên đầy tham vọng thông qua Finxter và giúp họ nâng cao kỹ năng của mình. Bạn có thể tham gia học viện email miễn phí của anh ấy tại đây

Một phần thiết yếu của thống kê là hàm phân phối tích lũy giúp bạn tìm xác suất cho một biến ngẫu nhiên trong một phạm vi cụ thể. Hướng dẫn này sẽ dạy cho bạn những kiến ​​thức cơ bản về hàm phân phối tích lũy và cách triển khai nó trong Python

Chức năng phân phối tích lũy là gì?

Hàm phân phối tích lũy được sử dụng để mô tả phân phối xác suất của các biến ngẫu nhiên. Nó có thể được sử dụng để mô tả xác suất cho một biến rời rạc, liên tục hoặc hỗn hợp. Nó có được bằng cách tính tổng hàm mật độ xác suất và lấy xác suất tích lũy cho một biến ngẫu nhiên

Hàm mật độ xác suất là hàm cho ta phân phối xác suất của một biến ngẫu nhiên ứng với bất kỳ giá trị nào của nó. Để có phân phối xác suất tại một điểm, bạn chỉ cần giải hàm mật độ xác suất cho điểm đó.  

Hàm phân phối tích lũy của biến ngẫu nhiên cần tính tại điểm x được biểu diễn dưới dạng Fx[X]. Là xác suất để biến ngẫu nhiên X nhận giá trị nhỏ hơn hoặc bằng x

Chương trình chứng chỉ chuyên nghiệp trong phân tích dữ liệu

Hợp tác với Đại học Purdue Xem khóa học

Hãy xem xét sơ đồ hiển thị dưới đây. Biểu đồ cho thấy hàm mật độ xác suất f[x], cho chúng ta một hình chữ nhật giữa các điểm [a, b] khi vẽ đồ thị. f[x] có giá trị là 1/[b-a].                                    

Hình 1. Hàm mật độ xác suất

Bây giờ xét một điểm c trên trục x. Đây chính là điểm bạn cần tìm hàm phân phối tích lũy tại. Theo định nghĩa, bạn cần tìm hàm mật độ xác suất tổng đến điểm c. Điều này có nghĩa là bạn phải tìm diện tích của hình chữ nhật giữa các điểm a và c.                        

Hình 2. Tính CDF

Bạn có thể làm điều này bằng cách nhân chiều dài và chiều rộng của hình chữ nhật. Chiều rộng là khoảng cách giữa a và c thu được bằng cách trừ chúng và chiều dài là hàm mật độ xác suất. Cuối cùng, bạn nhận được CDF là

   

Hình 3. CDF

Vì hàm phân phối tích lũy là hàm mật độ xác suất tổng đến một điểm x nhất định, nên nó có thể được biểu diễn dưới dạng xác suất mà biến ngẫu nhiên X nhỏ hơn hoặc bằng x

hinh 4. đại diện CDF

Vì bạn cần lấy tổng số PDF giữa hai điểm, bạn cũng có thể biểu diễn CDF dưới dạng tích phân PDF giữa các điểm mà nó đã được tính toán tại. Công thức được mô tả bên dưới cho thấy hàm phân phối tích lũy được tính giữa các điểm [a, b] cho PDF Fx[x]

Hình 5. CDF dưới dạng tích hợp PDF

Khóa học MIỄN PHÍ. Giới thiệu về Phân tích dữ liệu

Tìm hiểu các khái niệm, công cụ và kỹ năng phân tích dữ liệu Bắt đầu học

Hiểu chức năng phân phối tích lũy với bộ dữ liệu IRIS

Trong nghiên cứu điển hình này, bạn sẽ xem bộ dữ liệu Iris, trong đó có thông tin về chiều dài đài hoa, chiều rộng đài hoa, chiều dài cánh hoa và chiều rộng cánh hoa của ba loài Iris khác nhau

  1. Iris Setosa
  2. Iris nhiều màu
  3. Hoa diên vĩ

Hình 6. Bộ dữ liệu Iris

Tất cả các giá trị được tính bằng centimet. Bộ dữ liệu chứa 50 điểm dữ liệu trên mỗi loài khác nhau. Bạn cần tìm một biện pháp đáng tin cậy để chúng ta có thể phân biệt các loài khác nhau với nhau

Bây giờ, hãy vẽ từng tính năng của tập dữ liệu của chúng tôi bằng biểu đồ thanh. Bạn vẽ các đặc điểm với các màu khác nhau cho mỗi bông hoa để xem chúng chồng lên nhau như thế nào. Đây là một cách để tìm PDF của dữ liệu

Hình 7. Bộ dữ liệu Iris PDF

Các biểu đồ trên như sau từ trên cùng bên trái xuống dưới cùng bên phải

  1. Sepal_length. Trong biểu đồ này, chúng ta có thể thấy rằng chiều dài lá đài của cả ba loài có sự trùng lặp đáng kể. Do đó, việc thiết lập các thông số hoặc phạm vi mà bạn có thể sử dụng để phân biệt các loại hoa của chúng tôi trở nên khó khăn
  2. Sepal_width. Biểu đồ này thậm chí còn chồng chéo hơn. Nó cũng không phải là một tính năng mà bạn có thể sử dụng để phân biệt chính xác giữa các loại hoa của chúng tôi
  3. chiều dài cánh hoa. Biểu đồ này ít trùng lặp hơn so với hai biểu đồ kia. Ranh giới của Setosa không trùng lặp với bất kỳ loài nào khác và Versicolor và Virginica có một chút trùng lặp. Bạn có thể dễ dàng tìm thấy các phạm vi khác nhau mà hầu hết độ dài cánh hoa thuộc về các loài khác nhau
  4. cánh hoa_width. Biểu đồ này có ít chồng chéo hơn đáng kể so với các tham số vùng kín, nhưng bạn có thể thấy một chút chồng chéo giữa Setosa, Versicolor và Virginica

Do đó, bạn có thể kết luận rằng chiều dài cánh hoa là thông số tốt nhất để phân biệt giữa các loài hoa diên vĩ

Tiếp theo, thêm tệp PDF và vẽ biểu đồ kết quả để xem CDF cho dữ liệu mống mắt của chúng tôi

Hình 8. Bộ dữ liệu Iris PDF và CDF

Từ biểu đồ trên, bạn có thể nhận thấy ba điều

  • Chiều dài cánh hoa < 1. 9 chắc chắn là 'Setosa'. Bạn có thể nói điều này vì chiều dài cánh hoa của setosa nằm trong phạm vi này và không trùng với chiều dài cánh hoa của Versicolor hoặc Virginica
  • 3. 2 < Chiều dài cánh hoa < 5 có 95% khả năng là Versicolor. Versicolor và Virginia có một chút trùng lặp giữa 4. 7 và 5. Do đó, bất kỳ mô hình học máy nào cũng có thể nhầm lẫn cả hai, nhưng khả năng điều đó xảy ra là rất thấp
  • Độ dài cánh hoa > 5 có 90% khả năng là ‘Virginia’. Một lần nữa, có một chút chồng chéo giữa Versicolor và virginica trong 5-5. Vùng 2 cm, đây là nguyên nhân gây ra lỗi nhỏ

khóa học miễn phí. Python cho người mới bắt đầu

Nắm vững kiến ​​thức cơ bản về Python Đăng ký ngay

Thực hiện chức năng phân phối tích lũy với Python

Bây giờ, hãy xem cách bạn có thể triển khai hàm phân phối tích lũy trong Python. Hãy bắt đầu bằng cách nhập các thư viện cần thiết

Hình 9. Nhập các mô-đun cần thiết

Tiếp theo, hãy đọc trong bộ dữ liệu mống mắt của chúng tôi

Hình 10. Nhập bộ dữ liệu Iris

Bạn có thể tìm giá trị trung bình và trung bình của dữ liệu và xem chúng khác nhau như thế nào tùy theo loài

Hình 11. Tìm trung bình và trung vị

Như bạn có thể thấy, giá trị trung bình và trung bình không khác nhau nhiều. Điều này có nghĩa là không có nhiều khác biệt về chiều dài trung bình và chiều rộng của đài hoa cũng như chiều dài và chiều rộng của cánh hoa đối với các loài khác nhau của chúng ta. Điều tương tự cũng có thể xảy ra đối với giá trị trung bình và giá trị trung bình có thể so sánh được với các loài khác nhau

Bây giờ, hãy tìm độ lệch chuẩn cho dữ liệu

Hình 12. Tìm độ lệch chuẩn

Dữ liệu có giá trị độ lệch chuẩn tối thiểu cho từng tính năng trên các loài khác nhau. Điều này có nghĩa là nó không trải rộng dữ liệu của chúng tôi và không có nhiều biến thể. Ngoài ra, ngoại lệ là xa và ít

Bây giờ, hãy vẽ một biểu đồ vĩ cầm để xem các tính năng khác nhau so sánh với nhau như thế nào

Hình 13. Vẽ âm mưu violon

Hình 14. ô vĩ cầm

Biểu đồ vĩ cầm vẽ phạm vi giá trị trong tập dữ liệu của chúng tôi trên trục x và hiển thị cách trải rộng dữ liệu theo chiều rộng của chúng. Các biểu đồ trên cho thấy chiều dài cánh hoa có các vĩ cầm hẹp nhất và do đó ít ngoại lệ nhất. Phạm vi giá trị của chúng cũng có ít giao điểm nhất, như có thể thấy bằng cách so sánh độ cao của các vĩ cầm

Nếu được chọn hai đặc điểm để so sánh các bông hoa, đó sẽ là những đặc điểm nào? . Biểu đồ cặp biểu thị từng đối tượng so với các đối tượng khác dưới dạng biểu đồ phân tán để xem cặp nào hoạt động tốt nhất

Hình 15. Vẽ đồ thị cặp

Chương trình thạc sĩ phân tích dữ liệu

Cộng tác với IBM Khóa học khám phá

Bạn nhận được các lô sau khi chạy đoạn mã trên

Hình 16. Sơ đồ cặp mống mắt

Các ô trên hiển thị giá trị trục x ở phía ngoài cùng bên trái và giá trị trục y ở phía dưới. Khi bạn vẽ hai đối tượng địa lý giống nhau, bạn sẽ nhận được bản PDF của đối tượng địa lý đó. Từ các biểu đồ trên, bạn có thể nói rằng chiều dài cánh hoa và chiều rộng cánh hoa sẽ là các tính năng tốt nhất để sử dụng cùng nhau, vì biểu đồ phân tán của hai tính năng này có ít sự trùng lặp nhất, cả dọc theo trục x và trục y. Sử dụng những thứ này, bạn có thể xác định rõ ràng các phạm vi duy nhất cho các loại hoa khác nhau

Bây giờ, hãy vẽ bản đồ PDF cùng với biểu đồ cho dữ liệu mống mắt.                      

Hình 17. vẽ sơ đồ PDF

 

Hình 18. Sơ đồ PDF của bộ dữ liệu Iris

Các biểu đồ trên cho thấy tính năng Petal_length có ít sự trùng lặp nhất giữa dữ liệu của các loài iris khác nhau. Đường cong hình chuông mà bạn thấy trong tất cả các tính năng của chúng tôi là một phân phối xác suất được gọi là phân phối chuẩn. Đường cong hình chuông của Petal_leanght cũng mượt mà hơn so với đường cong hình chuông của Petal_width. Nói chung, chiều dài cánh hoa là tính năng tốt nhất để phân loại dữ liệu của chúng tôi

Bây giờ, sử dụng dữ liệu trên, vẽ đồ thị hàm phân phối tích lũy. Trước tiên, bạn chia dữ liệu thành ba bộ, tùy thuộc vào loài hoa.                    

 

Hình 19. Tách bộ dữ liệu của chúng tôi

Sau đó, bạn vẽ biểu đồ PDF và CDF cùng nhau trên cùng một biểu đồ. Để lấy bản pdf, bạn đếm số điểm dữ liệu trong mỗi ngăn biểu đồ và chia số lượng cho số điểm dữ liệu trong ngăn đó. CDF chẳng là gì ngoài tổng tích lũy hoặc tổng của PDF cho đến một thời điểm nhất định. Để có chức năng phân phối tích lũy cho mỗi thùng, bạn thêm tệp PDF của tất cả các thùng trước đó.         

Hình 20. Vẽ sơ đồ PDF và CDF của Bộ dữ liệu Iris

Khi chạy đoạn mã trên, bạn sẽ có được biểu đồ của chúng tôi như hình dưới đây. Bạn có thể thấy rằng loài setosa có phạm vi giá trị chiều dài cánh hoa duy nhất chỉ dưới 2cm. Đối với Virginica và Versicolor, có một chút trùng lặp. Nhưng hầu hết các bông hoa của hai loài này đều thuộc phạm vi độc đáo của chúng. Do đó, độ chính xác của dự đoán không bị ảnh hưởng nhiều.              

Hình 21. PDF và CDF của Bộ dữ liệu Iris

Từ sơ đồ trên, bạn có thể nói rằng các phạm vi chiều dài cánh hoa khác nhau có thể được xác định cho các loài diên vĩ khác nhau. Các phạm vi là

  1. Iris Setosa có chiều dài cánh hoa < 2cm
  2. Một bông hoa có 95% cơ hội là Iris Versicolor nếu [3. 2 < chiều dài cánh hoa < 5]
  3. Một bông hoa có 90% khả năng là Iris Virginica nếu chiều dài cánh hoa của nó lớn hơn 5
Mong muốn có một sự nghiệp trong Phân tích dữ liệu?

Sự kết luận

Trong hướng dẫn về hàm phân phối tích lũy này, trước tiên bạn đã hiểu khái niệm về CDF và cách tính toán nó bằng PDF. Sau đó, bạn đã thực hiện một nghiên cứu điển hình về bộ dữ liệu hoa diên vĩ và tìm thấy các phạm vi để phân biệt giữa các loài hoa diên vĩ khác nhau dựa trên độ dài cánh hoa của chúng. Cuối cùng, bạn đã sử dụng Python để triển khai nghiên cứu điển hình và thu được kết quả của nó.  

Chúng tôi hy vọng bài viết này đã giúp bạn hiểu cách tìm hàm phân phối tích lũy của một biến ngẫu nhiên. Để tìm hiểu thêm về python và số liệu thống kê cũng như cách sử dụng số liệu thống kê trong phân tích dữ liệu, hãy xem Chương trình chứng chỉ phân tích dữ liệu của Simplilearn. Mặt khác, nếu bạn cần làm rõ hoặc có bất kỳ nghi ngờ nào, hãy chia sẻ chúng với chúng tôi bằng cách bình luận xuống bên dưới trong phần bình luận của trang này và chúng tôi sẽ có các chuyên gia của chúng tôi giải đáp ngay lập tức

học tập vui vẻ

Thông tin về các Tác giả

Avijeet Biswal

Avijeet là Chuyên gia phân tích nghiên cứu cấp cao tại Simplilearn. Đam mê Phân tích dữ liệu, Học máy và Học sâu, Avijeet cũng quan tâm đến chính trị, cricket và bóng đá

Chủ Đề