Tôi đang cố gắng hiểu cách sử dụng dữ liệu danh mục làm tính năng trong sklearn.linear_model
's LogisticRegression
.Sử dụng dữ liệu phân loại làm tính năng trong Sklean LogisticRegression
Tôi hiểu tất nhiên tôi cần mã hóa nó.
Những gì tôi không hiểu là làm thế nào để vượt qua tính năng mã hóa để hồi quy Logistic vì vậy nó xử lý như một tính năng phân loại, và không giải thích giá trị int nó nhận được khi mã hóa như một tính năng định lượng tiêu chuẩn.
(Ít quan trọng hơn) Ai đó có thể giải thích sự khác biệt giữa việc sử dụng
preprocessing.LabelEncoder()
,DictVectorizer.vocabulary
hoặc chỉ tự mã hóa dữ liệu phân loại bằng một lệnh đơn giản? Alex A.'s comment here chạm vào đối tượng nhưng không sâu sắc.
Đặc biệt với thẻ đầu tiên!
Cảm ơn bạn đã trả lời.Chuyển đổi chính nó là ít vấn đề (tôi nghĩ), mối quan tâm chính của tôi là reg logistic sẽ xem xét các giá trị số như một giá trị số chuẩn, vì vậy nếu Cat được mã hóa là 1 và Dog là 2, nó sẽ giả định quan sát với 'Dog' có 'nhiều hơn' của tài sản đó, trong khi chúng ta biết các giá trị được gán là vô nghĩa. – Optimesh
@Optimesh, Ý bạn là gì khi được "mã hóa"? Nếu bạn đang nói về các biến mục tiêu - không có gì sai trong các mục tiêu [1,2,3], LogisticRegression sẽ đơn giản xây dựng các phân loại 3 (trong trường hợp cụ thể này) và kết hợp chúng trong lược đồ OneVsRest. Nếu bạn đang nói về các tính năng - OneHotEncoder sẽ mã hóa từng tính năng phân loại theo định dạng nhị phân, tức là nó sẽ tạo ra tính năng nhị phân mới thay vì mỗi giá trị có thể cho tính năng phân loại, tức là tập dữ liệu kết quả sẽ phân tách các tính năng nhị phân (cột) cho các giá trị Dog = 1, Dog = 2, Dog = 3, Cat = 1, v.v. Nhìn vào các ví dụ trong tài liệu chính thức. –