我正在尝试使用列表追加功能将列表追加到列表。
但是出现错误,显示列表索引必须是整数或切片,而不是元组。不知道为什么。
pca_components = range(1,51)
gmm_components = range(1,5)
covariance_types = ['spherical', 'diag', 'tied', 'full']
# Spherical
spherical_results = []
for i in pca_components:
pca_model = PCA(n_components=i)
pca_train = pca_model.fit(train_data).transform(train_data)
for j in gmm_components:
parameters = (i+i)*j*2
if parameters > 50:
pass
else:
gmm_model = GMM(n_components=j, covariance_type='spherical')
gmm_model.fit(pca_train)
pca_test = pca_model.transform(test_data)
predictions = gmm_model.predict(pca_test)
accuracy = np.mean(predictions.ravel() == test_labels.ravel())
accuracy=int(accuracy)
spherical_results.append([accuracy, i,j, parameters])
spher_results = np.array(spherical_results)
max_accuracy = np.amax(spherical_results[:,0])
print(f"highest accuracy score for spherical is {max_accuracy}")
答案 0 :(得分:1)
此行的目的是什么?
spher_results = np.array(spherical_results)
它从列表中创建一个数组。但是,在下面的代码中不要使用spher_results
。