我正在尝试根据此处的工作运行利用 UMAP 进行降维的代码:https ://umap-learn.readthedocs.io/en/latest/basic_usage.html
我在 Spyder (Python 3.7) 上运行。我收到此错误:
TypeError: a bytes-like object is required, not 'list'
这是我的代码:
将 numpy 导入为 np 从 sklearn.datasets 导入 load_iris、load_digits 从 sklearn.model_selection 导入 train_test_split 将 matplotlib.pyplot 导入为 plt 将 seaborn 导入为 sns 将熊猫导入为 pd 将 umap.umap_ 导入为 umap # 导入 ummap 从 sklearn.preprocessing 导入 StandardScaler 从 matplotlib 导入补丁 #data = pd.read_csv('/Users/chrisweber/Documents/Walsh Lab/UMAP.csv') data = pd.read_csv('/Users/Elizabeth/Desktop/UMAPtest.csv') # 取消注释某一部分或另一部分 ################################## 第 1 部分 - UMAP ########### ################################################# ###### 减速器 = umap.UMAP() 端点=数据[['RR','na1','fa1','nt1','ft1','nt2','ft2']].values scaled_endpoints = StandardScaler().fit_transform(endpoints) 嵌入 = reducer.fit_transform(scaled_endpoints) plt.scatter( 嵌入[:, 0], 嵌入[:, 1], c=[sns.color_palette()[x] for x in data.Identifier.map({0:0, 1:1})]) plt.gca().set_aspect('equal', 'datalim') plt.title('根据标识符进行 UMAP 投影', fontsize=24) 蓝色 = patch.Patch(color='steelblue', label='0') 橙色=补丁。补丁(颜色='橙色',标签='1') plt.legend(handles=[蓝色, 橙色]) ################################################# ################################################# #################### ################################# 第 2 部分 - 配对图 ########### ################################################# ## # sns.pairplot(数据,色调='标识符') # plt.subplots_adjust(.05, .05, .95, .95) # plt.suptitle('标识符的端点分析') ################################################# ################################################# #################### plt.show()
这是我在运行时收到的消息:
回溯(最近一次通话最后): <module> 中的文件“C:\Users\Elizabeth\Desktop\UMAPs.py”,第 31 行 嵌入 = reducer.fit_transform(scaled_endpoints) 文件“C:\ProgramData\Anaconda3\lib\site-packages\umap\umap_.py”,第 2012 行,在 fit_transform 中 self.fit(X, y) 文件“C:\ProgramData\Anaconda3\lib\site-packages\umap\umap_.py”,第 1833 行,适合 self._search_graph.transpose() 文件“C:\ProgramData\Anaconda3\lib\site-packages\scipy\sparse\lil.py”,第 437 行,转置 return self.tocsr(copy=copy).transpose(axes=axes, copy=False).tolil(copy=False) 文件“C:\ProgramData\Anaconda3\lib\site-packages\scipy\sparse\lil.py”,第 462 行,在 tocsr _csparsetools.lil_get_lengths(self.rows, indptr[1:]) 文件“_csparsetools.pyx”,第 109 行,在 scipy.sparse._csparsetools.lil_get_lengths View.MemoryView.memoryview_cwrapper 中的文件“stringsource”,第 658 行 View.MemoryView.memoryview.__cinit__ 中的文件“stringsource”,第 349 行 TypeError:需要一个类似字节的对象,而不是“列表”``` 我不知道如何修复错误或查找什么,因为查找错误没有给我任何帮助。