Hướng dẫn how do you impute categorical data in python? - làm thế nào để bạn áp dụng dữ liệu phân loại trong python?

Giới thiệu

Dữ liệu là nhiên liệu cho các thuật toán học máy..

Trước khi tìm kiếm bất kỳ hiểu biết nào từ dữ liệu, trước tiên chúng tôi phải thực hiện các nhiệm vụ tiền xử lý mà sau đó chỉ cho phép chúng tôi sử dụng dữ liệu đó để quan sát thêm và đào tạo mô hình học máy của chúng tôi.

Thiếu điều chỉnh giá trị là cần thiết để giảm sai lệch và tạo ra các mô hình phù hợp mạnh mẽ. Hầu hết các thuật toán có thể xử lý dữ liệu bị thiếu, do đó bạn cần phải hành động theo một cách nào đó để không để mã của bạn bị sập. Vì vậy, hãy để bắt đầu với các phương pháp để giải quyết vấn đề.

Phương pháp xử lý các giá trị bị thiếu

Ví dụ 1, hãy để có một bộ dữ liệu giả trong đó có ba tính năng độc lập (dự đoán) và một tính năng phụ thuộc (phản hồi)., Let’s have a dummy dataset in which there are three independent features(predictors) and one dependent feature(response).

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Tính năng-1Feature-1 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; tính năng-2 Feature-2 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Tính năng-3Feature-3 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; đầu ra  Output
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; nam& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 23& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 24& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Đúng
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; - - -& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 24& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 25& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Không
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; nữ& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 25& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 26& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Đúng
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; - - -& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 24& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 25& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Không

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; nữ

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 25

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 26If there is a large number of observations in the dataset, where all the classes to be predicted are sufficiently represented in the training data, then try deleting the missing value observations, which would not bring significant change in your feed to your model.

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; namImplement this method in a given dataset, we can delete the entire row which contains missing values(delete row-2).

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 26You can always impute them based on Mode in the case of categorical variables, just make sure you don’t have highly skewed class distributions.

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 27 But in some cases, this strategy can make the data imbalanced wrt classes if there are a huge number of missing values present in our dataset.

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; vâng

Ở đây, chúng tôi có một giá trị còn thiếu trong ROW-2 cho tính năng-1. To implement this method, we replace the missing value by the most frequent value for that particular column, here we replace the missing value by Male since the count of Male is more than Female (Male=2 and Female=1).

Các phương pháp phổ biến được cộng đồng học máy sử dụng để xử lý giá trị còn thiếu cho các biến phân loại trong tập dữ liệu như sau:One smart way of doing this could be training a classifier over your columns with missing values as a dependent variable against other features of your data set and trying to impute based on the newly trained classifier.

1. Xóa các quan sát: & nbsp; nếu có một số lượng lớn các quan sát trong bộ dữ liệu, trong đó tất cả các lớp được dự đoán là đủ trong dữ liệu đào tạo, sau đó thử xóa các quan sát giá trị bị thiếu, điều này sẽ không mang lại sự thay đổi đáng kể trong nguồn cấp dữ liệu của bạn cho mô hình của bạn.

Ví dụ: 1, & nbsp; Triển khai phương thức này trong một bộ dữ liệu nhất định, chúng ta có thể xóa toàn bộ hàng có chứa các giá trị bị thiếu (xóa hàng-2).

2. Thay thế các giá trị bị thiếu bằng giá trị thường xuyên nhất: Bạn luôn có thể áp đặt chúng dựa trên chế độ trong trường hợp các biến phân loại, chỉ cần đảm bảo rằng bạn không có phân phối lớp bị sai lệch cao.

Lưu ý: Nhưng trong một số trường hợp, chiến lược này có thể làm cho các lớp WRT mất cân bằng dữ liệu nếu có một số lượng lớn các giá trị bị thiếu có trong bộ dữ liệu của chúng tôi.

- Nói chung, thay thế các giá trị bị thiếu bằng giá trị trung bình/trung bình/chế độ là một cách thô để xử lý các giá trị bị thiếu. Tùy thuộc vào ngữ cảnh, như nếu biến thể thấp hoặc nếu biến có đòn bẩy thấp so với phản hồi, một xấp xỉ thô như vậy là chấp nhận được và có thể cho kết quả thỏa đáng. Trong trường hợp này, vì bạn đang nói rằng đó là một biến phân loại - bước này có thể không được áp dụng.

