Đôi khi bạn biết phân phối phù hợp nhất hoặc hàm mật độ xác suất của dữ liệu của bạn trước khi phân tích; Thường xuyên hơn, bạn không. Các cách tiếp cận để lấy mẫu dữ liệu, mô hình hóa và phân tích có thể thay đổi dựa trên phân phối dữ liệu của bạn và do đó, việc xác định phân phối lý thuyết phù hợp nhất có thể là một bước thiết yếu trong quá trình thăm dò dữ liệu của bạn. Show Đây là nơi Distfit đến.
Về cơ bản, chúng tôi có thể chuyển dữ liệu của mình cho DistFit và xác định nó phân phối xác suất nào dữ liệu phù hợp nhất, dựa trên số liệu RSS, sau khi nó cố gắng phù hợp với dữ liệu với 89 phân phối khác nhau. Sau đó, chúng ta có thể xem một lớp phủ trực quan hóa của dữ liệu thực nghiệm và phân phối phù hợp nhất. Chúng tôi cũng có thể xem một bản tóm tắt của quá trình, cũng như vẽ các kết quả phù hợp nhất. Chúng ta hãy xem cách sử dụng Distfit để hoàn thành các nhiệm vụ này và xem việc sử dụng nó đơn giản như thế nào. Đầu tiên, chúng tôi sẽ tạo ra một số dữ liệu; khởi tạo mô hình Distfit; và phù hợp với dữ liệu cho mô hình. Đây là cốt lõi của quy trình phù hợp phân phối Distfit. import numpy as np from distfit import distfit # Generate 10000 normal distribution samples with mean 0, std dev of 3 X = np.random.normal(0, 3, 10000) # Initialize distfit dist = distfit() # Determine best-fitting probability distribution for data dist.fit_transform(X) Và Distfit Toils Away: [distfit] >fit.. [distfit] >transform.. [distfit] >[norm ] [0.00 sec] [RSS: 0.0004974] [loc=-0.002 scale=3.003] [distfit] >[expon ] [0.00 sec] [RSS: 0.1595665] [loc=-12.659 scale=12.657] [distfit] >[pareto ] [0.99 sec] [RSS: 0.1550162] [loc=-7033448.845 scale=7033436.186] [distfit] >[dweibull ] [0.28 sec] [RSS: 0.0027705] [loc=-0.001 scale=2.570] [distfit] >[t ] [0.25 sec] [RSS: 0.0004996] [loc=-0.002 scale=2.994] [distfit] >[genextreme] [0.64 sec] [RSS: 0.0010127] [loc=-1.105 scale=3.007] [distfit] >[gamma ] [0.39 sec] [RSS: 0.0005046] [loc=-268.356 scale=0.034] [distfit] >[lognorm ] [0.84 sec] [RSS: 0.0005159] [loc=-227.504 scale=227.485] [distfit] >[beta ] [0.33 sec] [RSS: 0.0005016] [loc=-2746819.537 scale=2747059.862] [distfit] >[uniform ] [0.00 sec] [RSS: 0.1103102] [loc=-12.659 scale=22.811] [distfit] >[loggamma ] [0.73 sec] [RSS: 0.0005070] [loc=-554.304 scale=83.400] [distfit] >Compute confidence interval [parametric] Sau khi hoàn thành, chúng tôi có thể kiểm tra kết quả theo một vài cách khác nhau. Đầu tiên, chúng ta hãy xem bản tóm tắt được tạo ra. # Print summary of evaluated distributions print(dist.summary) distr score LLE loc scale \ 0 norm 0.000497419 NaN -0.00231781 3.00297 1 t 0.000499624 NaN -0.00210365 2.99368 2 beta 0.000501588 NaN -2.74682e+06 2.74706e+06 3 gamma 0.000504569 NaN -268.356 0.0336241 4 loggamma 0.000506987 NaN -554.304 83.3997 5 lognorm 0.00051591 NaN -227.504 227.485 6 genextreme 0.00101271 NaN -1.10495 3.00708 7 dweibull 0.00277053 NaN -0.00114977 2.56974 8 uniform 0.11031 NaN -12.659 22.8107 9 pareto 0.155016 NaN -7.03345e+06 7.03344e+06 10 expon 0.159567 NaN -12.659 12.6567 arg 0 () 1 (323.7785925192121,) 2 (73202573.87887828, 6404.720016859684) 3 (7981.006169767873,) 4 (770.4368441223046,) 5 (0.013180038142300822,) 6 (0.25551845624380576,) 7 (1.2640245435189867,) 8 () 9 (524920.1083231748,) 10 () Dựa trên RSS (là 'điểm' trong bản tóm tắt trên) và nhớ lại rằng RSS thấp nhất sẽ cung cấp mức độ phù hợp nhất, dữ liệu của chúng tôi phù hợp nhất với phân phối bình thường. Điều này có vẻ giống như một kết luận đã được bỏ qua, cho rằng chúng tôi đã lấy mẫu từ phân phối bình thường, nhưng đó không phải là trường hợp. Với sự tương đồng giữa nhiều bản phân phối, các lần chạy liên tiếp trên dữ liệu được lấy lại bằng cách sử dụng phân phối bình thường cho thấy nó cũng dễ dàng (có lẽ dễ dàng hơn?) Để kết thúc với sự phân phối phù hợp nhất của T, gamma, beta, log-normal hoặc log-gamma , để đặt tên nhưng một số ít, đặc biệt là trên các cỡ mẫu tương đối thấp. Sau đó, chúng ta có thể vẽ kết quả phân phối phù hợp nhất so với dữ liệu thực nghiệm của chúng ta. # Plot results dist.plot() & nbsp; & nbsp; Cuối cùng, chúng ta có thể vẽ bản tóm tắt phù hợp nhất để xem sự phù hợp của các bản phân phối so với nhau, trực quan. & nbsp; & nbsp; Cuối cùng, chúng ta có thể vẽ bản tóm tắt phù hợp nhất để xem sự phù hợp của các bản phân phối so với nhau, trực quan. Từ những điều trên, bạn có thể thấy sự tốt đẹp tương đối của sự phù hợp của một số phân phối phù hợp nhất với dữ liệu của chúng tôi.
Hàm Bạn có thể tìm thấy các ví dụ cho các trường hợp sử dụng này trong tài liệu Distfit.Matthew Mayo (@mattmayo13) is a Data Scientist and the Editor-in-Chief of KDnuggets, the seminal online Data Science and Machine Learning resource. His interests lie in natural language processing, algorithm design and optimization, unsupervised learning, neural networks, and automated approaches to machine learning. Matthew holds a Master's degree in computer science and a graduate diploma in data mining. He can be reached at editor1 at kdnuggets[dot]com. Tạo một mảng chứa 250 phao ngẫu nhiên trong khoảng từ 0 đến 5: Nhập Numpy. ....Làm thế nào để phù hợp với dữ liệu để phân phối trong Python.. Dữ liệu = NP. ngẫu nhiên. Bình thường (0, 0,5, 1000). trung bình, var = scipy. số liệu thống kê. Phân phối. định mức. phù hợp (dữ liệu). x = np. không gian linsp (-5,5,100). FITTED_DATA = SCIPY. số liệu thống kê. Phân phối. định mức. .... plt. Lịch sử (dữ liệu, mật độ = true). plt. Lô đất (x, fited_data, 'r-') âm mưu dữ liệu và fited_data .. Làm thế nào để bạn phù hợp với một phân phối vào dữ liệu?Sử dụng các sơ đồ xác suất để xác định phân phối dữ liệu của bạn. Các sơ đồ xác suất có thể là cách tốt nhất để xác định xem dữ liệu của bạn có tuân theo một phân phối cụ thể hay không. Nếu dữ liệu của bạn theo đường thẳng trên biểu đồ, phân phối phù hợp với dữ liệu của bạn. Quá trình này là đơn giản để làm trực quan.If your data follow the straight line on the graph, the distribution fits your data. This process is simple to do visually.
Làm thế nào để bạn phù hợp với một phân phối bình thường cho một biểu đồ trong Python?Làm thế nào để phù hợp với một phân phối cho một biểu đồ trong Python.. Dữ liệu = NP. ngẫu nhiên. Bình thường (0, 1, 1000) Tạo bộ dữ liệu bình thường ngẫu nhiên .. _, thùng, _ = plt. Lịch sử (dữ liệu, 20, mật độ = 1, alpha = 0,5) tạo biểu đồ từ `data`. Mu, Sigma = Scipy. số liệu thống kê. định mức. phù hợp (dữ liệu). best_fit_line = scipy. số liệu thống kê. định mức. .... plt. Lô đất (Bins, Best_Fit_Line). Làm thế nào để bạn hiển thị phân phối dữ liệu trong Python?Học máy - Phân phối dữ liệu.. ❮ Trước Sau ❯. Học máy - Phân phối dữ liệu. Vẽ một biểu đồ: Nhập Numpy..... Tạo một mảng với 100000 số ngẫu nhiên và hiển thị chúng bằng biểu đồ với 100 thanh: nhập Numpy..... ❮ Trước Sau ❯. |