Trang chủ & nbsp; & nbsp; Cách trực quan hóa phân phối dữ liệu của một biến phân loại trong Python
Biểu đồ thanh có thể được sử dụng theo nhiều cách, một trong những cách sử dụng phổ biến là trực quan hóa phân phối dữ liệu của các biến phân loại trong dữ liệu. Trục X là giá trị danh mục duy nhất và trục y là tần số của mỗi giá trị. Trong dữ liệu dưới đây, có một cột [phê duyệt_loan] là phân loại và để hiểu cách phân phối dữ liệu, bạn có thể sử dụng biểu đồ thanh.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 Nhập Pandas ASPDpandas aspd ColumnNames=['CIBIL','AGE','SALARY','APPROVE_LOAN']=['CIBIL','AGE','SALARY','APPROVE_LOAN'] DataValues=[[480,28,610000,'Yes'],=[[480,28,
610000,'Yes'], & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; [480,42,140000, 'không'],[480,42,140000,'No'], & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; [480,29,420000, 'không'],[480,29,420000,'No'], & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; [490.30.420000, 'không'],[490,30,420000,'No'], & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; [500,27,420000, 'không'],[500,27,420000,'No'], & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; [510.34.190000, 'không'],[510,34,190000,'No'], & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; [550.24.330000, 'Có'],[550,24,330000,'Yes'], & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; [560.34.160000, 'Có'],[560,34,160000,'Yes'], & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; [560,25,300000, 'Có'],[560,25,300000,'Yes'], & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; [570.34.450000, 'Có'],[570,34,450000,'Yes'], & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; [590.30.140000, 'Có'],[590,30,140000,'Yes'], & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; [600.33.600000, 'Có'],[600,33,600000,'Yes'], & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; [600,22,400000, 'Có'],[600,22,400000,'Yes'], & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; [600,25,490000, 'Có'],[600,25,490000,'Yes'], & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; [610,32,120000, 'Có'],[610,32,120000,'Yes'], & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; [630,29.360000, 'Có'],[630,29,360000,'Yes'], & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; [630.30.480000, 'Có'],[630,30,480000,'Yes'], & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; [660,29,460000, 'Có'],[660,29,460000,'Yes'], & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; [700.32.470000, 'Có'],[700,32,470000,'Yes'], & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; [740.28.400000, 'Có']]]][740,28,400000,'Yes']] # Tạo khung dữ liệu LoanData=pd.DataFrame[data=DataValues,columns=ColumnNames]=pd.DataFrame[data=DataValues,columns=ColumnNames] print[LoanData.head[]][LoanData.head[]] ################### đô # Đếm các lần xuất hiện của từng loại duy nhất GroupedData=LoanData.groupby[by='APPROVE_LOAN'].size[]=LoanData.groupby[by='APPROVE_LOAN'].size[] print[GroupedData][GroupedData] # Tạo biểu đồ thanh cho một cột %matplotlibinlinematplotlib
inline GroupedData.plot.bar[].plot.bar[]
Đầu ra mẫu:
Một biểu đồ thanh cho một cột phân loại duy nhất cung cấp thông tin dưới đây
- Xu hướng trung tâm trong dữ liệu [giá trị chế độ] là gì
- Sự mất cân bằng trong dữ liệu, bất kỳ giá trị nào có mặt rất ít lần
Đầu ra lý tưởng từ biểu đồ thanh là gì?
Đầu ra lý tưởng sẽ là mỗi thanh có cùng chiều cao [tần số]. Điều này có nghĩa là mỗi giá trị duy nhất có mặt một số lần bằng nhau, do đó dữ liệu có đủ giá trị cho từng loại giá trị để học hỏi. Điều này được gọi là một dữ liệu cân bằng.
Hãy xem xét ví dụ dưới đây, ở đây số lượng các trường hợp của Yes Yes và các trường hợp không có người khác có mặt gấp 10 lần mỗi trường hợp. Do đó, thuật toán ML có cùng số lượng ví dụ của cả hai trường hợp để học hỏi.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | # Tạo khung dữ liệu cân bằng mẫu Nhập Pandas ASPDpandas aspd ColumnNames=['CIBIL','AGE','SALARY','APPROVE_LOAN']=['CIBIL','AGE','SALARY','APPROVE_LOAN'] DataValues=[[480,28,610000,'No'],=[[480, 28,610000,'No'], & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; [480,42,140000, 'không'],[480,42,140000,'No'], & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; [480,29,420000, 'không'],[480,29,420000,'No'], & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; [490.30.420000, 'không'],[490,30,420000,'No'], & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; [500,27,420000, 'không'],[500,27,420000,'No'], & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; [510.34.190000, 'không'],[510,34,190000,'No'], & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; [550.24.330000, 'Có'],[550,24,330000,'No'], & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; [560.34.160000, 'Có'],[560,34,160000,'No'], & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; [560,25,300000, 'Có'],[560,25,300000,'No'], & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; [570.34.450000, 'Có'],[570,34,450000,'No'], & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; [590.30.140000, 'Có'],[590,30,140000,'Yes'], & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; [600.33.600000, 'Có'],[600,33,600000,'Yes'], & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; [600,22,400000, 'Có'],[600,22,400000,'Yes'], & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; [600,25,490000, 'Có'],[600,25,490000,'Yes'], & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; [610,32,120000, 'Có'],[610,32,120000,'Yes'], & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; [630,29.360000, 'Có'],[630,29,360000,'Yes'], & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; [630.30.480000, 'Có'],[630,30,480000,'Yes'], & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; [660,29,460000, 'Có'],[660,29,460000,'Yes'], & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; [700.32.470000, 'Có'],[700,32,470000,'Yes'], & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; [740.28.400000, 'Có']]]][740,28,400000,'Yes']] #Tạo khung dữ liệu LoanData=pd.DataFrame[data=DataValues,columns=ColumnNames]=pd.DataFrame[data=DataValues,columns=ColumnNames] print[LoanData.head[]][LoanData.head[]] ################# sau # Đếm các lần xuất hiện của từng loại duy nhất GroupedData=LoanData.groupby[by='APPROVE_LOAN'].size[]=LoanData.groupby[by='APPROVE_LOAN'].size[] print[GroupedData][GroupedData] # Tạo biểu đồ thanh cho một cột %matplotlibinlinematplotlibinline GroupedData.plot.bar[].plot.bar[] |
Đầu ra mẫu:
Phải làm gì cho dữ liệu phân loại mất cân bằng?
Nếu biểu đồ thanh cho thấy có quá nhiều giá trị duy nhất trong một cột và chỉ một trong số chúng chiếm ưu thế, thì dữ liệu bị mất cân bằng và một cột như vậy cần xử lý ngoại lệ bằng cách nhóm một số giá trị có tần số thấp.
Ví dụ, trong kịch bản dưới đây, danh mục C C được chi phối và các giá trị khác chỉ có mặt một lần.
Loại dữ liệu này không phù hợp cho việc học máy. Để làm cho nó hữu ích, chúng ta có thể nhóm các giá trị của một người khác, một người khác, và gọi nó là một danh mục duy nhất, hãy để nói về abd abd. Hoạt động này sẽ cải thiện phân phối dữ liệu như hình dưới đây. Bây giờ, điều này có thể được sử dụng cho học máy. Điều này có thể được thực hiện trong Python bằng cách sử dụng hàm thay thế [] của khung dữ liệu pandas.replace[] function of the pandas data frame.
Điều quan trọng cần lưu ý là, để kết hợp một vài giá trị với nhau, bạn phải có ít kiến thức về miền về dữ liệu, do đó bạn sẽ hiểu rằng liệu nhóm này có hợp lý hay không.
Nhà khoa học dữ liệu chính
Farukh là một nhà đổi mới trong việc giải quyết các vấn đề công nghiệp bằng cách sử dụng trí tuệ nhân tạo. Chuyên môn của ông được hỗ trợ với 10 năm kinh nghiệm trong ngành. Là một nhà khoa học dữ liệu cao cấp, anh ta chịu trách nhiệm thiết kế giải pháp AI/ML để cung cấp mức tăng tối đa cho khách hàng. Là một nhà lãnh đạo tư tưởng, trọng tâm của ông là giải quyết các vấn đề kinh doanh chính của ngành công nghiệp CPG. Ông đã làm việc trên các lĩnh vực khác nhau như viễn thông, bảo hiểm và hậu cần. Ông đã làm việc với các nhà lãnh đạo công nghệ toàn cầu bao gồm Infosys, IBM và các hệ thống liên tục. Niềm đam mê của anh ấy để dạy truyền cảm hứng cho anh ấy để tạo ra trang web này!