Python K表示绘图未正确显示
我正试图在屏幕上直观地显示一次测试的结果 我的代码如下:Python K表示绘图未正确显示,python,pandas,matplotlib,scikit-learn,k-means,Python,Pandas,Matplotlib,Scikit Learn,K Means,我正试图在屏幕上直观地显示一次测试的结果 我的代码如下: import pandas as pd, seaborn as sns1 import matplotlib.pyplot as plt from scipy import cluster from sklearn.cluster import KMeans from sklearn.model_selection import train_test_split df = pd.read_csv('C:\\Users\\wunderma
import pandas as pd, seaborn as sns1
import matplotlib.pyplot as plt
from scipy import cluster
from sklearn.cluster import KMeans
from sklearn.model_selection import train_test_split
df = pd.read_csv('C:\\Users\\wundermahn\\Desktop\\code\\divorce.csv')
y = df['Class']
X = df.drop('Class', axis=1)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=42)
y_pred = KMeans(n_clusters=2, random_state=170).fit_predict(X_test)
plt.subplot(221)
plt.scatter(X_test[:, 0], X_test[:, 1], c=y_pred)
plt.title("Guess")
plt.show()
这受到上面超链接K-Means链接的严重影响
我的错误是:
Traceback (most recent call last):
File "c:\Users\wundermahn\Desktop\code\kmeans.py", line 25, in <module>
plt.scatter(X_test[:, 0], X_test[:, 1], c=y_pred)
File "C:\Python367-64\lib\site-packages\pandas\core\frame.py", line 2800, in __getitem__
indexer = self.columns.get_loc(key)
File "C:\Python367-64\lib\site-packages\pandas\core\indexes\base.py", line 2646, in get_loc
return self._engine.get_loc(key)
File "pandas\_libs\index.pyx", line 111, in pandas._libs.index.IndexEngine.get_loc
File "pandas\_libs\index.pyx", line 116, in pandas._libs.index.IndexEngine.get_loc
TypeError: '(slice(None, None, None), 0)' is an invalid key
回溯(最近一次呼叫最后一次):
文件“c:\Users\wundermahn\Desktop\code\kmeans.py”,第25行,在
plt.散射(X_检验[:,0],X_检验[:,1],c=y_pred)
文件“C:\Python367-64\lib\site packages\pandas\core\frame.py”,第2800行,在\uuu getitem中__
indexer=self.columns.get_loc(键)
文件“C:\Python367-64\lib\site packages\pandas\core\index\base.py”,第2646行,在get\u loc中
返回发动机。获取位置(钥匙)
pandas.\u libs.index.IndexEngine.get\u loc中第111行的文件“pandas\\u libs\index.pyx”
pandas.\u libs.index.IndexEngine.get\u loc中第116行的文件“pandas\\u libs\index.pyx”
TypeError:“(片(无,无,无),0)”是无效键
我做错了什么?为什么我的切片
None
类型是在我清楚地将数据传递给它的时候?plt.scatter
期望x
和y
。显然,数据帧与此函数的数组不同
如果您将X
或plt\u scatter
的输入转换为Numpy数组,它应该可以工作
import pandas as pd, seaborn as sns1
import matplotlib.pyplot as plt
from scipy import cluster
from sklearn.cluster import KMeans
from sklearn.model_selection import train_test_split
import numpy as np
df = pd.read_csv('divorce.csv', sep=';')
y = df['Class']
X = np.array(df.drop('Class', axis=1))
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=42)
y_pred = KMeans(n_clusters=2, random_state=170).fit_predict(X_test)
plt.subplot(221)
plt.scatter(X_test[:, 0], X_test[:, 1], c=y_pred)
plt.title("Guess")
plt.show()