我使用xgboostR 中的库在稀疏.model.matrix 生成的矩阵上训练了一个简单模型,然后对两个验证数据集进行了预测 - 一个由sparse.model.matrixfrom创建Matrix,第二个由model.matrixfrom创建stats。令我惊讶的是,结果差异很大。稀疏矩阵和稠密矩阵具有相同的维度,所有数据都是数值数据并且不存在缺失值。
这两组的平均预测如下:
这是一个功能还是一个错误?
更新:
我注意到,当所有值均为正异或负时,不会发生错误。如果变量x1有定义x1=sample(1:7, 2000, replace=T),则两种情况下的均值预测相同。
R 中的代码:
require(Matrix)
require(xgboost)
valid <- data.frame(y=sample(0:1, 2000, replace=T), x1=sample(-1:5, 2000, replace=T), x2=runif(2000))
train <- data.frame(y=sample(0:1, 10000, replace=T), x1=sample(-1:5, 10000, replace=T), x2=runif(10000))
sparse_train_matrix <- sparse.model.matrix(~ ., data=train[, c("x1", "x2")])
d_sparse_train_matrix <- xgb.DMatrix(sparse_train_matrix, label = train$y)
sparse_valid_matrix <- sparse.model.matrix(~ ., data=valid[, c("x1", "x2")])
d_sparse_valid_matrix <- xgb.DMatrix(sparse_valid_matrix, label = valid$y)
valid_matrix <- model.matrix(~ ., data=valid[, …Run Code Online (Sandbox Code Playgroud) 我有一个大文本文件(超过3亿条记录).有一个字段包含YYYYMM格式的日期.目标字段是日期类型,我正在使用MS SQL 2008 R2服务器.由于数据量巨大,我更喜欢使用批量插入.这是我已经做过的事情:
bulk insert Tabela_5
from 'c:\users\...\table5.csv'
with
(
rowterminator = '\n',
fieldterminator = ',',
tablock
)
select * from Tabela_5
Run Code Online (Sandbox Code Playgroud)
201206在文件中原来是2020-12-06在服务器上,而我希望它2012-06-01(我不关心这一天).有没有办法将这种格式的日期批量插入日期类型的字段?
亲切的问候maciej pitucha