skmultilearn MLkNN索引器:索引(1684)超出范围

2024-06-16 11:11:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试对以下数据运行ML kNN,以下是该文件的一个片段:

example of datafile

每行中的最后一个值是目标值,它以二进制向量的形式表示<;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有点陌生,所以任何建议都将不胜感激。谢谢


Tags: inpytestdfindexvenvlibline