如何解决skmultilearn MLkNN-IndexError:索引1684超出范围
我正在尝试对以下数据运行ML-kNN,这是该文件的代码段:
每行中的最后一个值是目标,它以
我的代码:
names = ['sex','bmi','distol','systol','br1','br2','br3','br4', 'br5','br6', 'br7','br8','br9','br10','br11','br12','br13','br14','br15','br16', 'br17','br18','br19','br20','br21','br22','br23','br24','br25','br26', 'ue1','ue2','ue3','ue4','ue5','ue6','ue7','ue8','ue9','ue10','ue11', 'ue12','lf1','lf2','lf3','lf4','lf5','lf6','lf7','lf8','lf9','lf10', 'lf11','lf12','lf13','lf14','lf15','lf16','lf17','lf18','lf19', 'lf20','dClass']
# add header to the dataframe df = pd.read_csv(data,header=None,names=names)
设置训练数据列和目标变量
y_df = df['dClass'] X_df = df.drop(columns=['dClass']) # encode labels enc = preprocessing.LabelEncoder() y = np.array(enc.fit_transform(df['dClass'])) X = np.array(X_df) # split the dataset X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.25,random_state=42)
分类器= MLkNN(k = 20)
# train classifier.fit(X_train,y_train) # predict predictions = classifier.predict(X_test)
classifier.fit()似乎引起以下错误:
IndexError:索引(1684)超出范围
这是完整的堆栈跟踪:
输入文件名:test.csv /Users/brendanmutton/PycharmProjects/chronicMLpred/venv/lib/python3.7/site-packages/sklearn/utils/validation.py:70:FutureWarning:将n_neighbors = 20用作关键字args。从0.25版开始,将它们作为位置参数传递将导致错误 未来警告) 追溯(最近一次通话): 文件“ /Applications/PyCharm.app/Contents/helpers/pydev/pydevd.py”,行1741,在 主要() 文件“ /Applications/PyCharm.app/Contents/helpers/pydev/pydevd.py”,行1735,在主目录中 全局= debugger.run(setup ['file'],None,None,is_module) 运行中的文件“ /Applications/PyCharm.app/Contents/helpers/pydev/pydevd.py”,行1135 pydev_imports.execfile(file,globals,locals)#执行脚本 execfile中的文件“ /Applications/PyCharm.app/Contents/helpers/pydev/_pydev_imps/_pydev_execfile.py”,第18行 exec(compile(contents +“ \ n”,file,'exec'),glob,loc) 文件“ /Users/brendanmutton/PycharmProjects/chronicMLpred/venv/chronicMLpred.py”,第171行,位于 主要() 主目录中的文件“ /Users/brendanmutton/PycharmProjects/chronicMLpred/venv/chronicMLpred.py” mlPred = mlknn(X_train,X_test,y_train) 文件“ /Users/brendanmutton/PycharmProjects/chronicMLpred/venv/chronicMLpred.py”,第77行,在mlknn中 classifier.fit(X_train,y_train) 文件“ /Users/brendanmutton/PycharmProjects/chronicMLpred/venv/lib/python3.7/site-packages/skmultilearn/adapt/mlknn.py”,适合第218行 self._cond_prob_true,self._cond_prob_false = self._compute_cond(X,self._label_cache) _compute_cond中的第175行“ /Users/brendanmutton/PycharmProjects/chronicMLpred/venv/lib/python3.7/site-packages/skmultilearn/adapt/mlknn.py” deltas = label_info [邻居[instance],:]。sum(axis = 0) getitem 中的文件“ /Users/brendanmutton/PycharmProjects/chronicMLpred/venv/lib/python3.7/site-packages/scipy/sparse/_index.py”,第33行 行,col = self._validate_indices(key) _validate_indices中的第137行“ /Users/brendanmutton/PycharmProjects/chronicMLpred/venv/lib/python3.7/site-packages/scipy/sparse/_index.py” 行= self._asindices(row,M) _asindices中的文件“ /Users/brendanmutton/PycharmProjects/chronicMLpred/venv/lib/python3.7/site-packages/scipy/sparse/_index.py”,行169 提高IndexError('索引(%d)超出范围'%max_indx) IndexError:索引(1684)超出范围
有人可以帮我弄清楚我做错了什么吗?我已经在这里呆了一段时间了,对于这里发生的事情我感到非常困惑。我对使用skmultilearn有点陌生,因此任何建议将不胜感激。谢谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。