Thư viện Python nào được sử dụng để thống kê?

Một trong những yếu tố quan trọng nhất thúc đẩy sự phổ biến của Python với tư cách là ngôn ngữ lập mô hình thống kê là việc nó được sử dụng rộng rãi làm ngôn ngữ được lựa chọn trong khoa học dữ liệu và học máy.  

Ngày nay, nhu cầu về chuyên môn khoa học dữ liệu là rất lớn khi ngày càng có nhiều doanh nghiệp áp dụng nó trong hoạt động của họ. Python cung cấp sự kết hợp phù hợp giữa sức mạnh, tính linh hoạt và sự hỗ trợ từ cộng đồng của nó để dẫn đường

Có một số lý do để các nhà khoa học dữ liệu chấp nhận Python làm ngôn ngữ lập trình ưa thích của họ, bao gồm

  • Bản chất nguồn mở và cộng đồng tích cực
  • Đường cong học tập ngắn hơn và cú pháp trực quan
  • Bộ sưu tập lớn các thư viện mạnh mẽ và chuẩn hóa
  • Tích hợp mạnh mẽ với các ngôn ngữ được biên dịch nhanh [e. g. C/C++] cho các nguyên hàm tính toán số [như được sử dụng trong NumPy và pandas]
  • Dễ dàng tích hợp quy trình mô hình hóa cốt lõi với quyền truy cập cơ sở dữ liệu, sắp xếp lại quá trình xử lý hậu kỳ, chẳng hạn như trực quan hóa và phục vụ web
  • Tính khả dụng và tiếp tục phát triển các giao diện Pythonic cho các khung Dữ liệu lớn như Apache Spark hoặc MongoDB
  • Hỗ trợ và phát triển thư viện Python bởi các tổ chức lớn và có tầm ảnh hưởng lớn như Google hay Facebook [e. g. TensorFlow và PyTorch]

Tuy nhiên, điều đáng chú ý là mô hình thống kê hợp lý đóng vai trò trung tâm trong ngăn xếp khoa học dữ liệu, nhưng một số nguyên tắc cơ bản của mô hình thống kê thường bị bỏ qua, dẫn đến phân tích kém và đưa ra quyết định sai lầm.

Bài viết này đề cập đến một số khung và phương pháp lập mô hình thống kê cần thiết cho Python, có thể giúp chúng ta lập mô hình thống kê và tính toán xác suất

Tại sao những khuôn khổ này là cần thiết

Mặc dù Python phổ biến nhất để sắp xếp dữ liệu, trực quan hóa, học máy nói chung, học sâu và đại số tuyến tính liên quan [các phép toán tenxơ và ma trận] và tích hợp web, khả năng lập mô hình thống kê của nó ít được quảng cáo hơn nhiều. Một tỷ lệ lớn các nhà khoa học dữ liệu vẫn sử dụng các ngôn ngữ thống kê đặc biệt khác như R, MATLAB hoặc SAS thay vì Python để lập mô hình và phân tích

Mặc dù mỗi lựa chọn thay thế này cung cấp sự kết hợp các tính năng và sức mạnh độc đáo của riêng chúng để phân tích thống kê, nhưng nó rất hữu ích cho một nhà khoa học dữ liệu mới nổi để biết thêm về các phương pháp và khuôn khổ Python khác nhau có thể được sử dụng cho các hoạt động thông thường của thống kê mô tả và suy luận

Động lực lớn nhất để tìm hiểu về các khuôn khổ này là suy luận thống kê và mô hình xác suất đại diện cho công việc hàng ngày của các nhà khoa học dữ liệu. Tuy nhiên, chỉ bằng cách sử dụng các công cụ dựa trên Python như vậy, mới có thể xây dựng một quy trình khoa học dữ liệu đầu cuối mạnh mẽ [một luồng hoàn chỉnh mở rộng từ thu thập dữ liệu đến tạo quyết định kinh doanh cuối cùng] bằng một ngôn ngữ lập trình duy nhất

