使用TSNE进行降维。为什么3D图形不起作用?

劳琳达·苏扎(Laurinda Souza)

我使用了Sklearn的Digits数据集,并尝试使用TSNE(t分布随机邻居嵌入)将尺寸从64减少到3:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
#%matplotib inline
from sklearn.manifold import TSNE
from sklearn.datasets import load_digits
from mpl_toolkits.mplot3d import Axes3D


digits = load_digits()
digits_df = pd.DataFrame(digits.data,)
digits_df["target"] = pd.Series(digits.target)

tsne = TSNE(n_components=3)
digits_tsne = tsne.fit_transform(digits_df.iloc[:,:64])
digits_df_tsne = pd.DataFrame(digits_tsne,
                            columns =["Component1","Component2","Component3"])

finalDf = pd.concat([digits_df_tsne, digits_df["target"]], axis = 1)

#Visualizing 3D
figure = plt.figure(figsize=(9,9))
axes = figure.add_subplot(111,projection = "3d")
dots = axes.scatter(xs = finalDf[:,0],ys = finalDf[:,1],zs = finalDf[:,2],
                   c = digits.target, cmap = plt.cm.get_cmap("nipy_spectral_r",10))

finalDf:

在此处输入图片说明

你错了:

TypeError: '(slice(None, None, None), 0)' is an invalid key

怎么了?有人可以帮我吗?

扎比尔·纳粹

您正在尝试对无效的pandas数据帧进行numpy切片,因此请先将数据帧转换为numpy数组。

这是更新的代码:-

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
#%matplotib inline
from sklearn.manifold import TSNE
from sklearn.datasets import load_digits
from mpl_toolkits.mplot3d import Axes3D


digits = load_digits()
digits_df = pd.DataFrame(digits.data,)
digits_df["target"] = pd.Series(digits.target)

tsne = TSNE(n_components=3)
digits_tsne = tsne.fit_transform(digits_df.iloc[:,:64])
digits_df_tsne = pd.DataFrame(digits_tsne,
                            columns =["Component1","Component2","Component3"])

finalDf = pd.concat([digits_df_tsne, digits_df["target"]], axis = 1)

#Visualizing 3D
figure = plt.figure(figsize=(9,9))
axes = figure.add_subplot(111,projection = "3d")
dots = axes.scatter(xs = finalDf.to_numpy()[:,0],ys = finalDf.to_numpy()[:,1],zs = finalDf.to_numpy()[:,2],
                   c = digits.target, cmap = plt.cm.get_cmap("nipy_spectral_r",10))

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么这个3维数组不起作用?

尝试使用Line3D对象时,为什么matplotlib 3d动画不起作用

为什么“Checkbox hack”对我的 3d 元素不起作用?

为什么使用Rackunit进行的此测试不起作用?

为什么使用setInterval()进行反向for循环不起作用?

为什么我的d3.tip不起作用?

为什么.each()在D3中不起作用?

为什么D3 Drag不起作用?

为什么Dijkstra的算法对给定的图形不起作用?

为什么要使用矩阵进行3D投影?

为什么“使用”不起作用,但“包含”却起作用?

为什么二维随机游走的一维变体不起作用?

使用list.count使用.sort()就地对列表进行排序不起作用。为什么?

3D Touch 操作不起作用(swift 3)

为什么对小数字进行排序不起作用?

为什么对搜索结果进行分页不起作用?

为什么在使用jQuery折叠标头不起作用时进行过渡?

使用Lambda进行排序无法弄清楚为什么Java不起作用

为什么使用我的活动模式对元组进行模式匹配不起作用?

为什么使用Sidekiq进行Redis命名间隔不起作用?

为什么使用套接字源和多个接收器进行流式查询不起作用?

为什么使用泛型类型进行转换不起作用?

为什么不起作用?

3D转换在Firefox上不起作用(示例)

渲染 3d lwjgl 平坦地形不起作用

3d元素在Firefox中不起作用

为什么我的d3.tool提示对这两行都不起作用?

为什么d3js exit()。remove()不起作用?

为什么我的 css 在 d3js 上不起作用