Xử lý, phân tích và trực quan hóa dữ liệu

Xử lý, phân tích và trực quan hóa dữ liệu

Rate this post

Hôm nay trong Hướng dẫn học máy Python này , chúng ta sẽ thảo luận về Xử lý, Phân tích và Trực quan hóa dữ liệu. Hơn nữa, trong phần Tiền xử lý dữ liệu trong học máy Python này, chúng ta sẽ xem xét việc thay đổi tỷ lệ, chuẩn hóa, chuẩn hóa và mã hóa dữ liệu. Ngoài ra, chúng ta sẽ thấy các bước khác nhau trong Kỹ thuật phân tích dữ liệu, trực quan hóa và  tiền xử lý dữ liệu Python.

Các bài viết liên quan:

Vì vậy, hãy bắt đầu Học máy với Xử lý trước dữ liệu Python.

Xử lý, phân tích và trực quan hóa dữ liệu

Tiền xử lý dữ liệu trong Học máy Python

Các thuật toán Máy học không hoạt động tốt với việc xử lý dữ liệu thô. Trước khi chúng tôi có thể cung cấp dữ liệu như vậy cho một thuật toán ML, chúng tôi phải xử lý trước nó. Nói cách khác, chúng ta phải áp dụng một số phép biến đổi trên đó. Với xử lý trước dữ liệu, chúng tôi chuyển đổi dữ liệu thô thành tập dữ liệu sạch.

Xử lý, phân tích và trực quan hóa dữ liệu

Một số mô hình ML cần thông tin ở định dạng được chỉ định. Ví dụ, thuật toán Rừng ngẫu nhiên không nhận giá trị rỗng. Để xử lý trước dữ liệu, chúng tôi sẽ sử dụng thư viện scikit-learning hoặc sklearn trong hướng dẫn này.

Thay đổi quy mô dữ liệu

Đối với dữ liệu có các thuộc tính của các tỷ lệ khác nhau, chúng ta có thể chia tỷ lệ các thuộc tính để có cùng một tỷ lệ. Chúng tôi chia tỷ lệ các thuộc tính thành phạm vi từ 0 đến 1 và gọi nó là chuẩn hóa. Chúng tôi sử dụng lớp MinMaxScaler từ scikit-learning. Hãy lấy một ví dụ.

import pandas, scipy, numpy
from sklearn.preprocessing import MinMaxScaler
df=pandas.read_csv( 'http://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-red.csv ',sep=';')
array=df.values
#Separating data into input and output components
x=array[:,0:8]
y=array[:,8]
scaler=MinMaxScaler(feature_range=(0,1))
rescaledX=scaler.fit_transform(x)
numpy.set_printoptions(precision=3) #Setting precision for the output
rescaledX[0:5,:]
Xử lý, phân tích và trực quan hóa dữ liệu

Điều này cung cấp cho chúng tôi các giá trị từ 0 đến 1. Dữ liệu thay đổi tỷ lệ chứng minh việc sử dụng với mạng nơ-ron, thuật toán tối ưu hóa và những mạng sử dụng các phép đo khoảng cách như k-láng giềng gần nhất và đầu vào trọng số như hồi quy.

Standardizing dữ liệu

Với việc chuẩn hóa, chúng ta có thể lấy các thuộc tính có phân phối Gaussian và các phương tiện và độ lệch chuẩn khác nhau và chuyển chúng thành phân phối Gaussian chuẩn với giá trị trung bình là 0 và độ lệch chuẩn là 1. Đối với điều này, chúng tôi sử dụng lớp StandardScaler. Hãy lấy một ví dụ.

from sklearn.preprocessing import StandardScaler
scaler=StandardScaler().fit(x)
rescaledX=scaler.transform(x)
rescaledX[0:5,:]
Xử lý, phân tích và trực quan hóa dữ liệu

Normalizing dữ liệu

Trong tác vụ này, chúng tôi bán lại mỗi quan sát thành độ dài 1 (một đơn vị chuẩn). Đối với điều này, chúng tôi sử dụng lớp Normalizer. Hãy lấy một ví dụ.

from sklearn.preprocessing import Normalizer
scaler=Normalizer().fit(x)
normalizedX=scaler.transform(x)
normalizedX[0:5,:]
Xử lý, phân tích và trực quan hóa dữ liệu

Binarizing dữ liệu

Sử dụng ngưỡng nhị phân, có thể chuyển đổi dữ liệu của chúng tôi bằng cách đánh dấu các giá trị trên ngưỡng đó 1 và các giá trị bằng hoặc thấp hơn ngưỡng đó, 0. Với mục đích này, chúng tôi sử dụng lớp Binarizer. Hãy lấy một ví dụ.

