Python 使用MDS可视化多维数据集
我正在尝试使用MDS将我的数据帧的3个功能可视化,以在2维中对它们进行缩放 因此,我在二维中执行MDS来绘制新数据,根据目标变量为每个点赋予不同的颜色。我的目标变量是“Type”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
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()