Ví dụ: 1, để thực hiện phương pháp này, chúng tôi thay thế giá trị bị thiếu bằng giá trị thường xuyên nhất cho cột cụ thể đó, ở đây chúng tôi thay thế giá trị bị thiếu bởi nam vì số lượng nam nhiều hơn nữ (nam = 2 và nữ = 1 ). Since you are trying to impute missing values, things will be nicer this way as they are not biased and you get the best predictions out of the best model.

3. Phát triển một mô hình để dự đoán các giá trị bị thiếu: Một cách thực hiện thông minh này có thể là đào tạo một trình phân loại trên các cột của bạn với các giá trị bị thiếu như một biến phụ thuộc so với các tính năng khác của tập dữ liệu của bạn và cố gắng áp đặt dựa trên trình phân loại mới được đào tạo.To implement the given strategy, firstly we will consider Feature-2, Feature-3, and Output column for our new classifier means these 3 columns are used as independent features for our new classifier and the Feature-1 considered as a target outcome and note that here we consider only non-missing rows as our train data and observations which is having missing value will become our test data. We have to do the prediction using our model on the test data and after predictions, we have the dataset which is having no missing value.

4. Xóa biến: Nếu có một tập hợp các giá trị bị thiếu đặc biệt lớn hơn, hãy thử loại trừ chính biến để mô hình hóa thêm, nhưng bạn cần đảm bảo rằng nó không có ý nghĩa nhiều để dự đoán biến mục tiêu i.e, tương quan giữa biến bị rơi và biến số Biến mục tiêu là rất thấp hoặc dự phòng. If there are an exceptionally larger set of missing values, try excluding the variable itself for further modeling, but you need to make sure that it is not much significant for predicting the target variable i.e, Correlation between dropped variable and target variable is very low or redundant.

Ví dụ: 1, để thực hiện chiến lược này để xử lý các giá trị bị thiếu, chúng ta phải thả cột hoàn chỉnh chứa các giá trị bị thiếu, vì vậy đối với một bộ dữ liệu nhất định, chúng ta sẽ hoàn toàn bỏ tính năng 1 và chúng ta chỉ sử dụng các tính năng bên trái để dự đoán biến mục tiêu của chúng ta . To implement this strategy to handle the missing values, we have to drop the complete column which contains missing values, so for a given dataset we drop the Feature-1 completely and we use only left features to predict our target variable.

5. Áp dụng các kỹ thuật học máy không giám sát: Trong phương pháp này, chúng tôi sử dụng các kỹ thuật không giám sát như K-MEAN, phân cụm phân cấp, v.v. Cố gắng tạo ra nhiều cụm như không có các tính năng độc lập (sau khi bỏ các cột giá trị bị thiếu), cuối cùng tìm thấy danh mục mà hàng bị thiếu rơi. In this approach, we use unsupervised techniques like K-Means, Hierarchical clustering, etc. The idea is that you can skip those columns which are having missing values and consider all other columns except the target column and try to create as many clusters as no of independent features(after drop missing value columns), finally find the category in which the missing row falls.

Ví dụ: 1, để thực hiện chiến lược này, chúng tôi bỏ cột Tính năng-1 và sau đó sử dụng tính năng-2 và tính năng-3 làm tính năng của chúng tôi cho trình phân loại mới và cuối cùng sau khi hình thành cụm, hãy cố gắng quan sát trong phân cụm bản ghi còn thiếu đang rơi vào và chúng tôi đã sẵn sàng với bộ dữ liệu cuối cùng của chúng tôi để phân tích thêm. To implement this strategy, we drop the Feature-1 column and then use Feature-2 and Feature-3 as our features for the new classifier and then finally after cluster formation, try to observe in which cluster the missing record is falling in and we are ready with our final dataset for further analysis.

Thực hiện trong Python

& nbsp; nhập các phụ thuộc cần thiết.

Hướng dẫn how do you impute categorical data in python? - làm thế nào để bạn áp dụng dữ liệu phân loại trong python?

& nbsp; tải và đọc bộ dữ liệu.

Hướng dẫn how do you impute categorical data in python? - làm thế nào để bạn áp dụng dữ liệu phân loại trong python?

& nbsp; Tìm số lượng giá trị bị thiếu trên mỗi cột.

Hướng dẫn how do you impute categorical data in python? - làm thế nào để bạn áp dụng dữ liệu phân loại trong python?

& nbsp; Áp dụng Chiến lược-1 (xóa các quan sát bị thiếu).

Hướng dẫn how do you impute categorical data in python? - làm thế nào để bạn áp dụng dữ liệu phân loại trong python?

Áp dụng Chiến lược-2 (thay thế các giá trị bị thiếu bằng giá trị thường xuyên nhất).

Hướng dẫn how do you impute categorical data in python? - làm thế nào để bạn áp dụng dữ liệu phân loại trong python?

