Python xử lý dữ liệu phân loại như thế nào?

Xử lý các tính năng phân loại là một điều phổ biến để xử lý trước khi xây dựng các mô hình học máy. Có nhiều kỹ thuật để xử lý dữ liệu phân loại mà tôi sẽ thảo luận trong bài viết này với những ưu điểm và nhược điểm của chúng

  • Bởi Jayita Bhattacharyya

Xử lý các tính năng phân loại là một điều phổ biến để xử lý trước khi xây dựng các mô hình học máy. Trong kịch bản khoa học dữ liệu thực tế, điều đó có nghĩa là tập dữ liệu có một thuộc tính được lưu trữ dưới dạng văn bản, chẳng hạn như các ngày trong tuần [Thứ Hai, Thứ Ba,. , Chủ Nhật], thời gian, màu sắc [Đỏ, Xanh,…], hoặc địa danh, v.v.  

Các tính năng phân loại có rất nhiều điều để nói về tập dữ liệu, do đó, nó nên được chuyển đổi thành số để biến nó thành định dạng có thể đọc được bằng máy. Chỉ tập trung vào các biến số trong tập dữ liệu là không đủ để có độ chính xác cao. Thông thường các biến phân loại được chứng minh là yếu tố quan trọng nhất và do đó xác định chúng để phân tích thêm. Hầu hết các thuật toán học máy không hỗ trợ dữ liệu phân loại, chỉ một số thuật toán như 'CatBoost' hỗ trợ.  

Có nhiều kỹ thuật để xử lý dữ liệu phân loại mà tôi sẽ thảo luận trong bài viết này với những ưu điểm và nhược điểm của chúng.  

TUYỆT VỜI

Đăng ký hàng tuần của bạn về những gì đang xảy ra trong công nghệ mới nổi

E-mail

Đăng ký

Xác định biến phân loại [loại]

Hai loại tính năng phân loại chính là

  • Danh nghĩa – Đây là những biến không liên quan đến nhau theo bất kỳ thứ tự nào, chẳng hạn như màu sắc [đen, xanh dương, xanh lá cây]
  • Thứ tự – Đây là những biến có thể tìm thấy một thứ tự nhất định giữa chúng, chẳng hạn như điểm của học sinh [A, B, C, D, Fail]

Tập dữ liệu tôi sẽ làm việc với là. Bộ dữ liệu giá nhà ở Melbourne từ Kaggle https. //www. kaggle. com/dansbecker/melbourne-housing-snapshot/home?select=melb_data. csv

Hãy khám phá bộ dữ liệu

import pandas as pd
df = pd.read_csv['/content/drive/My Drive/melb_data.csv']
df.head[]

Tập dữ liệu chứa 13580 hàng và 21 cột.

Hãy lấy dữ liệu phân loại ra khỏi dữ liệu huấn luyện và in danh sách. Đối tượng dtype cho biết một cột có văn bản

s = [df.dtypes == 'object']
object_cols = list[s[s].index]
print["Categorical variables:"]
print[object_cols]

s = [df.dtypes == 'object']
object_cols = list[s[s].index]
print["Categorical variables:"]
print[object_cols]
2

Để đơn giản, tôi chỉ sử dụng 3 cột phân loại để minh họa các kỹ thuật mã hóa.  

features = df[['Type','Method','Regionname']]
features.head[]

Xử lý biến phân loại

Thay thế bằng chức năng bản đồ

Đây có thể là một cách tiếp cận rất cơ bản để thay thế thủ công các giá trị phân loại bằng các giá trị tùy chỉnh

mapping = {'h':1,
           'u':2,
           't':3
          }
features['type'] = features.Type.map[mapping] 
features.type.value_counts[]

ĐẦU RA

1    9449
2    3017
3    1114
Name: type, dtype: int64

Đây không phải là một cách tiếp cận tốt khi nói đến các danh mục lớn

mã hóa nhãn

Mã hóa nhãn có thể đánh số duy nhất các danh mục khác nhau từ 0 đến n-1. Do đó còn được gọi là mã hóa số nguyên. Lớp LabelEncoder từ thư viện scikit-learning được sử dụng cho mục đích này.  

Trước khi mã hóa nhãn

s = [df.dtypes == 'object']
object_cols = list[s[s].index]
print["Categorical variables:"]
print[object_cols]
3

Southern Metropolitan         4695
Northern Metropolitan         3890
Western Metropolitan          2948
Eastern Metropolitan          1471
South-Eastern Metropolitan     450
Eastern Victoria                53
Northern Victoria               41
Western Victoria                32
Name: Regionname, dtype: int64

Mã hóa sau nhãn

________số 8

fit_transform[y] – khớp với bộ mã hóa nhãn và sau đó trả về các nhãn đã mã hóa

