gpt4 book ai didi

python - SMOTE 值错误

转载 作者:行者123 更新时间:2023-11-30 09:26:06 25 4
gpt4 key购买 nike

我正在使用 SMOTE 函数对稀疏数据集进行过采样,其中包含大约 98% 的 0 和 2% 的 1。我使用了以下代码

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)

我收到以下错误

line 347, in kneighbors
(train_size, n_neighbors)
ValueError: Expected n_neighbors <= n_samples, but n_samples = 4, n_neighbors = 6

你能帮我解决这个错误吗?

最佳答案

我也遇到了类似的问题。

SMOTE 基于KNN 算法,因此您需要最少数量的样本来创建此子集的新实例。

例如:

  • 如果你试图预测一个整数值,类别 1, 2, 3,并且假设你只有 2 个类别 1 的样本,如何获得 k-3 个邻居?将是不可能的。太不平衡了!!

信息非常明确:

Expected n_neighbors <= n_samples.

因此,您需要拥有比邻居更多或等于的SAMPLES,才能创建新实例。

我查看了您的数据集,您只有 4 个输出 1 的样本。因此,该消息表示您只有 4 个样本,但我需要 6 个邻居来创建它们的新实例。

关于python - SMOTE 值错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45943335/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com