Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python fit_变换(图像)TSNE方法的Numpy数组格式_Python_Numpy_Machine Learning_Scikit Learn - Fatal编程技术网

Python fit_变换(图像)TSNE方法的Numpy数组格式

Python fit_变换(图像)TSNE方法的Numpy数组格式,python,numpy,machine-learning,scikit-learn,Python,Numpy,Machine Learning,Scikit Learn,我正在使用Scikit learn for tSNE查询大约1000个散点图,但我似乎需要一个2D numpy阵列来访问fit_变换方法。我是Python新手 我的代码 from sklearn.manifold import TSNE import numpy as np import cv2 mypath='/Path/to/files/scatterplots/' onlyfiles = [ f for f in listdir(mypath) if isfile(join(mypath,

我正在使用Scikit learn for tSNE查询大约1000个散点图,但我似乎需要一个2D numpy阵列来访问fit_变换方法。我是Python新手

我的代码

from sklearn.manifold import TSNE
import numpy as np
import cv2
mypath='/Path/to/files/scatterplots/'
onlyfiles = [ f for f in listdir(mypath) if isfile(join(mypath,f)) ]
photos = np.empty(len(onlyfiles), dtype=object)
for n in range(0, len(onlyfiles)):
  photos[n] = cv2.imread( join(mypath,onlyfiles[n]) )

fig, axes = plt.subplots(2, 2, figsize=(10,10), subplot_kw={'xticks':(), 'yticks':()})
for ax, img in zip(axes.ravel(), photos):
   ax.imshow(img)
输出

问题代码

tsne = TSNE(random_state=50)
digits_tsne = tsne.fit_transform (photos.data)
错误

ValueError回溯(最近一次调用上次) 在

/fit_变换中的Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/sklearn/manifold/t_sne.py(self,X,y)

-->894嵌入=自拟合(X)

  • t_sne.py内的3行错误输出
我相信fit_变换方法需要一个2D numpy数组,例如

'target': array([0, 1, 2, 3])
其中0-3是指每个散点图1-4后面的不同数据(寄生虫)

请求
如何将目标阵列组合到图像numpy阵列中,以便fit_transform可以看到并处理它?

请查看文档以了解:

X:阵列、形状(n个样本、n个特征)

为了使您的案例有效,您需要将图像投射到1d阵列,并从中组合出一个矩阵

在代码方面,以下代码片段应该完成二维t-SNE集群的工作:

arr = [cv2.imread( join(mypath,onlyfiles[n])).ravel() for n in range(0, len(onlyfiles))]
X = np.vstack[arr]
tsne = TSNE(n_components=2).fit_transform(X)

请检查以下文件:

X:阵列、形状(n个样本、n个特征)

为了使您的案例有效,您需要将图像投射到1d阵列,并从中组合出一个矩阵

在代码方面,以下代码片段应该完成二维t-SNE集群的工作:

arr = [cv2.imread( join(mypath,onlyfiles[n])).ravel() for n in range(0, len(onlyfiles))]
X = np.vstack[arr]
tsne = TSNE(n_components=2).fit_transform(X)

照片.数据的形状是什么?谢谢,打印(照片.形状)。。。。输出(4,)。只是为了解释一下,这只是一个示例数据集。为了适应算法,您需要向它提供数据。在您的例子中,每个图像的像素值。尝试使用单个图像运行
fit\u transform()
。我猜那张图片应该是2D形状的。谢谢,我刚才试过了,得到了同样的错误。。是的,图像具有2D形状。
照片的形状是什么。数据
?谢谢,打印(照片。形状)。。。。输出(4,)。只是为了解释一下,这只是一个示例数据集。为了适应算法,您需要向它提供数据。在您的例子中,每个图像的像素值。尝试使用单个图像运行
fit\u transform()
。我猜那张图片应该是2D形状的。谢谢,我刚才试过了,得到了同样的错误。。是的,这张图片是2D形状的。谢谢,这非常令人兴奋。。。我很快会回来的。再次谢谢你。唯一的区别是“X=np.vstack(arr)”。相关的手稿将需要大约1年的时间才能发表,但我肯定会承认@SergeyBushmanov是一个重要的帮助来源。谢谢,这非常令人兴奋。。。我很快会回来的。再次谢谢你。唯一的区别是“X=np.vstack(arr)”。相关的手稿大约需要1年时间才能发表,但我肯定会承认@SergeyBushmanov是一个重要的帮助来源。