LabelEncoder không thể xử lý các giá trị bị thiếu nên điều quan trọng là phải gán chúng. Có thể sử dụng LabelEncoder để lưu trữ các giá trị sử dụng ít dung lượng đĩa hơn. Điều này rất dễ sử dụng và hoạt động tốt trên các thuật toán dựa trên cây. Nó không thể hoạt động cho các mô hình tuyến tính, SVM hoặc mạng thần kinh vì dữ liệu của chúng cần được chuẩn hóa

Một mã hóa nóng

Một mã hóa nóng là mã hóa nhị phân được áp dụng cho các giá trị phân loại. Để tăng hiệu suất, trước tiên, người ta cũng có thể thực hiện mã hóa nhãn, sau đó các biến số nguyên đó thành giá trị nhị phân sẽ trở thành dạng máy đọc được mong muốn nhất

Pandas get_dummies[] chuyển đổi các biến phân loại thành biến giả/chỉ báo

Trước OHE

features.Method.value_counts[]
S     9022
SP    1703
PI    1564
VB    1199
SA      92
Name: Method, dtype: int64

Sau OHE

s = [df.dtypes == 'object']
object_cols = list[s[s].index]
print["Categorical variables:"]
print[object_cols]
0

Một mã hóa nóng khắc phục những hạn chế của mã hóa nhãn và có thể được sử dụng trong cả thuật toán học máy dựa trên cây và không dựa trên cây. Nhược điểm là đối với cardinality cao, không gian tính năng thực sự có thể bùng nổ nhanh chóng. Các biến nhị phân thường được gọi là “biến giả” trong thống kê

Bộ phân loại nhãn

Scikit-learning cũng hỗ trợ mã hóa nhị phân bằng cách sử dụng LabelBinarizer. Chúng tôi sử dụng một quy trình tương tự như trên để chuyển đổi dữ liệu cho quá trình tạo DataFrame của gấu trúc

s = [df.dtypes == 'object']
object_cols = list[s[s].index]
print["Categorical variables:"]
print[object_cols]
1

Đếm/Mã Hóa Tần Số

Một cách khác để đề cập đến các biến có vô số danh mục là gọi chúng là các biến có số lượng thẻ cao. Nếu chúng tôi có các biến phân loại chứa nhiều nhãn hoặc số lượng thẻ cao, thì bằng cách sử dụng mã hóa một lần nóng, chúng tôi sẽ mở rộng đáng kể không gian tính năng. Thay thế các biến phân loại bằng tần suất của chúng, đây là số lần mỗi nhãn xuất hiện trong tập dữ liệu.  

Trước khi mã hóa

s = [df.dtypes == 'object']
object_cols = list[s[s].index]
print["Categorical variables:"]
print[object_cols]
0

Sau khi mã hóa

s = [df.dtypes == 'object']
object_cols = list[s[s].index]
print["Categorical variables:"]
print[object_cols]
1

Nó rất đơn giản để thực hiện và không làm tăng không gian chiều của tính năng. Nhưng nếu một số nhãn có cùng số lượng, thì chúng sẽ được thay thế bằng cùng một số lượng và chúng sẽ mất một số thông tin có giá trị. Thêm một số số tùy ý và do đó có trọng số cho các nhãn khác nhau, có thể không liên quan đến khả năng dự đoán của chúng

Phần kết luận

Có nhiều cách khác mà các biến phân loại có thể được thay đổi thành số Tôi đã thảo luận về một số cách quan trọng và thường được sử dụng. Xử lý các biến phân loại là một bước quan trọng đối với kỹ thuật tính năng. Các biến mới có thể được hình thành bởi các biến phân loại và hiểu rõ hơn về tập dữ liệu.  

Mã hoàn chỉnh của triển khai trên có sẵn trong kho lưu trữ GitHub của AIM. Vui lòng truy cập liên kết này để tìm sổ ghi chép của các mã trên

Nhiều câu chuyện AIM tuyệt vời hơn

Cơn khát gián điệp vô độ của Trung Quốc và Chiến thuật 'Nghìn hạt cát'

Tình trạng AI ở Ấn Độ 2022

JioCinema có vẻ sẽ thống trị không gian phát trực tiếp thể thao

Yoshua cho biết dữ liệu thưa thớt là một vấn đề [nhưng không thực sự]

ChatGPT rất tuyệt, nhưng việc cạnh tranh với Google cần nhiều hơn thế

Học máy và đam mê khoa học dữ liệu. Ham học hỏi những tiến bộ công nghệ mới. Một tín đồ công nghệ tự học thích làm những thứ hay ho bằng cách sử dụng công nghệ để giải trí và đáng giá

Sự kiện sắp tới của AIM

Hội nghị trực tiếp [Bangalore]
Hội nghị thượng đỉnh dành cho các nhà phát triển máy học [MLDS] năm 2023
Ngày 19-20 tháng 1 năm 2023

Đăng ký

Early Bird Pass hết hạn vào ngày 3 tháng 2

Hội nghị trực tiếp [Bangalore]
Tăng 2023. Hội nghị Phụ nữ trong Công nghệ
16-17 tháng 3 năm 2023

Đăng ký

