Если у меня есть две машины, чтобы предсказать, что объект - это собака, кошка или лошадь.
первая машина говорит: [0.3, 0.6, 0.1]
вторая машина говорит: [0,5, 0,2, 0,3]
для каждой категории.
Есть ли способ объединить эти два списка возможных вариантов, чтобы получить наиболее вероятный ответ?
Взгляните на en.wikipedia.org/wiki/Law_of_total_probability
Если вы хотите получить максимальные значения в этом списке:
first_machine= [0.3, 0.6, 0.1]
second_machine=[0.5, 0.2, 0.3 ]
answer=[max(first, second) for first,second in zip(first_machine, second_machine)]
>>>In []: answer
>>>Out[]: [0.5, 0.6, 0.3]
Допустим, у вас есть одна машина, которая будет отображать собаку, кошку или лошадь со следующими вероятностями: 0,3, 0,6, 0,1.
Затем у вас есть вторая машина, которая делает то же самое, но со следующими вероятностями: 0,5, 0,2, 0,3.
Если бы вы использовали обе машины одновременно, вы бы увидели два значения. После использования обеих машин 1000 раз вы можете подсчитать количество раз, когда вы видели каждое животное, и рассчитать приблизительную вероятность того, что животное появится в непрерывном потоке животных, отображаемых обеими машинами. Вы обнаружите, что новые вероятности будут средним значением ваших исходных вероятностей.
>>> machine_1 = 0.3, 0.6, 0.1
>>> round(sum(machine_1), 3)
1.0
>>> machine_2 = 0.5, 0.2, 0.3
>>> round(sum(machine_2), 3)
1.0
>>> import statistics
>>> average = tuple(map(statistics.mean, zip(machine_1, machine_2)))
>>> round(sum(average), 3)
1.0
>>> average
(0.4, 0.4, 0.2)
>>>
Так что же произойдет, если две машины предсказывают разные объекты?