Ano*_*ym6 5 python nonetype scikit-learn
对以下错误有帮助吗?我正在运行 PCA 和 t-SNE,PCA 似乎运行良好,但无论我在哪里运行 t-SNE,都会遇到以下错误。我的 t-SNE 代码如下:
def T_SNE(X,Label,Component=2,title=""):
tsne = TSNE(n_components=Component)
tsne_result = tsne.fit_transform(X)
tsne_result_df = pd.DataFrame({'T_SNE_1': tsne_result[:,0], 'T_SNE_2': tsne_result[:,1],
'label': Label})
lim = (tsne_result.min()-0.1*tsne_result.min(), tsne_result.max()+0.1*tsne_result.min())
PLOT(TITLE=title,Product="T_SNE",Label=Label,Data=tsne_result_df,lim=lim)
return tsne_result,tsne
result,tsne=T_SNE(X=X_Number,Label=Y_Number,Component=2,title="Digit_data")
Run Code Online (Sandbox Code Playgroud)
以下错误
AttributeError: 'NoneType' object has no attribute 'split'
Run Code Online (Sandbox Code Playgroud)
我不知道这个问题的解决方案,但我如何看待它的工作原理,你必须确保你的输入数据中没有任何负十进制数。在这种情况下它会起作用。
例如:
X = np.array([[0, 0, 0],
[0, 1, 1],
[1, 0, 1],
[1, 1, 1]])
X_embedded = TSNE(n_components=2, learning_rate='auto',init='random', perplexity=3).fit_transform(X)
X_embedded
array([[ 38.441612, -19.513802],
[ 42.340416, 53.716785],
[ 81.7535 , -56.929142],
[-22.048851, 23.391865]], dtype=float32)
Run Code Online (Sandbox Code Playgroud)
这工作正常。但是,如果您更改一个输入值,如下所示:
X = np.array([[0, 0, 0],
[0, 1, 1],
[-1.1, 0, 1],
[1, 1, 1]])
X_embedded = TSNE(n_components=2, learning_rate='auto',init='random', perplexity=3).fit_transform(X)
X_embedded
self.num_threads = self.get_num_threads()
608 self._get_extra_info()
C:\ProgramData\Anaconda3\lib\site-packages\threadpoolctl.py in get_version(self)
644 lambda: None)
645 get_config.restype = ctypes.c_char_p
--> 646 config = get_config().split()
647 if config[0] == b"OpenBLAS":
648 return config[1].decode("utf-8")
AttributeError: 'NoneType' object has no attribute 'split'
Run Code Online (Sandbox Code Playgroud)
它将通过错误。我不确定它所存在的内部问题,但根据我的理解,根据 sklearn tsne 中的文档,它需要平方距离。
如果您确保输入数据中没有任何负十进制数,它将起作用。
免责声明:这只是我对 tsne 工作方式的理解,可能有些专家可以强调其他工作或确切的问题。
编辑1:我正在编辑这个答案,因为我得到了一个解决方案。您已确保以下软件包具有所需的版本并重新启动内核,它应该可以工作。
pip install threadpoolctl==3.1.0
Run Code Online (Sandbox Code Playgroud)
来源:sklearn KMeans 不起作用,因为我只得到“NoneType”对象在非空数组上没有属性“split”
我遇到了同样的问题,似乎与 tSNE 代码有关,没有很好地处理错误。预先设置您的perplexity值,对于我正在处理的数据,小于 120 的困惑度值工作正常,但超出此值我收到此错误。(我还设置了init='pca',不确定这是否有任何区别。通常困惑度设置为 5 到 50 之间的任意值,如原始文献中所建议的那样。
| 归档时间: |
|
| 查看次数: |
2042 次 |
| 最近记录: |