nhập gấu trúc dưới dạng pd
dataVal = [[10,20,30,40,50,60,70],
[10,10,40,40,50,60,70],
[10,20,30,50,50,60,80]]
khung dữ liệu = pd. Khung dữ liệu [dữ liệu = dataVal];
skewValue = khung dữ liệu. nghiêng [trục = 1]
in ["Khung dữ liệu. "]
in [khung dữ liệu]
print["Xiên. "]
in [skewValue]
Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách tìm độ lệch của dữ liệu bằng Python. Chúng ta có thể dễ dàng tìm thấy độ lệch của bất kỳ dữ liệu nào trong Python bằng thư viện sau đây là Scipy. số liệu thống kê
Tìm độ lệch của dữ liệu trong Python bằng Scipy
chúng tôi chỉ cần sử dụng thư viện này bằng cách
from Scipy.stats import skew
Skewness dựa trên các loại của nó
Có ba loại độ lệch
- Phân phối chuẩn. Trong trường hợp này, độ lệch luôn bằng không
Độ lệch = 0
- Phân phối lệch dương. Trong trường hợp này, Phân phối lệch phải có đuôi dài bên phải, đó là lý do tại sao phân phối này còn được gọi là phân phối lệch phải. lý do đằng sau nó, trong giá trị của chế độ này là cao nhất và trung bình là nhỏ nhất dẫn đến đỉnh bên phải
Skessness >o
- Phân phối sai lệch tiêu cực. Trong trường hợp này, phân phối lệch âm có đuôi trái dài, đó là lý do tại sao phân phối này còn được gọi là phân phối lệch trái. lý do đằng sau nó, trong giá trị của chế độ này là nhỏ nhất và trung bình là cao nhất chỉ cần đảo ngược sang lệch phải dẫn đến đỉnh bên trái
độ lệch Trung bình > Trung bình
Dữ liệu lệch trái Hình [2]
Đối với phân phối có độ lệch phải hoặc độ lệch dương, biểu đồ sẽ giống như Hình [3] ở đây, phần duy nhất bên phải của phân phối thuôn nhọn với đỉnh dịch chuyển về phía bên trái. Đối với dữ liệu lệch phải, Mean > Median > Mode
Dữ liệu lệch phải Hình [3]. 2. phương pháp thống kê
Bây giờ, phương pháp chúng ta nghiên cứu ở trên là phương pháp quan sát. Chúng tôi cũng có thể tính toán độ lệch của dữ liệu bằng cách sử dụng số liệu thống kê. Vì vậy, công thức tính độ lệch được đưa ra dưới đây
Công thức xiên
Giá trị độ lệch có thể chấp nhận được coi là nằm trong khoảng từ -3 đến +3. Nếu giá trị của độ lệch nằm ở hai bên của phạm vi này thì điều đó cho thấy độ lệch phải được cố định
Hầu hết các mô hình thống kê không hoạt động khi dữ liệu bị sai lệch. Lý do đằng sau điều này là các đầu thuôn nhọn hoặc vùng đuôi của các phân phối dữ liệu bị lệch là các giá trị ngoại lệ trong dữ liệu và chúng tôi biết rằng các giá trị ngoại lệ có thể làm hỏng nghiêm trọng hiệu suất của một mô hình thống kê. Ví dụ tốt nhất về điều này là các mô hình hồi quy cho thấy kết quả xấu khi được đào tạo trên dữ liệu sai lệch
Làm thế nào để chúng tôi khắc phục sự sai lệch này?Bây giờ, như chúng ta biết rằng độ lệch có hại cho dữ liệu của chúng ta và nhiều thuật toán học máy thích hoặc hoạt động tốt hơn khi dữ liệu số có phân phối bình thường, chúng ta cần một cách để loại bỏ độ lệch này, để làm như vậy trong python, các phương pháp được sử dụng thường xuyên nhất là và. Cả hai phương pháp này đều được sử dụng để có phân phối chuẩn hoặc giống như Gaussian. Bây giờ chúng ta hãy xem cách sử dụng các phương pháp này với một ví dụ
Đối với ví dụ bên dưới, tập dữ liệu được xem xét là tập dữ liệu Thẻ tín dụng châu Âu mà bạn có thể tìm thấy trên Kaggle và tôi đã xem xét một vài cột ngẫu nhiên có độ lệch để thực hiện chuyển đổi. Mã để thực hiện các máy biến áp như sau
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
import pandas as pd
from sklearn.preprocessing import PowerTransformer, QuantileTransformer
cols1 = ["V1", "V3", "V4"]
def test_transformers[columns]:
pt = PowerTransformer[]
qt = QuantileTransformer[n_quantiles=500, output_distribution='normal']
fig = plt.figure[figsize=[20,30]]
j = 1
for i in columns:
array = np.array[df[i]].reshape[-1, 1]
y = pt.fit_transform[array]
x = qt.fit_transform[array]
plt.subplot[3,3,j]
sns.histplot[array, bins = 50, kde = True]
plt.title[f"Original Distribution for {i}"]
plt.subplot[3,3,j+1]
sns.histplot[x, bins = 50, kde = True]
plt.title[f"Quantile Transform for {i}"]
plt.subplot[3,3,j+2]
sns.histplot[y, bins = 50, kde = True]
plt.title[f"Power Transform for {i}"]
j += 3
test_transformers[cols1]
PowerTransformer và QuantileTransformer được áp dụng trên Dữ liệu
Có thể thấy rằng QuantileTransformer đã hoạt động tốt hơn PowerTransformer về mặt chuyển đổi phân phối sai lệch thành phân phối bình thường, nhưng bạn phải luôn chọn phương pháp phù hợp nhất với dữ liệu của mình. Người ta quan sát thấy rằng QuantileTransformer hoạt động tốt hơn trên các bộ dữ liệu lớn hơn so với PowerTransformer
Các phương pháp khác cũng có thể được sử dụng để giảm độ lệch. Giống như đối với dữ liệu vuông, khối hoặc dữ liệu lệch trái, có thể thực hiện các phép biến đổi công suất cao hơn và đối với dữ liệu lệch phải, chúng ta có thể sử dụng các phép biến đổi Căn bậc hai, Căn bậc ba hoặc Nhật ký. Để biết thêm về những điều này, bạn có thể tham khảo bài viết này
Phần kết luậnBây giờ chúng ta đã biết độ lệch là gì. Các loại độ lệch là gì? . Trong trường hợp bạn có bất kỳ nghi ngờ hoặc đề xuất nào, hãy trả lời trong phần bình luận. Vui lòng liên hệ với tôi qua thư và kết nối với tôi qua Linkedin. Tôi hy vọng bạn thích đọc blog này. học tập vui vẻ