ValueError: shapes (2,2) and (4,6) not aligned: 2 (dim 1) != 4 (dim 0)
<p>Complaining about this line: </p>

<pre><code>log_centers = pca.inverse_transform(centers)
</code></pre>

<p>Code:</p>

<pre><code># TODO: Apply your clustering algorithm of choice to the reduced data 
clusterer = KMeans(n_clusters=2, random_state=0).fit(reduced_data)

# TODO: Predict the cluster for each data point
preds = clusterer.predict(reduced_data)

# TODO: Find the cluster centers
centers = clusterer.cluster_centers_

log_centers = pca.inverse_transform(centers)
</code></pre>

<p>Data:</p>

<pre><code>log_data = np.log(data)

good_data = log_data.drop(log_data.index[outliers]).reset_index(drop = True)

pca = PCA(n_components=2)
pca = pca.fit(good_data)

reduced_data = pca.transform(good_data)

reduced_data = pd.DataFrame(reduced_data, columns = ['Dimension 1', 'Dimension 2'])
</code></pre>

<p>data is a csv; header looks like:</p>

<pre><code>    Fresh   Milk    Grocery Frozen  Detergents_Paper    Delicatessen
0   14755   899 1382    1765    56  749
1   1838    6380    2824    1218    1216    295
2   22096   3575    7041    11422   343 2564
</code></pre>

<p>The problem is that <code>pca.inverse_transform()</code>should not take <code>clusters</code>as argument.</p>

<p>Indeed, if you look at the <a href="http://scikit-learn.org/stable/modules/generated/sklearn.decomposition.PCA.html#sklearn.decomposition.PCA.inverse_transform" rel="nofollow">documentation</a>, it should take the <strong>data</strong> obtained from the PCA <strong>applied to your original data</strong> and <strong>not</strong> the <strong>centroids</strong> obtained with KMeans.</p>

python scikit-learn pca sklearn-pandas