Scikit Learn - Biểu diễn dữ liệu

Như chúng ta biết rằng học máy là để tạo mô hình từ dữ liệu. Với mục đích này, trước tiên máy tính phải hiểu dữ liệu. Tiếp theo, chúng ta sẽ thảo luận về các cách khác nhau để biểu diễn dữ liệu để máy tính có thể hiểu được -

Dữ liệu dưới dạng bảng

Cách tốt nhất để biểu diễn dữ liệu trong Scikit-learning là ở dạng bảng. Một bảng đại diện cho lưới dữ liệu 2-D trong đó các hàng đại diện cho các phần tử riêng lẻ của tập dữ liệu và các cột đại diện cho các đại lượng liên quan đến các phần tử riêng lẻ đó.

Thí dụ

Với ví dụ dưới đây, chúng ta có thể tải xuống iris dataset ở dạng Pandas DataFrame với sự trợ giúp của python seaborn thư viện.

import seaborn as sns
iris = sns.load_dataset('iris')
iris.head()

Đầu ra

sepal_length sepal_width petal_length petal_width  species
0        5.1      3.5         1.4             0.2   setosa
1        4.9      3.0         1.4             0.2   setosa
2        4.7      3.2         1.3             0.2   setosa
3        4.6      3.1         1.5             0.2   setosa
4        5.0      3.6         1.4             0.2   setosa

Từ kết quả trên, chúng ta có thể thấy rằng mỗi hàng dữ liệu đại diện cho một bông hoa được quan sát duy nhất và số hàng biểu thị tổng số bông hoa trong tập dữ liệu. Nói chung, chúng tôi coi các hàng của ma trận là mẫu.

Mặt khác, mỗi cột dữ liệu đại diện cho một thông tin định lượng mô tả mỗi mẫu. Nói chung, chúng tôi coi các cột của ma trận là các đặc trưng.

Dữ liệu dưới dạng Ma trận tính năng

Ma trận tính năng có thể được định nghĩa là bố cục bảng mà thông tin có thể được coi là ma trận 2-D. Nó được lưu trữ trong một biến có tênXvà giả định là hai chiều với shape [n_samples, n_features]. Hầu hết, nó được chứa trong một mảng NumPy hoặc một Pandas DataFrame. Như đã nói trước đó, các mẫu luôn đại diện cho các đối tượng riêng lẻ được mô tả bởi tập dữ liệu và các tính năng đại diện cho các quan sát riêng biệt mô tả từng mẫu theo cách định lượng.

Dữ liệu dưới dạng mảng Mục tiêu

Cùng với ma trận Tính năng, ký hiệu là X, chúng ta cũng có mảng đích. Nó còn được gọi là nhãn. Nó được ký hiệu là y. Nhãn hoặc mảng đích thường là một chiều có độ dài n_samples. Nó thường được chứa trong NumPyarray hoặc gấu trúc Series. Mảng đích có thể có cả giá trị, giá trị số liên tục và giá trị rời rạc.

Mảng mục tiêu khác với các cột tính năng như thế nào?

Chúng ta có thể phân biệt cả hai bằng một điểm rằng mảng đích thường là đại lượng mà chúng ta muốn dự đoán từ dữ liệu, tức là theo thuật ngữ thống kê, nó là biến phụ thuộc.

Thí dụ

Trong ví dụ dưới đây, từ tập dữ liệu mống mắt, chúng tôi dự đoán loài hoa dựa trên các phép đo khác. Trong trường hợp này, cột Loài sẽ được coi là đối tượng địa lý.

import seaborn as sns
iris = sns.load_dataset('iris')
%matplotlib inline
import seaborn as sns; sns.set()
sns.pairplot(iris, hue='species', height=3);

Đầu ra

X_iris = iris.drop('species', axis=1)
X_iris.shape
y_iris = iris['species']
y_iris.shape

Đầu ra

(150,4)
(150,)