-1

我正在尝试使用 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 时,它运行良好并生成了新的数据集。

但我的问题在于绘图。

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

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

4

1 回答 1

0

似乎您的缩进已关闭:您在循环colors[i]之外调用,并且似乎是.fori"A", "B", "C"

于 2020-06-25T07:32:32.097 回答