Áp dụng Chiến lược-3 (xóa biến có các giá trị bị thiếu).

Hướng dẫn how do you impute categorical data in python? - làm thế nào để bạn áp dụng dữ liệu phân loại trong python?

Áp dụng chiến lược-4 (phát triển một mô hình để dự đoán các giá trị bị thiếu).Develop a model to predict missing values).

Đối với chiến lược này, trước tiên chúng tôi đã mã hóa các cột phân loại độc lập của chúng tôi bằng cách sử dụng bộ mã hóa nóng một bộ mã hóa nóng và các cột phân loại phụ thuộc bằng cách sử dụng bộ mã hóa nhãn hiệu.

- Đọc và tải bộ dữ liệu được mã hóa.


- Ghi lại hồ sơ làm dữ liệu thử nghiệm của chúng tôi.

-Tạo hồ sơ không bỏ lỡ như dữ liệu đào tạo của chúng tôi.

- Các biến phụ thuộc và độc lập riêng biệt.

Hướng dẫn how do you impute categorical data in python? - làm thế nào để bạn áp dụng dữ liệu phân loại trong python?

- Phù hợp với mô hình hồi quy logistic của chúng tôi.

Hướng dẫn how do you impute categorical data in python? - làm thế nào để bạn áp dụng dữ liệu phân loại trong python?

- Dự đoán lớp học cho các hồ sơ bị thiếu.

Hướng dẫn how do you impute categorical data in python? - làm thế nào để bạn áp dụng dữ liệu phân loại trong python?

Điều này hoàn thành phần triển khai của chúng tôi!

Ghi chú kết thúc

Cảm ơn bạn đã đọc! & NBSP;

Bài viết này giới thiệu cho bạn các cách khác nhau để giải quyết vấn đề thiếu giá trị cho các biến phân loại.

Nếu bạn thích điều này và muốn biết thêm, hãy truy cập các bài viết khác của tôi về khoa học dữ liệu và học máy bằng cách nhấp vào liên kết

Xin vui lòng liên hệ với tôi trên LinkedIn, email.

Một cái gì đó không được đề cập hoặc muốn chia sẻ suy nghĩ của bạn? Hãy bình luận bên dưới và tôi sẽ liên hệ lại với bạn.

Cho đến khi ở nhà, giữ an toàn để ngăn chặn sự lây lan của Covid-19, và tiếp tục học hỏi! COVID-19, and Keep Learning!

Thông tin về các Tác giả

Chirag Gidel

Hiện tại, tôi theo đuổi Cử nhân Công nghệ (B.Tech) về Khoa học và Kỹ thuật Máy tính của Viện Công nghệ Ấn Độ Jodhpur (IITJ). Tôi rất nhiệt tình về học máy, học sâu và trí tuệ nhân tạo. the Indian Institute of Technology Jodhpur(IITJ). I am very enthusiastic about Machine learning, Deep Learning, and Artificial Intelligence.

Các phương tiện truyền thông được hiển thị trong bài viết này không thuộc sở hữu của Analytics Vidhya và được sử dụng theo quyết định của tác giả.

Phương pháp cắt bỏ nào chúng ta nên sử dụng cho một biến phân loại?

Thiếu dấu hiệu chỉ báo Phương pháp này có thể được sử dụng cho cả biến số và phân loại. This method can be used for both numerical and categorical variables.

Chuột có thể áp đặt dữ liệu phân loại không?

Thuật toán chuột có thể áp đặt các hỗn hợp của dữ liệu phân loại liên tục, nhị phân, không theo thứ tự và được đặt hàng.Ngoài ra, chuột có thể áp đặt dữ liệu hai cấp liên tục và duy trì tính nhất quán giữa các lần cắt bằng phương pháp cắt bỏ thụ động.. In addition, MICE can impute continuous two-level data, and maintain consistency between imputations by means of passive imputation.

Làm thế nào để Python quản lý dữ liệu phân loại?

Chiến lược cơ bản là chuyển đổi từng giá trị danh mục thành một cột mới và gán giá trị 1 hoặc 0 (true/false) thành cột.Điều này có lợi ích là không trọng số một giá trị không đúng.Có nhiều thư viện ngoài kia hỗ trợ mã hóa một lần nóng nhưng cái đơn giản nhất là sử dụng gấu trúc '.phương thức get_dummies ().convert each category value into a new column and assign a 1 or 0 (True/False) value to the column. This has the benefit of not weighting a value improperly. There are many libraries out there that support one-hot encoding but the simplest one is using pandas ' . get_dummies() method.