2016-10-27 1 views
1

У меня есть набор данные с кортежами последовательности и задачами, как следующее:Получение два целевых значений из алгоритмов предсказания

 input_0 input_1 input_2 output 
0  0  1.0 2.0  4.0 
1  1  2.0 4.0  2.0 
2  2  4.0 2.0  4.0 
3  4  2.0 4.0  7.0 
4  2  4.0 7.0  8.0 

Я обученные алгоритмами с использованием выходного сигнала в качестве целевого значения.

Тем не менее, я хочу получить две наиболее возможные переменные, которые могут возникнуть в одном случае.

Например, если у меня есть два кортежи для обучения: a,b,c,d и a,b,c,e Я хочу, чтобы получить d и e в результате с соответствующим процентом.

Есть ли что-то подобное?

+0

Итак, вы хотите, чтобы сгруппировать кортежи первыми 3 шт , и вычислить частоту четвертого элемента для каждой группы? Разве это не вытекает из вашего описания? –

+0

@AmiTavory да, вот что мне нужно – Kratos

+1

Так в чем ваш вопрос, точно? –

ответ

1

Из ваших комментариев это похоже на pandas.DataFrame. Допустим, вы начинаете с

from collections import Counter 

df = pd.DataFrame({ 
    'input_0': [1, 1, 2, 4, 2], 
    'input_1': [1, 1, 2, 4, 4], 
    'input_2': [2, 2, 2, 4, 7], 
    'output': [4, 3, 4, 7, 8]}) 
>>> df 
    input_0 input_1 input_2 output 
0 1 1 2 4 
1 1 1 2 3 
2 2 2 2 4 
3 4 4 4 7 
4 2 4 7 8 

Тогда следующие будут показаны два наиболее распространенных элементов на каждом входном наборе, а также их подсчет:

>>> df.output.groupby([df.input_0, df.input_1, df.input_2]).apply(lambda s: Counter(s).most_common(2)).reset_index() 
    input_0 input_1 input_2 output 
0 1 1 2 [(3, 1), (4, 1)] 
1 2 2 2 [(4, 1)] 
2 2 4 7 [(8, 1)] 
3 4 4 4 [(7, 1)] 
+0

@Kratos К сожалению, добавлен недостающий импорт. –

+0

Да, я узнал, спасибо! – Kratos