我正在尝试对以下数据运行ML kNN,以下是该文件的一个片段:
每行中的最后一个值是目标值,它以二进制向量的形式表示<;x、 y,z>
我的代码:
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)
set the training data column and target variable
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)
classifier = MLkNN(k=20)
# train classifier.fit(X_train, y_train) # predict predictions = classifier.predict(X_test)
classifier.fit()似乎导致以下错误:
IndexError: index (1684) out of range
以下是完整的堆栈跟踪:
Enter filename: test.csv /Users/brendanmutton/PycharmProjects/chronicMLpred/venv/lib/python3.7/site-packages/sklearn/utils/validation.py:70: FutureWarning: Pass n_neighbors=20 as keyword args. From version 0.25 passing these as positional arguments will result in an error FutureWarning) Traceback (most recent call last): File "/Applications/PyCharm.app/Contents/helpers/pydev/pydevd.py", line 1741, in main() File "/Applications/PyCharm.app/Contents/helpers/pydev/pydevd.py", line 1735, in main globals = debugger.run(setup['file'], None, None, is_module) File "/Applications/PyCharm.app/Contents/helpers/pydev/pydevd.py", line 1135, in run pydev_imports.execfile(file, globals, locals) # execute the script File "/Applications/PyCharm.app/Contents/helpers/pydev/_pydev_imps/_pydev_execfile.py", line 18, in execfile exec(compile(contents+"\n", file, 'exec'), glob, loc) File "/Users/brendanmutton/PycharmProjects/chronicMLpred/venv/chronicMLpred.py", line 171, in main() File "/Users/brendanmutton/PycharmProjects/chronicMLpred/venv/chronicMLpred.py", line 152, in main mlPred = mlknn(X_train, X_test, y_train) File "/Users/brendanmutton/PycharmProjects/chronicMLpred/venv/chronicMLpred.py", line 77, in mlknn classifier.fit(X_train, y_train) File "/Users/brendanmutton/PycharmProjects/chronicMLpred/venv/lib/python3.7/site-packages/skmultilearn/adapt/mlknn.py", line 218, in fit self._cond_prob_true, self._cond_prob_false = self._compute_cond(X, self._label_cache) File "/Users/brendanmutton/PycharmProjects/chronicMLpred/venv/lib/python3.7/site-packages/skmultilearn/adapt/mlknn.py", line 175, in _compute_cond deltas = label_info[neighbors[instance], :].sum(axis=0) File "/Users/brendanmutton/PycharmProjects/chronicMLpred/venv/lib/python3.7/site-packages/scipy/sparse/_index.py", line 33, in getitem row, col = self._validate_indices(key) File "/Users/brendanmutton/PycharmProjects/chronicMLpred/venv/lib/python3.7/site-packages/scipy/sparse/_index.py", line 137, in _validate_indices row = self._asindices(row, M) File "/Users/brendanmutton/PycharmProjects/chronicMLpred/venv/lib/python3.7/site-packages/scipy/sparse/_index.py", line 169, in _asindices raise IndexError('index (%d) out of range' % max_indx) IndexError: index (1684) out of range
有人能帮我找出我做错了什么吗?我已经做了一段时间了,我很困惑这里发生了什么。我对使用skmultilearn有点陌生,所以任何建议都将不胜感激。谢谢
目前没有回答
相关问题 更多 >
编程相关推荐