Nếu sử dụng các ngôn ngữ thống kê khác nhau cho các nhiệm vụ khác nhau, bạn có thể gặp phải một số vấn đề. Ví dụ

  • Tiến hành mọi thao tác quét web và truy cập cơ sở dữ liệu bằng cách sử dụng các lệnh SQL và thư viện Python như BeautifulSoup và SQLalchemy
  • Dọn dẹp và chuẩn bị các bảng dữ liệu của bạn bằng Pandas, nhưng sau đó chuyển sang R hoặc SPSS để thực hiện kiểm tra thống kê và tính khoảng tin cậy
  • Sử dụng ggplot2 để tạo trực quan hóa, sau đó sử dụng trình chỉnh sửa LaTeX độc lập để nhập báo cáo phân tích cuối cùng

Chuyển đổi giữa nhiều khung lập trình khiến quy trình trở nên cồng kềnh và dễ bị lỗi

Điều gì sẽ xảy ra nếu bạn có thể thực hiện tất cả các mô hình thống kê, phân tích và trực quan hóa bên trong nền tảng Python cốt lõi?

Hãy xem những khuôn khổ và phương pháp tồn tại để hoàn thành các nhiệm vụ đó

Kite là một plugin dành cho PyCharm, Atom, Vim, VSCode, Sublime Text và IntelliJ sử dụng máy học để cung cấp cho bạn các lần hoàn thành mã trong thời gian thực được sắp xếp theo mức độ liên quan. Bắt đầu viết mã nhanh hơn ngay hôm nay

Bắt đầu với NumPy

NumPy là tiêu chuẩn thực tế cho tính toán số trong Python, được sử dụng làm cơ sở để xây dựng các thư viện nâng cao hơn cho các ứng dụng khoa học dữ liệu và học máy như TensorFlow hoặc Scikit-learning. Đối với xử lý số, NumPy nhanh hơn nhiều so với mã Python gốc do việc triển khai các phương thức của nó được véc tơ hóa và thực tế là nhiều quy trình cốt lõi của nó được viết bằng C [dựa trên khung CPython]

Mặc dù phần lớn các cuộc thảo luận liên quan đến NumPy đều tập trung vào các quy trình đại số tuyến tính của nó, nhưng nó cung cấp một bộ hàm mô hình thống kê phù hợp để thực hiện các thống kê mô tả cơ bản và tạo các biến ngẫu nhiên dựa trên các phân phối liên tục và rời rạc khác nhau

Ví dụ: hãy tạo một mảng NumPy từ một danh sách Python đơn giản và tính toán các thống kê mô tả cơ bản như giá trị trung bình, trung vị, độ lệch chuẩn, lượng tử, v.v.

Mã cho bài viết này có thể được tìm thấy tại kho lưu trữ Github của Kite

import numpy as np

# Define a python list
a_list = [2, 4, -1, 5.5, 3.5, -2, 5, 4, 6.5, 7.5]

# Convert the list into numpy array
an_array = np.array[a_list]

# Compute and print various statistics
print['Mean:', an_array.mean[]]
print['Median:', np.median[an_array]]
print['Range [Max - min]:', np.ptp[an_array]]
print['Standard deviation:', an_array.std[]]
print['80th percentile:', np.percentile[an_array, 80]]
print['0.2-quantile:', np.quantile[an_array, 0.2]]

Kết quả như sau

Mean: 3.5
Median: 4.0
Range [Max - min]: 9.5
Standard deviation: 2.9068883707497264
80th percentile: 5.699999999999999
0.2-quantile: 1.4000000000000001

Bạn cũng có thể sử dụng NumPy để tạo các biến ngẫu nhiên khác nhau từ các phân phối thống kê, chẳng hạn như Nhị thức, Bình thường, Chi-square, v.v. Chúng ta sẽ thảo luận về những điều này trong ngữ cảnh của gói SciPy, về cơ bản là một siêu bộ của NumPy

Kiểm tra tài liệu NumPy để biết mô tả chi tiết về nhiều chức năng khác mà bạn có thể thực hiện với NumPy