Hội nghị, trực tiếp [Bangalore]
Hội nghị thượng đỉnh về kỹ thuật dữ liệu [DES] 2023
ngày 27-28 tháng 4 năm 2023

Đăng ký

Hội nghị trực tiếp [Bangalore]
MachineCon 2023
Ngày 23 tháng 6 năm 2023

Đăng ký

Hội nghị, trực tiếp [Bangalore]
Cypher 2023
20-22 tháng 9 năm 2023

Đăng ký

3 cách để tham gia cộng đồng của chúng tôi

nhóm whatsapp

Khám phá các ưu đãi đặc biệt, tin bài hàng đầu, sự kiện sắp tới, v.v.

tham gia whatsapp

Máy chủ bất hòa

Luôn kết nối với hệ sinh thái lớn hơn về khoa học dữ liệu và ML Professionals

Tham gia cộng đồng Discord

Theo dõi bản tin của chúng tôi

Nhận các bản cập nhật mới nhất từ ​​AIM

E-mail

Đặt mua

NHỮNG CÂU CHUYỆN HÀNG ĐẦU

Cách làm cho trợ lý thông minh trở nên cá nhân hơn

Ngày nay, trợ lý giọng nói AI của Google là thông minh nhất, Alexa của Amazon có tác động mạnh nhất,

Robot điều khiển bằng tâm trí Một bước tiến gần hơn đến hiện thực hóa

Robot điều khiển bằng tâm trí có thể vượt qua tất cả các vấn đề mà bệnh nhân liệt tứ chi phải đối mặt

Có phải các cơ quan tư pháp cuối cùng đã tạo ra một tương lai thuật toán an toàn hơn?

Thời gian tự điều chỉnh đã hết và dự luật này buộc họ phải chịu trách nhiệm,” Chủ tịch Frank Pallone, Đảng Dân chủ New Jersey cho biết

OpenAI mang đến GLIDE, hoạt động tốt hơn DALL-E của chính nó

GLIDE [Ngôn ngữ hướng dẫn khuếch tán hình ảnh để tạo và chỉnh sửa] là 3. Mô hình tạo văn bản thành hình ảnh 5 tỷ tham số

Hình minh họa hàng đầu năm 2021 của AIM. Lựa chọn của biên tập viên

Trong bài viết này, chúng tôi tổng hợp một số hình minh họa và biểu ngữ đẹp nhất và có tác động

Những đổi mới thú vị từ DeepMind vào năm 2021

Điểm qua một số cải tiến đáng chú ý từ DeepMind trong năm 2021

Học máy Azure cho hình ảnh y tế

Các nhà nghiên cứu và bác sĩ hiện có thể phân tích hình ảnh y tế 3D với Azure Machine Learning

Tích chập Fourier nhanh như thế nào có thể thay thế lớp tích chập của CNN?

Mạng thần kinh chuyển đổi [CNN] có một số lượng lớn các biến và do đó, rất khó thực hiện. Nhiều phương pháp và kỹ thuật khác nhau, chẳng hạn như lượng tử hóa và cắt xén, đã được phát triển để giải quyết vấn đề về độ phức tạp của CNN

Hướng dẫn dành cho người mới bắt đầu về phân loại văn bản bằng tính năng BERT

Chúng ta đã thấy nhiều tiến bộ gần đây trong lĩnh vực khoa học dữ liệu đã

Công cụ AI đóng vai trò trung tâm trong việc phát hiện hình ảnh trùng lặp trong tạp chí

Các công cụ phát hiện hình ảnh AI có thể phát hiện các hình ảnh trùng lặp và được chỉnh sửa, đồng thời giúp duy trì tính toàn vẹn khoa học của các ấn phẩm nghiên cứu

Các cách xử lý dữ liệu phân loại là gì?

Công việc tiếp theo là xử lý dữ liệu phân loại trong bộ dữ liệu trước khi áp dụng bất kỳ mô hình ML nào. .
Mã hóa số thứ tự
Đếm / Mã hóa tần số
Mã hóa mục tiêu/hướng dẫn
Mã hóa trung bình
Mã hóa tỷ lệ xác suất

Thuật toán nào là tốt nhất cho dữ liệu phân loại?

Các thuật toán phân loại phổ biến nhất bao gồm. .
Hồi quy logistic
K hàng xóm gần nhất [KNN]
Máy véc tơ hỗ trợ [SVM]
cây quyết định
rừng ngẫu nhiên
Naïve Bayes

Cây quyết định có thể xử lý các biến phân loại trong Python không?

Mô hình cây quyết định có thể xử lý các biến phân loại mà không cần mã hóa chúng một lần .

Machine Learning có thể xử lý dữ liệu phân loại không?

Mô hình máy học yêu cầu tất cả các biến đầu vào và đầu ra phải là số. Điều này có nghĩa là nếu dữ liệu của bạn chứa dữ liệu phân loại, thì bạn phải mã hóa dữ liệu đó thành số trước khi có thể điều chỉnh và đánh giá mô hình .

Chủ Đề