Thất bại ở hồi quy tuyến tính / dự đoán trên tập dữ liệu thực


8

Tôi có một bộ dữ liệu mà tôi đang cố thực hiện hồi quy và thất bại.

Tình huống:

  • Hàng ngàn người điều khiển robot chiến đấu đang chiến đấu với nhau bằng cách sử dụng robot chiến đấu.
  • Một số robot chiến đấu mạnh mẽ và mạnh mẽ, và một số khác thì yếu; những kẻ mạnh thắng thường xuyên hơn và gây sát thương nhiều hơn.
  • Người điều khiển robot khác nhau về kỹ năng, với những người giỏi hơn sẽ chiến thắng thường xuyên hơn và gây ra nhiều thiệt hại hơn
  • Chúng tôi có một số thông tin tóm tắt về kết quả của các trận chiến của họ, nhưng không phải tất cả các chi tiết.
  • Chúng tôi biết những robot chiến đấu mà họ đã sử dụng trong các trận chiến của họ và bao nhiêu lần (bao gồm bao nhiêu trong số những trận chiến mà họ đã thắng) và chúng tôi biết tổng thiệt hại mà họ đã gây ra (gồm hai loại, thiệt hạiA và thiệt hạiB)
  • Một số robot tốt hơn trong việc gây sát thươngA, trong khi những người khác gây sát thươngB
  • Đối với những người điều khiển robot chiến đấu không xác định chỉ dựa trên những robot họ đã sử dụng trong các trận chiến (và bao nhiêu lần), chúng tôi muốn ước tính mức độ thiệt hại của từng loại họ sẽ đạt được, và bao nhiêu% trận chiến mà họ có khả năng chiến thắng

Ví dụ:

  • John đã sử dụng Robot A cho 4 trận chiến và Robot B cho 2 trận chiến và đã xử lý DamageA trị giá 240 đơn vị
  • James đã sử dụng Robot A cho 1 trận chiến và Robot B trong 10 trận chiến và đã xử lý DamageA trị giá 1010 đơn vị

Do đó, tôi có thể ước tính rằng Robot A có thể gây ra 10 đơn vị sát thương A mỗi trận, trong khi Robot B gây ra 100 đơn vị sát thương A cho mỗi trận chiến, và do đó, nếu được yêu cầu ước tính Thiệt hại A do Matthew chỉ chơi mỗi một trong hai robot Mỗi trận có 2 trận, sẽ ước tính là 220 == (10 * 2 + 100 * 2).

Thật không may, dữ liệu thực không rõ ràng và đơn giản, có thể là do:

  • Có một sự khác biệt đáng kể do kỹ năng điều khiển robot, ví dụ, một người vận hành tốt có thể gây ra 20 đơn vị thiệt hại với Robot A trong khi một người xấu chỉ có 5 đơn vị.
  • Có một số phương sai ngẫu nhiên do các đối thủ rút ra trong trường hợp mẫu nhỏ (ví dụ: ai đó vẽ đối thủ mạnh và thua mặc dù có robot tốt hơn đối thủ), mặc dù cuối cùng nó cũng sẽ ra
  • Có thể có một số sai lệch lựa chọn nhỏ trong đó các nhà điều hành robot tốt nhất quản lý để chọn các robot tốt nhất để tham gia vào trận chiến thường xuyên hơn

Tập dữ liệu thực có sẵn tại đây (630k mục kết quả của nhà điều hành trận chiến đã biết):

http://goo.gl/YAJp4O

Tập dữ liệu được tổ chức như sau, với một mục nhập toán tử robot trên mỗi hàng:

  • Cột 1 không có nhãn - ID nhà điều hành
  • trận chiến - tổng số trận chiến mà nhà điều hành này đã tham gia
  • chiến thắng - tổng số trận chiến mà nhà điều hành này đã giành chiến thắng
  • đánh bại - tổng số trận chiến mà nhà điều hành này đã thua
  • sát thươngA - Tổng sát thương A điểm gây ra
  • sát thươngB - tổng điểm sát thương B gây ra
  • 130 cặp cột như sau:
    • trận chiến_ [robotID] - trận chiến sử dụng robot [robotID]
    • victories_ [robotID] - chiến thắng đạt được bằng robot [robotID]