Matplotlib và Seaborn để trực quan hóa

Các nhà khoa học dữ liệu có thể nhanh chóng trực quan hóa các loại dữ liệu khác nhau để quan sát, phát hiện các điểm ngoại lệ, thu thập thông tin chi tiết, mẫu điều tra và quan trọng nhất là truyền đạt kết quả cho đồng nghiệp và ban quản lý để ra quyết định kinh doanh. Chúng tôi sẽ đề cập ngắn gọn về hai thư viện Python mạnh mẽ cho tác vụ trực quan hóa

Matplotlib là thư viện cơ sở được sử dụng rộng rãi nhất trong Python để trực quan hóa chung. Có nhiều tài liệu về cách sử dụng thư viện này và có một chút đường cong học tập để hiểu cơ chế cốt lõi của nó. Hãy minh họa tiện ích của nó bằng một ví dụ đơn giản [chúng ta sẽ sử dụng lại đối tượng an_array NumPy từ ví dụ trước cho thấy Matplotlib hoạt động tự nhiên với mảng NumPy]

import matplotlib.pyplot as plt
plt.plot[an_array]
plt.show[]

3 dòng mã này dẫn đến một âm mưu

Hình 1. Một cốt truyện đơn giản chỉ với 3 dòng mã bằng Matplotlib

Nó trông có vẻ cằn cỗi, phải không? . kích thước hình, tiêu đề, nhãn và dấu chọn trên trục x và y [và kiểm soát phông chữ của chúng], loại đường kẻ, màu sắc, chiều rộng, màu sắc và kích thước của điểm đánh dấu, v.v.  

plt.figure[figsize=[9, 5]]
plt.title['A basic plot', fontsize=18]
plt.plot[an_array, color='blue', linestyle='--',
linewidth=4, marker='o', markersize=20]
plt.xlabel['X-axis points', fontsize=14]
plt.ylabel['Y-axis points', fontsize=14]
plt.xticks[fontsize=14]
plt.yticks[fontsize=14]
plt.grid[True]
plt.show[]

Kết quả trông như thế này

Hình 2. Vẽ đồ thị với cùng dữ liệu như Hình 1, nhưng có thêm một số chi tiết trang trí

Đây là những ví dụ về biểu đồ đường. Nếu bạn thích các loại biểu đồ/lô khác, Matplotlib cũng có thể giúp bạn ở đó

Hình 3. Matplotlib được sử dụng để tạo biểu đồ hộp, biểu đồ thanh, biểu đồ và biểu đồ hình tròn. Ngoại trừ trong biểu đồ, cùng một dữ liệu được sử dụng từ đối tượng an_array NumPy

Sử dụng Seaborn và Matplotlib

Seaborn là một thư viện Python mạnh mẽ khác được xây dựng trên Matplotlib, cung cấp các API trực tiếp để trực quan hóa thống kê chuyên dụng và do đó được các nhà khoa học dữ liệu yêu thích. Một số sơ đồ mô hình thống kê nâng cao mà Seaborn có thể thực hiện là

  • Bản đồ nhiệt
  • đàn vĩ cầm
  • Biểu đồ phân tán với hồi quy tuyến tính, khớp và khoảng tin cậy
  • Biểu đồ ghép nối và biểu đồ tương quan thể hiện sự phụ thuộc lẫn nhau giữa tất cả các biến trong bảng dữ liệu [có nhiều hàng và cột]
  • Đồ thị có các mặt [i. e. trực quan hóa mối quan hệ giữa hai biến phụ thuộc vào nhiều biến khác]

Độc giả được khuyến khích tham khảo hướng dẫn chính thức của Seaborn để biết thêm chi tiết

hình 4. Ví dụ về trực quan hóa Seaborn

SciPy cho thống kê suy luận

Theo trang web của mình, SciPy [phát âm là “Sigh Pie”] là một “hệ sinh thái phần mềm nguồn mở dựa trên Python dành cho toán học, khoa học và kỹ thuật. ” Trên thực tế, NumPy và Matplotlib đều là thành phần của hệ sinh thái này

