使用 MDS 可视化多维数据集



我正在尝试使用 MDS 可视化数据帧的 3 个特征,以将它们缩放为 2 维。

因此,我在二维空间中执行了MDS来绘制新数据,并根据目标变量为每个点赋予不同的颜色。 我的目标变量是"类型">

In: df
Sales    hours     month    Type
243      13        5        A
111      4         3        B
250      7         7        C
101      12        1        A
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()

当我应用 MDS 时,它运行良好,并生成了新的数据集。

但我的问题在于阴谋。

类型错误:列表索引必须是整数或切片,而不是 str

----> plt.scatter(x,y,c=colors[i],label=all_outliers_type.target_names[i](

似乎您的缩进已关闭:您在for循环之外调用colors[i]i似乎是"A", "B", "C"之一。

最新更新