Python 使用MDS可视化多维数据集

Python 使用MDS可视化多维数据集,python,scikit-learn,data-visualization,visualization,mds,Python,Scikit Learn,Data Visualization,Visualization,Mds,我正在尝试使用MDS将我的数据帧的3个功能可视化,以在2维中对它们进行缩放 因此,我在二维中执行MDS来绘制新数据,根据目标变量为每个点赋予不同的颜色。我的目标变量是“Type” In: df Sales hours month Type 243 13 5 A 111 4 3 B 250 7 7 C 101 12 1

我正在尝试使用MDS将我的数据帧的3个功能可视化,以在2维中对它们进行缩放

因此,我在二维中执行MDS来绘制新数据,根据目标变量为每个点赋予不同的颜色。我的目标变量是“Type”

In: df

 Sales    hours     month    Type
  243      13        5        A
  111      4         3        B
  250      7         7        C
  101      12        1        A
当我应用MDS时,它运行良好,并生成了新的数据集

但我的问题在于策划

TypeError:列表索引必须是整数或片,而不是str


---->plt.scatter(x,y,c=colors[i],label=all\u outliers\u type.target\u names[i])

似乎您的缩进已关闭:您正在为
循环调用
颜色[i]
,而
i
似乎是
“A”、“B”、“c”中的一个

X = df
X = pd.get_dummies(X)
scaler = MinMaxScaler()
X_scaled = scaler.fit_transform(X)

# Apply the MDS
mds = MDS(2,random_state=0)
X_2d = mds.fit_transform(X_scaled)

# Plot the new dataset.
colors = ['red','green','blue']
plt.rcParams['figure.figsize'] = [7, 7]
plt.rc('font', size=14)

for i in np.unique(df.Type):
  subset = X_2d[df.Type == i]
  
  x = [row[0] for row in subset]
  y = [row[1] for row in subset]

plt.scatter(x,y,c=colors[i],label= df.target_names[i])
plt.legend()
plt.show()