Hình 5. Các thành phần cốt lõi của hệ sinh thái SciPy

Cụ thể trong mô hình thống kê, SciPy tự hào về một bộ sưu tập lớn các phương thức và lớp nhanh, mạnh và linh hoạt. Do không gian hạn chế, chúng tôi không thể xem qua các ví dụ về các chức năng này, nhưng đây là ảnh chụp nhanh của trang mô tả chúng

Hình 6. Ảnh chụp các phương pháp và quy trình khác nhau có sẵn với Scipy. số liệu thống kê

Tóm lại, bạn có thể thực hiện các thao tác sau với SciPy

  • Tạo các biến ngẫu nhiên từ nhiều lựa chọn phân phối thống kê rời rạc và liên tục - nhị thức, bình thường, beta, gamma, t của sinh viên, v.v.
  • Tính toán tần suất và thống kê tóm tắt của bộ dữ liệu đa chiều
  • Chạy các bài kiểm tra thống kê phổ biến như kiểm tra t, chi-square, Kolmogorov-Smirnov, kiểm tra xếp hạng Mann-Whitney, tổng xếp hạng Wilcoxon, v.v.
  • Thực hiện các tính toán tương quan như hệ số Pearson, ANOVA, ước tính Theil-Sen, v.v.
  • Tính toán các phép đo khoảng cách thống kê như khoảng cách Wasserstein và khoảng cách năng lượng

Statsmodels cho mô hình nâng cao

Ngoài việc tính toán các số liệu thống kê mô tả và suy luận cơ bản, chúng tôi tham gia vào lĩnh vực mô hình hóa nâng cao, ví dụ: hồi quy đa biến, mô hình cộng tổng quát, kiểm tra phi tham số, phân tích khả năng sống sót và độ bền, mô hình chuỗi thời gian, xử lý dữ liệu với các phương trình xâu chuỗi, v.v. Gói Statsmodels cho phép bạn thực hiện tất cả các phân tích này. Đây là một ảnh chụp nhanh về khả năng của họ

Statsmodels cho phép cú pháp công thức kiểu R cho nhiều API mô hình hóa và cũng tạo ra các bảng chi tiết với các giá trị quan trọng để lập mô hình thống kê, như giá trị p, bình phương R được điều chỉnh, v.v. Đây là một ví dụ hồi quy đơn giản sử dụng các số ngẫu nhiên được tạo bởi NumPy và các lỗi phân phối thông thường

Ghi chú. Đảm bảo cài đặt SciPy trước khi sử dụng statsmodels.api

pip install scipy

import numpy as np
import statsmodels.api as sm

# Input variables
nobs = 100
X = np.random.random[[nobs, 2]]
X = sm.add_constant[X]

# Regression coefficients
beta = [1, .1, .5]

# Random errors
e = np.random.random[nobs]

# Output y
y = np.dot[X, beta] + e

# Fit the regression model
reg_model = sm.OLS[y, X].fit[]

# Print the summary
print[reg_model.summary[]]

Kết quả trông giống như hình bên dưới. Đầu ra của bạn sẽ khác do dữ liệu ngẫu nhiên. Lưu ý cách thống kê chi tiết [giá trị p, sai số chuẩn và khoảng tin cậy] được in ở đây cùng với các hệ số hồi quy ước tính

Kite là một plugin dành cho PyCharm, Atom, Vim, VSCode, Sublime Text và IntelliJ sử dụng máy học để cung cấp cho bạn các lần hoàn thành mã trong thời gian thực được sắp xếp theo mức độ liên quan. Bắt đầu viết mã nhanh hơn ngay hôm nay

Scikit-learning để học thống kê

Cuối cùng, chúng ta đến với Scikit-learning, thư viện Python được sử dụng rộng rãi nhất cho máy học cổ điển.  

Nhưng tại sao điều này lại được đưa vào thảo luận về mô hình thống kê? . e. thuật toán học không sâu] có thể được phân loại là kỹ thuật học thống kê.  

