gpt4 book ai didi

python - lightGBM 预测相同的值

转载 作者:行者123 更新时间:2023-11-30 08:57:50 25 4
gpt4 key购买 nike

我有一个关于 lgb 的问题。当我写的时候

lgb.train(.......)

它在不到毫秒的时间内完成。 (对于 (10 000,25) )形状数据集。

当我编写预测时,所有输出变量都具有相同的值。

train = pd.read_csv('data/train.csv', dtype = dtypes)
test = pd.read_csv('data/test.csv')

test.head()

X = train.iloc[:10000, 3:-1].values
y = train.iloc[:10000, -1].values

sc = StandardScaler()
X = sc.fit_transform(X)

#pca = PCA(0.95)
#X = pca.fit_transform(X)

d_train = lgb.Dataset(X, label=y)
params = {}
params['learning_rate'] = 0.003
params['boosting_type'] = 'gbdt'
params['objective'] = 'binary'
params['metric'] = 'binary_logloss'
params['sub_feature'] = 0.5
params['num_leaves'] = 10
params['min_data'] = 50
params['max_depth'] = 10

num_round = 10
clf = lgb.train(params, d_train, num_round, verbose_eval=1000)

X_test = sc.transform(test.iloc[:100,3:].values)

pred = clf.predict(X_test, num_iteration = clf.best_iteration)

当我打印 pred 时,所有值都是 (0.49)

这是我第一次使用lightgbm模块。我的代码有错误吗?或者我应该寻找数据集中的一些不匹配项。

最佳答案

您的num_round太小,它只是开始学习并停在那里。除此之外,使 verbose_eval 更小,以便在训练时直观地看到结果。我建议您尝试下面的 lgb.train 代码:

clf = lgb.train(params, d_train, num_boost_round=5000, verbose_eval=10, Early_stopping_rounds = 3500)

始终使用early_stopping_rounds,因为如果没有明显的学习或模型开始过度拟合,模型应该停止。

不要犹豫,询问更多。玩得开心。

关于python - lightGBM 预测相同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52802011/

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