Tôi có một bộ dữ liệu mà tôi đang cố gắng dự đoán các biến mục tiêu.
Col1 Col2 Col3 Col4 Col5
1 2 23 11 1
2 22 12 14 1
22 11 43 38 3
14 22 25 19 3
12 42 11 14 1
22 11 43 38 2
1 2 23 11 4
2 22 12 14 2
22 11 43 38 3
Tôi đã cung cấp một dữ liệu mẫu, nhưng tôi có hàng ngàn hồ sơ được phân phối theo cách tương tự. Ở đây, Col1, Col2, Col3, Col4 là các tính năng của tôi và Col5 là biến mục tiêu. Do đó dự đoán nên là 1,2,3 hoặc 4 vì đây là các giá trị của tôi cho biến mục tiêu. Tôi đã thử sử dụng các thuật toán như rừng ngẫu nhiên, cây quyết định, vv để dự đoán.
Ở đây nếu bạn thấy, các giá trị 1,2 và 3 xảy ra nhiều lần hơn so với 4. Do đó, trong khi dự đoán, mô hình của tôi thiên về 1 2 và 3 trong khi tôi chỉ nhận được số lượng dự đoán ít hơn cho 4 (Chỉ có 1 dự đoán cho chính sách4 trong số hàng ngàn hồ sơ khi tôi thấy ma trận nhầm lẫn).
Để làm cho mô hình của tôi tổng quát hóa, tôi đã loại bỏ phần trăm dữ liệu bằng nhau thuộc về giá trị 1,2 và 3 một cách ngẫu nhiên. Tôi được nhóm theo từng giá trị trong Col5 và sau đó xóa phần trăm nhất định, để tôi giảm số lượng hồ sơ. Bây giờ tôi có thể thấy sự gia tăng nhất định về tỷ lệ chính xác và mức tăng dự đoán hợp lý cho giá trị 4 trong ma trận nhầm lẫn.
Đây có phải là cách tiếp cận phù hợp để xử lý (loại bỏ dữ liệu ngẫu nhiên khỏi các nhóm mà mô hình bị sai lệch)?
Tôi đã thử các thuật toán python dựng sẵn như Adaboost, các kỹ thuật GradientBoost bằng sklearn. Tôi đọc các thuật toán này là để xử lý lớp mất cân bằng. Nhưng tôi không thể thành công trong việc cải thiện độ chính xác của mình, thay vào đó bằng cách xóa ngẫu nhiên dữ liệu, nơi tôi có thể thấy một số cải tiến.
Đây có phải là giảm kỹ thuật lấy mẫu và đây có phải là phương pháp phù hợp để lấy mẫu dưới?
Có bất kỳ gói được xác định trước nào trong sklearn hoặc bất kỳ logic nào tôi có thể thực hiện trong python để thực hiện việc này không, nếu loại bỏ ngẫu nhiên của tôi là sai?
Ngoài ra, tôi đã học về kỹ thuật SMOTE, liên quan đến quá khổ. Tôi có nên thử cái này cho giá trị 4 không? Và chúng ta có thể làm điều này bằng cách sử dụng bất kỳ gói dựng sẵn nào trong python không? Sẽ thật tuyệt nếu ai đó giúp tôi trong tình huống này.