Scikit-learning có nhiều thuật toán phân loại, hồi quy và phân cụm khác nhau, bao gồm máy vectơ hỗ trợ [SVM], rừng ngẫu nhiên, tăng cường độ dốc, phương tiện k và DBSCAN. Nó được thiết kế để tương tác liền mạch với các thư viện số và khoa học Python NumPy và SciPy, cung cấp một loạt các thuật toán học tập có giám sát và không giám sát thông qua một giao diện nhất quán.  

Thư viện Scikit-learning cũng đủ mạnh để sử dụng trong các hệ thống cấp sản xuất nhờ cộng đồng hỗ trợ của nó

Với Scikit-learning, bạn có thể thực hiện các nhiệm vụ học tập thống kê nâng cao như

  • Kết nối các mô hình thống kê của bạn trong một chuỗi
  • Tạo dữ liệu hồi quy và phân loại ngẫu nhiên cho các thuật toán thử nghiệm
  • Thực hiện các loại mã hóa / chuyển đổi trên dữ liệu đầu vào
  • Tìm kiếm siêu tham số cho các thuật toán phức tạp như SVM

Phần kết luận

Trong bài viết này, chúng tôi đã đề cập đến một bộ thư viện mã nguồn mở Python tạo thành nền tảng của mô hình hóa, phân tích và trực quan hóa thống kê.  

Về mặt dữ liệu, các thư viện này hoạt động liền mạch với các nền tảng phân tích dữ liệu và kỹ thuật dữ liệu khác như Pandas và Spark [thông qua PySpark]

Đối với các tác vụ học máy nâng cao [e. g. học sâu], kiến ​​thức NumPy có thể chuyển nhượng trực tiếp và áp dụng trong các gói phổ biến như TensorFlow và PyTorch

Về mặt trực quan, các thư viện như Matplotlib tích hợp độc đáo với các thư viện bảng điều khiển nâng cao như Bokeh và Plotly

Bằng cách tập trung vào các thư viện Python này và thành thạo các phương pháp và chức năng khác nhau có sẵn, bạn sẽ tiếp tục đạt được các kỹ năng phân tích dữ liệu, mô hình thống kê và học máy cần thiết để trở thành một nhà khoa học dữ liệu xuất sắc

Giới thiệu về tác giả. Tirtha Sarkar là một nhà công nghệ bán dẫn, tác giả khoa học dữ liệu và là tác giả của các gói pydbgen, MLR và doepy. Anh ấy có bằng Ph. D. trong Kỹ thuật điện và M. S. trong Phân tích dữ liệu

Số liệu thống kê có trong thư viện chuẩn Python không?

Tóm tắt. Mô-đun thống kê là một phần của Thư viện chuẩn Python .

Python được sử dụng như thế nào trong thống kê?

Phân tích thống kê dữ liệu đề cập đến việc trích xuất một số kiến ​​thức hữu ích từ dữ liệu mơ hồ hoặc phức tạp. Python được sử dụng rộng rãi để phân tích dữ liệu thống kê bằng cách sử dụng các đối tượng khung dữ liệu như gấu trúc . Phân tích thống kê dữ liệu bao gồm nhập, làm sạch, chuyển đổi, v.v. dữ liệu chuẩn bị cho phân tích.

Python có thể được sử dụng để phân tích thống kê không?

Bạn có thể sử dụng mã Python cho nhiều tác vụ khác nhau, nhưng ba ứng dụng phổ biến bao gồm. Khoa học dữ liệu và phân tích dữ liệu .

Làm cách nào để cài đặt số liệu thống kê trong Python?

2. 1. Sao chép Kho lưu trữ¶ git clone git@github. com. runawayhorse001/statspy. git
2. 2. Cài đặt¶ cd statspy yêu cầu cài đặt pip -r. thiết lập python txt. cài đặt py
2. 3. Gỡ cài đặt¶ pip gỡ cài đặt statspy
2. 4. Test¶ cd statspy/test python test1. py. kiểm tra1. py

Chủ Đề