Những gì tôi đã làm cho đến nay:

  • Đã thử một vài mô hình tuyến tính bằng cách sử dụng biglmgói R để xây dựng một công thức như damageA ~ 0 + battles_1501 + battles_4201 + ...cố gắng đạt được các giá trị "mong đợi" được trang bị cho mỗi robot.
  • Tương tự, nhưng loại bỏ chặn gốc bắt buộc bằng cách không bao gồm 0 +trong công thức
  • Tương tự, nhưng cũng bao gồm các victories_[robotID]biến độc lập
  • Tương tự như trước đây, nhưng chỉ chọn những người điều khiển robot có số chiến thắng gần với số lần đánh bại của họ
  • Một mô hình hồi quy tuyến tính cho damageA ~ 0 + battles_1501 + battles_non_1501nơi battles_non_1501là tất cả các trận đánh trong robot khác ngoài mô hình Robot 1501. Sau đó lặp đi lặp lại cho tất cả các loại robot khác.

Tôi đã kiểm tra sự tỉnh táo bằng cách xem xét các giá trị sát thương và sát thương dự đoán, cũng như so sánh tỷ lệ chiến thắng / trận chiến với tỷ lệ chiến thắng / trận chiến thực tế mà chúng ta thực sự có thể tính toán chính xác cho từng robot.

Trong mọi trường hợp trong khi kết quả không hoàn toàn tắt, họ đã đủ để thấy rằng mô hình không hoạt động tốt. Ví dụ, một số robot đạt được số lượng sát thương âm không thực sự xảy ra vì bạn không thể gây sát thương tiêu cực trong trận chiến.

Trong trường hợp tôi cũng sử dụng các victories_[robotID]giá trị đã biết trong công thức, nhiều battle_[robotID]hệ số cuối cùng có số âm lớn, vì vậy tôi đã thử ước tính cho toán tử "trung bình" battle_[robotID] + victories_[robotID] / 2nhưng điều đó cũng không cho kết quả hợp lý.

Bây giờ tôi đã hết ý tưởng.


4
Âm thanh như bạn không phù hợp với một mô hình hiệu ứng hỗn hợp mà bạn nên làm ở đây để tính đến sự thay đổi giữa các toán tử và (lồng trong đó?) Các robot. Đối với vấn đề với thiệt hại tiêu cực, bạn có thể khắc phục điều đó bằng cách thực hiện một số loại chuyển đổi
M. Berk

Cảm ơn lời khuyên của bạn, mặc dù tôi phải thừa nhận rằng tôi không biết cách áp dụng một trong những gợi ý này. Tôi đã thử cắm lmethay vì của tôi biglm, nhưng rõ ràng tôi cần đọc nhiều hơn về điều này để hiểu chính xác những gì cần cung cấp như là tham số cho nó.
james.taylor.1985

1
Đây có phải là cách duy nhất bạn có thể nhận được dữ liệu? Sẽ tốt hơn nếu có một bộ dữ liệu với một quan sát cho mỗi trận chiến, xác định hai người vận hành, hai robot và kết quả. Nếu dữ liệu phải đến dưới dạng thông tin tóm tắt, bạn có thể nhận thông tin tóm tắt khác nhau không, hay đây là thông tin?
Bill

Đây là nó, dữ liệu được nhận từ một hệ thống bên ngoài thuộc sở hữu của một công ty khác và điều này không may là phạm vi của dữ liệu có sẵn. Tôi có thêm một vài biến tóm tắt mà tôi không đề cập ở đây (bạn có thể xem chúng là DamageB, DamageC, v.v.) nhưng chúng có mối tương quan chặt chẽ với DamageA & DamageB vì vậy tôi không nghĩ chúng hữu ích và tôi đã không đề cập đến chúng để tránh nhầm lẫn.
james.taylor.1985

2
Tại sao bạn không thực hiện xếp hạng ELO cho các nhà khai thác, máy móc hoặc một số biến thể của chúng? Ngoài ra, dữ liệu này nói rằng âm thanh như một niềm vui không thể tin được.
RegressForward

Câu trả lời:


1

Đây có lẽ là lời kêu gọi mô hình hóa phương trình đồng thời , thay vì hồi quy tuyến tính.

Xác suất thành công phụ thuộc vào hai phương trình riêng biệt, một phương pháp đo lường chất lượng của đối thủ, người và máy, bên kia là đo lường chất lượng của bản thân, người và máy. Họ trực tiếp phản đối lẫn nhau, nhưng chỉ có một kết quả được quan sát. Không làm SEM, tôi tin rằng các hệ số của bạn bị sai lệch, đó có thể là lý do tại sao chúng không đáng kể. Điều này gợi nhớ đến việc ước tính các phương trình cung và cầu , thường sẽ không có gì trừ khi được chuẩn bị tốt.

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.