编辑:
这是数据csv的头部:
Fresh Milk Grocery Frozen Detergents_Paper Delicatessen
0 12669 9656 7561 214 2674 1338
1 7057 9810 9568 1762 3293 1776
2 6353 8808 7684 2405 3516 7844
3 13265 1196 4221 6404 507 1788
4 22615 5410 7198 3915 1777 5185
我看到的错误:
TypeError: unsupported operand type(s) for *: 'PCA' and 'float'
代码:
from sklearn.decomposition import PCA
log_data = np.log(data)
# TODO: Apply PCA to the good data with the same number of dimensions as features
pca = PCA(n_components=4)
# TODO: Apply a PCA transformation to the sample log-data
pca_samples = pca.fit(log_data)
# Generate PCA results plot
pca_results = rs.pca_results(good_data, pca)
display(pd.DataFrame(np.round(pca_samples, 4), columns = pca_results.index.values))
抱怨最后一行
数据来自已证明工作正常的csv。
答案 0 :(得分:2)
pca.fit(X[, y])
只需使用X拟合模型,然后返回self
,即pca本身。
因为你想用
获取转换后的数据pd.DataFrame(np.round(pca_samples, 4), columns = pca_results.index.values))
所以,你应该致电pca.fit_transform()
fit_transform(X [,y])使用X拟合模型并在X上应用降维。
答案 1 :(得分:0)
PCA.fit()
将模型归位并返回self
,以便您可以链接其他模型操作。所以,在
pca_samples = pca.fit(log_data)
pca_samples
只是对pca
的另一个引用。
答案 2 :(得分:0)
为使代码正常工作,请参见下面经过测试的代码以及您应更改的行!
#TODO: Transform log_samples using the PCA fit above
pca_samples = pca.fit_transform(log_samples)
上面的代码效果很好。