小编Geo*_*rge的帖子

在SciKit-Learn中使用XGBoost进行交叉验证的网格搜索和早期停止

我对sci-kit学习相当新,并一直试图超级参数调整XGBoost.我的目标是使用早期停止和网格搜索来调整模型参数并使用早期停止来控制树的数量并避免过度拟合.

当我使用交叉验证进行网格搜索时,我希望在早期停止标准中也使用交叉验证.到目前为止我的代码看起来像这样:

import numpy as np
import pandas as pd
from sklearn import model_selection
import xgboost as xgb

#Import training and test data
train = pd.read_csv("train.csv").fillna(value=-999.0)
test = pd.read_csv("test.csv").fillna(value=-999.0)

# Encode variables
y_train = train.price_doc
x_train = train.drop(["id", "timestamp", "price_doc"], axis=1)

# XGBoost - sklearn method
gbm = xgb.XGBRegressor()

xgb_params = {
'learning_rate': [0.01, 0.1],
'n_estimators': [2000],
'max_depth': [3, 5, 7, 9],
'gamma': [0, 1],
'subsample': [0.7, 1],
'colsample_bytree': [0.7, 1]
}

fit_params = {
'early_stopping_rounds': 30,
'eval_metric': 'mae',
'eval_set': …
Run Code Online (Sandbox Code Playgroud)

python scikit-learn cross-validation grid-search xgboost

9
推荐指数
1
解决办法
1961
查看次数

Python 中的 H2OFrame() 正在向 Pandas DataFrame 添加额外的重复行-错误?

使用 h2o.H2OFrame() 函数将 Pandas 数据帧转换为 H2O 帧时,发生错误。

正在 H2o 框架中创建其他行。当我查看此内容时,新行似乎与其他行重复。根据数据大小,添加的重复行数会有所不同,但通常约为 2-10。

代码:

train_h2o = h2o.H2OFrame(python_obj=train_df_complete)

print(train_df_complete.shape[0])
print(train_h2o.nrow)
Run Code Online (Sandbox Code Playgroud)

输出:

3871998
3872000
Run Code Online (Sandbox Code Playgroud)

正如您在此处看到的,添加了 2 个额外的行。仔细研究后,现在每个用户有 2 行,供 2 个用户使用。即 2 行已被复制。

这似乎是一个主要错误,有没有人遇到过这个问题,有没有办法修复它?

谢谢

python python-3.x pandas h2o

7
推荐指数
1
解决办法
1015
查看次数

使用geom_polygon创建英国地图

我是R的新手,最近一直在尝试使用以下代码在ggplot2中创建英国大纲:

library(ggplot2)
UK <- map_data("world2Hires", region = "UK")
ggplot() + geom_polygon(data = UK, aes(x = long, y = lat, group = group)) +
coord_map()
Run Code Online (Sandbox Code Playgroud)

ggplot2代码的结果:

ggplot2代码的结果

这将创建上面的地图,因为它没有考虑地图的经度比例并将其拉伸到x轴.英国的经度从-x到+ x,这引起了问题.我无法找到任何解决方法,所以任何帮助将不胜感激.

谢谢!

r geospatial ggplot2

3
推荐指数
1
解决办法
3313
查看次数

在R中将输出作为数据帧编写一个for循环

我目前正在研究“ R for Data Science”一书。

我正在尝试解决此练习问题(21.2.1 Q1.4),但在启动for循环之前无法确定正确的输出。

将for循环编写为:为?=?10、0、10和100中的每一个生成10个随机法线。

就像本书中以前的问题一样,我一直试图将其插入向量输出中,但是对于本示例,看来我需要将输出作为数据框?

到目前为止,这是我的代码:

values <- c(-10,0,10,100)
output <- vector("double", 10)

for (i in seq_along(values)) {
  output[[i]] <- rnorm(10, mean = values[[i]])
} 
Run Code Online (Sandbox Code Playgroud)

我知道输出错误,但是不确定如何在此处创建所需的格式。任何帮助,不胜感激。谢谢!

for-loop r

0
推荐指数
1
解决办法
8210
查看次数