predict_2017_07_03_5.py 文件源码

python
阅读 23 收藏 0 点赞 0 评论 0

项目:mlbootcamp_5 作者: ivan-filonov 项目源码 文件源码
def keras_base(train2, y, test2, v, z, build_model, N_splits, cname, base_seed=42):
    v[cname], z[cname] = 0, 0
    scores = []
    scaler = preprocessing.RobustScaler()
    train3 = scaler.fit_transform(train2)
    test3 = scaler.transform(test2)
    model = build_model(train3.shape[1])
    model.summary(line_length=120)
    model_path = '../data/working/' + cname + base_data_name() + '_keras_model.h5'
    num_splits = N_splits
    ss = model_selection.StratifiedKFold(n_splits=num_splits, random_state=base_seed)
    for n, (itrain, ival) in enumerate(ss.split(train3, y)):
        model = build_model(train3.shape[1])
        xtrain, xval = train3[itrain], train3[ival]
        ytrain, yval = y[itrain], y[ival]
        model.fit(
                xtrain, ytrain,
                epochs=10000,
                batch_size=256,
                validation_data=(xval, yval),
                verbose=0,
                callbacks=keras_fit_callbacks(model_path),
                shuffle=True
            )
        model.load_weights(model_path)
        p = model.predict(xval)
        v.loc[ival, cname] += pconvert(p).ravel()
        score = metrics.log_loss(y[ival], p)
        print(cname, 'fold %d: '%(n+1), score, now())
        scores.append(score)
        z[cname] += pconvert(model.predict(test3).ravel())
        del model
    os.remove(model_path)

    cv=np.array(scores)
    print(cv, cv.mean(), cv.std())
    z[cname] /= num_splits

#@tf_force_cpu
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号