Học máy với dữ liệu phân loại và liên tục


9

Câu hỏi này có thể ở đây hoặc trên SO có lẽ ...

Giả sử rằng tập dữ liệu đào tạo của bạn chứa cả dữ liệu phân loại và liên tục, chẳng hạn như thiết lập này:

 Animal, breed,  sex, age, weight, blood_pressure, annual_cost
 cat,    calico, M,   10,  15    ,   100         , 100 
 cat,    tabby,  F,   5,   10    ,   80          , 200
 dog,    beagle, M,   3,   30    ,   90          , 200
 dog,    lab,    F,   8,   75    ,   80          , 100

Và biến phụ thuộc được dự đoán là chi phí bác sĩ thú y hàng năm. Tôi hơi bối rối về các kỹ thuật cụ thể có sẵn để đối phó với một bộ dữ liệu như vậy. Các phương pháp thường được sử dụng để đối phó với các bộ dữ liệu là hỗn hợp của cả dữ liệu liên tục và phân loại là gì?

Câu trả lời:


8

Đối với mỗi lớp (giống, giới tính ...) của các thuộc tính phân loại, bạn có thể thêm một số thành phần vào vectơ đặc trưng của mình bằng với số lượng giá trị có thể có trong lớp đó. Sau đó, nếu một điểm dữ liệu có giá trị thứ i, bạn đặt một trong các thành phần đó thành 1 và phần còn lại cho thuộc tính đó là 0.

Trong ví dụ của bạn, đối với giới tính, bạn sẽ thêm hai thành phần mới vào vector tính năng của mình. Nếu con vật là con đực, bạn sẽ đặt con đầu tiên thành 1 và con thứ hai thành 0 và ngược lại nếu con vật là con cái. Đối với động vật, nếu khả năng của bạn là mèo, chó và cá, thì bạn sẽ làm tương tự với ba thành phần.

Chúng sẽ cùng tồn tại song song với các thuộc tính liên tục. Tuy nhiên, bạn có thể muốn điều chỉnh độ lớn của "giá trị chỉ báo" (giá trị mà bạn sử dụng khi thuộc tính "bật") để có thể so sánh với độ lớn của các giá trị liên tục bạn đang sử dụng.

Nếu bạn chọn cách giải quyết vấn đề này, bước tiếp theo sẽ là chọn và thuật toán như máy vectơ hỗ trợ và cung cấp cho vectơ tính năng của bạn. Tất nhiên, một số cách tiếp cận như Cây quyết định sẽ không cần bước tôi đã đề cập ở trên để bắt đầu.


1
Thật tuyệt, những lời khuyên tuyệt vời! Điều gì về tình huống có thể xảy ra trong dữ liệu thử nghiệm mà giống không bao giờ xuất hiện trong dữ liệu huấn luyện? Ví dụ, nếu có một poodle trong dữ liệu thử nghiệm nhưng không phải là dữ liệu đào tạo? Cách tốt nhất để đi chỉ có số không cho tất cả các thành phần của vectơ giống?
bò sát

2
Trong thực tế, cách tiếp cận ngược lại (được gọi là phân tách dữ liệu) thường là lựa chọn tốt nhất cho các phương pháp phân cấp (như thuật toán cây quyết định). Phân biệt dữ liệu cũng là một kỹ thuật xử lý trước dữ liệu (như đã đề cập trong câu trả lời khác).
rvcoutinho

2

Bạn nên xem qua xử lý trước dữ liệu . Đó là trước bất kỳ kỹ thuật máy học. Đây là một giới thiệu tốt (tìm thấy tại Google).

Về kỹ thuật, có rất nhiều cách tiếp cận khác nhau . Bạn có thể có thể sử dụng hầu hết trong số họ sau khi xử lý trước dữ liệu của bạn. Bạn nên thử chúng và chọn một trong những phù hợp nhất với nhu cầu của bạn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.