from sklearn.preprocessing import Binarizer
binarizer=Binarizer(threshold=0.0).fit(x)
binaryX=binarizer.transform(x)
binaryX[0:5,:]

Điều này đánh dấu 0 trên tất cả các giá trị bằng hoặc nhỏ hơn 0 và đánh dấu 1 trên các giá trị còn lại. Khi bạn muốn biến xác suất thành giá trị rõ ràng, chức năng này rất hữu ích.

Xử lý, phân tích và trực quan hóa dữ liệu

Loại bỏ Mean

Chúng tôi có thể xóa giá trị trung bình khỏi mỗi đối tượng địa lý để căn giữa nó bằng 0.

from sklearn.preprocessing import scale
data_standardized=scale(df)
data_standardized.mean(axis=0)

Hot Encoding

Khi xử lý các giá trị số ít và rải rác, chúng ta có thể không cần lưu trữ các giá trị này. Sau đó, chúng ta có thể thực hiện một mã hóa nóng. Với k giá trị phân biệt, chúng ta có thể biến đổi đối tượng địa lý thành một vectơ k-chiều với một giá trị là 1 và 0 là các giá trị còn lại.

from sklearn.preprocessing import OneHotEncoder
encoder=OneHotEncoder()
encoder.fit([[0,1,6,2],
[1,5,3,5],
[2,4,2,7],
[1,0,4,2]
])

Label Encoding

Một số nhãn có thể là từ hoặc số. Thông thường, dữ liệu đào tạo được gắn nhãn bằng các từ để làm cho nó có thể đọc được. Mã hóa nhãn chuyển đổi các nhãn từ thành số để các thuật toán hoạt động trên chúng. Hãy lấy một ví dụ.

from sklearn.preprocessing import LabelEncoder
label_encoder=LabelEncoder()
input_classes=['Havells','Philips','Syska','Eveready','Lloyd']
label_encoder.fit(input_classes)
for i,item in enumerate(label_encoder.classes_):
print(item,'-->',i)
labels=['Lloyd','Syska','Philips']
label_encoder.transform(labels)
label_encoder.inverse_transform(label_encoder.transform(labels))

Phân tích dữ liệu trong Machine learning Python

Giả sử rằng bạn đã tải tập dữ liệu của mình bằng gấu trúc (nếu bạn chưa tải, hãy tham khảo Hướng dẫn về gấu trúc Python để tìm hiểu cách thực hiện), hãy cùng tìm hiểu thêm về dữ liệu của chúng tôi.

Mô tả tập dữ liệu

Sử dụng phương thức description (), chúng ta có thể tìm ra các tham số như count, mean, std và max.

df.describe()
Xử lý, phân tích và trực quan hóa dữ liệu

Hình dạng của tập dữ liệu

Đơn giản, shape tuple sẽ cung cấp cho chúng ta các kích thước của tập dữ liệu.

df.shape

Trích xuất dữ liệu từ tập dữ liệu

Bây giờ nếu chúng ta chỉ muốn mười hàng đầu tiên từ tập dữ liệu, chúng ta có thể gọi phương thức head () trên đó. Đối với điều này, chúng ta có thể chuyển nó cho đối số 10.

df.head(10)
Xử lý, phân tích và trực quan hóa dữ liệu

Thực hiện các hoạt động xung quanh một biến

Chúng ta có thể thực hiện các thao tác nhất định trên một biến. Ví dụ, ở đây, chúng tôi trình bày cách nhóm dữ liệu trên một biến. Đối với điều này, chúng tôi sử dụng hàm groupby ().

df.groupby('quality').size()
Xử lý, phân tích và trực quan hóa dữ liệu

Trực quan hóa các dữ liệu đơn biến trong Python Machine Learning

Cuối cùng, khi chúng ta muốn hình dung dữ liệu dưới dạng các âm mưu và biểu đồ để tìm hiểu thêm về nó, chúng ta có thể sử dụng gấu trúc với Matplotlib. Chúng ta sẽ thảo luận về hai loại âm mưu – đơn biến và đa biến.

Một biểu đồ đơn biến cho thấy chúng ta chỉ đang kiểm tra một biến.

Biểu đồ

Vì biểu đồ nhóm dữ liệu thành các thùng và cung cấp cho chúng tôi ý tưởng về số lượng quan sát mà mỗi thùng chứa, đây là một cách tốt để trực quan hóa dữ liệu cho ML. Hình dạng của các thùng cho chúng ta biết liệu một thuộc tính là Gaussian, lệch hay có phân phối hàm mũ. Nó cũng gợi ý cho chúng ta về những ngoại lệ.

