Cách xử lý dữ liệu phi hình số điển hình nhất là chuyển đổi một cột duy nhất thành nhiều cột nhị phân. Điều này được gọi là "Nhận các biến giả" hoặc "mã hóa nóng" [trong số nhiều thuật ngữ hợm hĩnh khác].
Có những điều khác bạn có thể làm để dịch dữ liệu thành các con số, chẳng hạn như phân tích tình cảm [tức là cetagorize mỗi tweet thành vui, buồn, hài hước, tức giận, v.v.], phân tích các tweet để xác định xem chúng có về một chủ đề nhất định hoặc không [tức là tweet này có nói về virus không?], Số lượng từ trong mỗi tweet, số lượng không gian trên mỗi tweet, nếu nó có ngữ pháp tốt hay không, v.v. chủ đề rộng.
Khi chuyển đổi dữ liệu thành các cột nhị phân, bạn sẽ nhận được số lượng các giá trị duy nhất trong cột của mình và tạo ra nhiều cột mới đó, mỗi cột trong số chúng chứa đầy số không và các cột.
Hãy tập trung vào cột đầu tiên của bạn:
import pandas as pd
df = pd.DataFrame[{'account':['realdonaldtrump','naredramodi','pontifex','pmoindia','potus']}]
account
0 realdonaldtrump
1 narendramodi
2 pontifex
3 pmoindia
4 potus
Điều này tương đương với:
pd.get_dummies[df, columns=['account'], prefix='account']
account_naredramodi account_pmoindia account_pontifex account_potus \
0 0 0 0 0
1 1 0 0 0
2 0 0 1 0
3 0 1 0 0
4 0 0 0 1
account_realdonaldtrump
0 1
1 0
2 0
3 0
4 0
Đây là một trong nhiều phương pháp. Bạn có thể xem bài viết này về một mã hóa nóng ở đây.
Lưu ý: Khi bạn có nhiều giá trị duy nhất, việc này sẽ cung cấp cho bạn nhiều cột và một số thuật toán sẽ bị sập do không có đủ mức độ tự do [quá nhiều biến, không đủ quan sát]. Cuối cùng, nếu bạn đang chạy hồi quy, bạn sẽ gặp phải đa hình hoàn hảo nếu bạn không thả một trong các cột.: When you have many unique values, doing this will give you many columns and some algorithms will crash due to not having enough degrees of freedom [too many variables, not enough observations]. Last, if you are running a regression, you will run into perfect multicollinearity if you do not drop one of the columns.
Quay trở lại ví dụ của bạn, nếu bạn muốn biến tất cả các cột của mình thành loại dữ liệu này, hãy thử:
pd.get_dummies[df]
Tuy nhiên, tôi sẽ không làm điều này cho cột tweet
vì mỗi tweet là giá trị duy nhất của riêng nó.
Tôi đã viết một bài báo có tiêu đề là phân cụm dữ liệu không phải là người sử dụng Python, trong số tháng 4 năm 2018 của tạp chí Visual Studio. Xem //visualstudiomagazine.com/articles/2018/04/01/clustering-non-numeric-data.aspx.
Phân cụm là quá trình nhóm dữ liệu để các mục tương tự nằm trong cùng một nhóm/cụm. Sau khi dữ liệu được phân cụm, bạn có thể kiểm tra các cụm để xác định xem có bất kỳ mẫu thú vị nào xuất hiện hay để xác định các mục bất thường.
Nếu dữ liệu của bạn là tất cả số, thì có một số thuật toán tốt, bao gồm cả K-MEAN. Ví dụ, nếu mỗi mục dữ liệu đại diện cho một người có độ tuổi, giáo dục năm, thu nhập hàng năm, thì phân cụm là khá dễ dàng. Tuy nhiên, một cách đáng ngạc nhiên, nếu dữ liệu của bạn chứa các mục không phải là số, thì việc phân cụm là rất khó khăn. Ví dụ, nếu mỗi người mặt hàng có màu tóc, thì K-Means đã giành được công việc.
Lý do tại sao hầu hết các thuật toán giành được công việc với các mục không phải là số là các thuật toán phụ thuộc vào thước đo khoảng cách. Ví dụ, khoảng cách từ 25 tuổi và 28 tuổi có thể được định nghĩa là [25-28]^2 = 9. Nhưng khoảng cách giữa cô gái tóc vàng và và Red Red không có ý nghĩa.
Vì vậy, trong bài viết của tôi, tôi mô tả một kỹ thuật hoạt động tốt với dữ liệu không phải là số lượng. Chìa khóa là một số liệu gọi là Tiện ích danh mục [CU]. CU dựa trên lý thuyết thông tin và xác suất, và là thước đo mức độ tốt của một phân cụm cụ thể của dữ liệu không phải là số lượng. Giá trị CU lớn hơn có nghĩa là một cụm tốt hơn.
Để phân cụm một tập hợp dữ liệu không phải là số lượng, bạn có thể thử phân cụm khác nhau và sử dụng phân cụm mang lại giá trị CU lớn nhất. Tất nhiên, phần khó là, hãy thử các cụm khác nhau vì số lượng phân cụm có thể có của bộ dữ liệu có thể lớn không thể tưởng tượng được cho các kích thước tập dữ liệu vừa phải.
Đạo đức của câu chuyện là các bộ dữ liệu phân cụm có chứa dữ liệu không phải là có thể nhưng bạn phải sử dụng một ý tưởng thông minh như tiện ích danh mục.
Cấm Briggate, Leeds, khoảng năm 1860, bởi John Atkinson Grimshaw. Kỹ thuật vẽ thông minh cho một cảnh đêm.
Mục nhập này đã được đăng trong học máy. Đánh dấu permalink.