我正在使用sklearn处理Python中的分类问题。我需要尝试不同的算法,并为每个数据计算一个混淆矩阵。
是否可以将这些矩阵存储在列表中,同时仍然可以将它们称为my_list["SVM"]
,my_list["KNN"]
,my_list["logistic_regression"]
等,而不是my_list[0]
, my_list[1]
...?
如果不可能,我应该改用什么数据结构?
答案 0 :(得分:2)
正如评论员所提到的,您可以使用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 :(得分:1)
我将其添加为评论,但我不能这样做,因为声誉...
字典是显而易见的答案,但是也许您应该看看pandas数据框。您可以将实际的y放在这样的数据框中:
import pandas as pd
df = pd.DataFramge({'y_act': y})
并在以后添加新的预测:
df['y_SVM'] = y_pred