Можно ли пометить элементы в списке Python? - PullRequest
0 голосов
/ 09 мая 2019

Я работаю над проблемой классификации с sklearn в Python. Мне нужно попробовать разные алгоритмы и вычислить матрицу путаницы для моих тестовых данных с каждым из них.

Можно ли сохранить эти матрицы в списке, но при этом можно ссылаться на них как my_list["SVM"], my_list["KNN"], my_list["logistic_regression"] и т. Д. Вместо my_list[0], my_list[1] ...?

Если это невозможно, какую структуру данных я должен использовать вместо этого?

Ответы [ 2 ]

2 голосов
/ 09 мая 2019

Как уже упоминали комментаторы, вы можете использовать dictionary для обозначения ваших значений, где key - это метка, а value - это значение, присвоенное метке

In [32]: dct = {}                                                                                                              

In [33]: dct['label1'] = 'item1'                                                                                               

In [34]: dct['label2'] = 'item2'                                                                                               

In [35]: dct['label3'] = 'item3'                                                                                               

In [36]: dct                                                                                                                   
Out[36]: {'label1': 'item1', 'label2': 'item2', 'label3': 'item3'}

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

In [37]: dct = {}                                                                                                              

In [38]: dct['label1'] = ['item11','item12']                                                                                   

In [40]: dct['label2'] = ['item21','item22', 'item23']   

In [44]: dct['label3'] = ['item31','item32', 'item33', 'item34']                                                               

In [45]: dct                                                                                                                   
Out[45]: 
{'label1': ['item11', 'item12'],
 'label2': ['item21', 'item22', 'item23'],
 'label3': ['item31', 'item32', 'item33', 'item34']}

In [51]: dct['label4'] = ['item41', 'item42', 'item43', 'item44', 'item45']                                                            

In [52]: dct['label1'].append('item13')                                                                                                

In [53]: dct                                                                                                                           
Out[53]: 
{'label1': ['item11', 'item12', 'item13'],
 'label2': ['item21', 'item22', 'item23'],
 'label3': ['item31', 'item32', 'item33', 'item34'],
 'label4': ['item41', 'item42', 'item43', 'item44', 'item45']}
1 голос
/ 09 мая 2019

Я бы добавил это как комментарий, но не могу, потому что репутация ...

Словари - очевидный ответ, но, возможно, вам стоит взглянуть на кадры данных панд.Вы можете поместить свой фактический y в фрейм данных следующим образом:

import pandas as pd
df = pd.DataFramge({'y_act': y})

и добавить новые прогнозы позже:

df['y_SVM'] = y_pred
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...