Pyt*_*ner 1 python machine-learning
我正在使用 SMOTE 函数对包含大约 98% 0s 和 2% 1s 的稀疏数据集进行过采样。我使用了以下代码
from imblearn.over_sampling import SMOTE
import os
import pandas as pd
df_input= pd.read_csv('input_tr.csv',index_col=0)
train_X=df_input.ix[:, df_input.columns != 'row_num']
df_output=pd.read_csv("output_tr.csv",index_col=0)
train_y=df_output
sm = SMOTE(random_state=12, ratio = 1.0)
train_X_sm,train_y_sm=sm.fit_sample(train_X,train_y)
Run Code Online (Sandbox Code Playgroud)
我收到以下错误
line 347, in kneighbors
(train_size, n_neighbors)
ValueError: Expected n_neighbors <= n_samples, but n_samples = 4, n_neighbors = 6
Run Code Online (Sandbox Code Playgroud)
你能帮我解决这个错误吗?
我有一个类似的问题。
SMOTE 基于KNN 算法,因此您需要最少数量的样本来创建此子集的新实例。
例如:
该消息非常清楚:
预期 n_neighbors <= n_samples。
因此,您需要比邻居拥有更多或等于SAMPLES,才能创建新实例。
我看看你的数据集,你只有 4 个 OUTPUT 1 的样本。所以,消息说你只有 4 个,但我需要 6 个邻居来创建它们的新实例。
归档时间: |
|
查看次数: |
4988 次 |
最近记录: |