import matplotlib.pyplot as plt
df.hist()
plt.show()
Xử lý, phân tích và trực quan hóa dữ liệu

Có lẽ các thuộc tính ‘tổng lưu huỳnh điôxít’, ‘điôxít lưu huỳnh tự do’ và ‘đường dư’ có phân bố theo cấp số nhân. Các thuộc tính “mật độ”, “pH”, “độ axit cố định” và “Độ axit dễ bay hơi” có phân bố Gaussian hoặc gần như Gaussian.

Hãy thảo luận về Thống kê mô tả Python

Density

Biểu đồ mật độ dường như là một biểu đồ được trừu tượng hóa. Mỗi thùng có một đường cong mịn được vẽ qua đỉnh của thùng. Đôi mắt của bạn có thể được nghỉ ngơi ngay bây giờ.

df.plot(kind='density',subplots=True,sharex=False)
plt.show()
Xử lý, phân tích và trực quan hóa dữ liệu
Xử lý, phân tích và trực quan hóa dữ liệu

Điều này cho chúng ta một ý tưởng rõ ràng hơn.

Box và Whisker Plots

Biểu đồ hộp tóm tắt cách phân phối từng thuộc tính. Nó cũng vẽ một đường cho trung vị và một hộp xung quanh tỷ lệ phần trăm thứ 25 và 75. Râu cho chúng ta biết dữ liệu được lan truyền như thế nào và các dấu chấm bên ngoài râu cho chúng ta biết các giá trị ngoại lệ của ứng viên. Hãy vẽ biểu đồ này cho tập dữ liệu của chúng tôi.

df.plot(kind='box',subplots=True,sharex=False,sharey=False)
Xử lý, phân tích và trực quan hóa dữ liệu

Ở đây, các thuộc tính như ‘tổng lưu huỳnh điôxít’, ‘sunfat’ và ‘đường dư’ xuất hiện lệch về các giá trị nhỏ hơn.

Trực quan hóa các lô dữ liệu đa biến trong Python Machine Learning

Phân tích đa biến kiểm tra nhiều hơn hai biến. Đối với hai biến, chúng tôi gọi nó là hai biến.

Plot ma trận tương quan

Biểu đồ như vậy biểu thị những thay đổi giữa hai biến số có liên quan như thế nào. Hai biến số thay đổi cùng chiều có tương quan thuận. Sự thay đổi theo các hướng trái ngược nhau ngụ ý mối tương quan tiêu cực. Hãy vẽ một ma trận tương quan.

correlations=df.corr()
fig=plt.figure()
ax=fig.add_subplot(111)
cax=ax.matshow(correlations,vmin=-1,vmax=1)
fig.colorbar(cax)
ticks=numpy.arange(0,9,1)
ax.set_xticks(ticks)
ax.set_yticks(ticks)
plt.show()
Xử lý, phân tích và trực quan hóa dữ liệu

Ma trận này đối xứng xung quanh một đường chéo bên trái.

Ma trận Scatterplot

Ma trận Scatterplot mô tả hai biến liên quan như thế nào dưới dạng các dấu chấm trong hai chiều. Việc vẽ tất cả các biểu đồ phân tán cho một dữ liệu cùng một nơi dẫn đến một ma trận biểu đồ phân tán. Những biểu đồ này có thể phát hiện ra các mối quan hệ có cấu trúc giữa các biến. Hãy lấy một ví dụ.

pandas.plotting.scatter_matrix(df)
Xử lý, phân tích và trực quan hóa dữ liệu

Điều này cũng đối xứng. Đường chéo bên trái có biểu đồ của các thuộc tính vì nó không có ý nghĩa gì khi vẽ biểu đồ phân tán của một thuộc tính với chính nó.

Vì vậy, tất cả đều nằm trong Quá trình tiền xử lý, hình ảnh hóa và phân tích dữ liệu học máy Python. Hy vọng bạn thích lời giải thích của chúng tôi

Kết luận

Do đó, trong Hướng dẫn học máy Python này, chúng ta đã thảo luận về Học máy với Xử lý trước dữ liệu Python. Ngoài ra, chúng tôi đã thảo luận về Phân tích dữ liệu và Hình ảnh hóa dữ liệu cho Học máy Python. Chúng tôi đã thấy thay đổi tỷ lệ, chuẩn hóa, mã hóa nhị phân và chuẩn hóa dữ liệu trong Xử lý trước dữ liệu học máy Python. Tuy nhiên, nếu bạn có bất kỳ nghi ngờ nào về Xử lý trước dữ liệu, hãy hỏi trong tab nhận xét.

Leave a Reply