I want to train the lightgbm model as follows:
train = pd.read_csv(path + "all_train.csv")
# last 8 days for online predictions
# left days for offline train&valid dataset
online_pred = get_windows(train, 541, 548+1)
offline_train = get_windows(train, 0, 541-7)
offline_valid = get_windows(train, 541-7, 541)
cate_feat = train.select_dtypes(include=[np.object]).columns
features = [c for c in train.columns if #(c not in cate_feat) &
(c not in ['pv', 'uv'])
]
train_x = offline_train[features]
train_y = offline_train['pv']
valid_x = offline_valid[features]
valid_y = offline_valid['pv']
for it in cate_feat:
train_x.loc[:,it] = LabelEncoder().fit_transform(train_x[it].astype(str))
valid_x.loc[:,it] = LabelEncoder().fit_transform(valid_x[it].astype(str))
print(train_x.head())
print(valid_x.head())
del offline_train, offline_valid
import gc
gc.collect()
from time import sleep
sleep(30)
for it in cate_feat:
train_x = train_x.astype('category')
valid_x = train_y.astype('category')
trn_data = lgb.Dataset(train_x.values, label=train_y.values)
val_data = lgb.Dataset(valid_x.values, label=valid_y.values)
del train_x, train_y, valid_x, valid_y, train
gc.collect()
sleep(30)
pv_predict = np.zeros((online_pred.shape[0], ))
clf = lgb.train(params, trn_data, 10000, valid_sets=[trn_data, val_data], verbose_eval=100, early_stopping_rounds=500,
categorical_feature=cate_feat,
feval=cita_score, evals_result=None
)
pred = lgb.pred
And here is the train
DataFrame
:
print(train.head())
time event_type pv uv distinct_id browser \
0 20181101 $pageview 6549 674 -8539420110265898132 NaN
1 20181101 $pageview 6549 674 -1032985922238039245 Chrome
2 20181101 $pageview 6549 674 -1032985922238039245 Chrome
3 20181101 $pageview 6549 674 -1032985922238039245 Chrome
4 20181101 $pageview 6549 674 -1046230289121081999 NaN
browser_version is_first_day is_login lib lib_version os os_version \
0 NaN 1.0 0 JS 4.1.0.3 NaN NaN
1 70.0.3538.77 1.0 0 JS 4.1.0.3 Windows 10
2 70.0.3538.77 1.0 0 JS 4.1.0.3 Windows 10
3 70.0.3538.77 1.0 0 JS 4.1.0.3 Windows 10
4 NaN 1.0 0 JS 4.1.0.3 NaN NaN
platform screen_height screen_width title \
0 JS 1024.0 1024.0 demo
1 JS 1080.0 1920.0 register
2 JS 1080.0 1920.0 demo
3 JS 1080.0 1920.0 register
4 JS 1600.0 1600.0 private deploy
url country province city \
0 https://ark.analysys.cn/portal/industry-demo.html China PK PK
1 https://ark.analysys.cn/view/sign/signup.html?... China PK PK
2 https://ark.analysys.cn/portal/industry-demo.html China SH SH
3 https://ark.analysys.cn/view/sign/signup.html?... China SH SH
4 https://ark.analysys.cn/portal/access-private.... China PK PK
referrer is_first_time model \
0 NaN NaN NaN
1 https://ark.analysys.cn/?utm_campaign=%E6%96%B... NaN NaN
2 https://ark.analysys.cn/?utm_campaign=%E6%96%B... NaN NaN
3 https://ark.analysys.cn/portal/industry-demo.html NaN NaN
4 NaN NaN NaN
brand utm_campaign utm_content utm_medium utm_source utm_term \
0 NaN NaN NaN NaN NaN NaN
1 NaN NaN NaN NaN NaN NaN
2 NaN NaN NaN NaN NaN NaN
3 NaN NaN NaN NaN NaN NaN
4 NaN NaN NaN NaN NaN NaN
utm_campaign_id startup_time time_zone web_crawler traffic_source_type \
0 NaN 1.540976e+12 NaN NaN NaN
1 NaN 1.541053e+12 NaN NaN NaN
2 NaN 1.541053e+12 NaN NaN NaN
3 NaN 1.541053e+12 NaN NaN NaN
4 NaN 1.541018e+12 NaN NaN NaN
search_engine social_share_from referrer_domain social scene \
0 NaN NaN NaN NaN NaN
1 NaN NaN NaN NaN NaN
2 NaN NaN NaN NaN NaN
3 NaN NaN NaN NaN NaN
4 NaN NaN NaN NaN NaN
search_keyword scene_type channel language session_id social_media \
0 NaN NaN NaN NaN NaN NaN
1 NaN NaN NaN NaN NaN NaN
2 NaN NaN NaN NaN NaN NaN
3 NaN NaN NaN NaN NaN NaN
4 NaN NaN NaN NaN NaN NaN
signup_time url_domain is_time_calibrated click_x click_y device_type \
0 NaN NaN NaN NaN NaN NaN
1 NaN NaN NaN NaN NaN NaN
2 NaN NaN NaN NaN NaN NaN
3 NaN NaN NaN NaN NaN NaN
4 NaN NaN NaN NaN NaN NaN
element_path page_height page_width event_duration viewport_height \
0 NaN NaN NaN NaN NaN
1 NaN NaN NaN NaN NaN
2 NaN NaN NaN NaN NaN
3 NaN NaN NaN NaN NaN
4 NaN NaN NaN NaN NaN
viewport_position viewport_width campaign_shortlink pagename nav_name \
0 NaN NaN NaN NaN NaN
1 NaN NaN NaN NaN NaN
2 NaN NaN NaN NaN NaN
3 NaN NaN NaN NaN NaN
4 NaN NaN NaN NaN NaN
referrer_demo board_name click_position datafrom day
0 NaN NaN NaN NaN 0
1 NaN NaN NaN NaN 0
2 NaN NaN NaN NaN 0
3 NaN NaN NaN NaN 0
4 NaN NaN NaN NaN 0
When I try to use lgb.train
to train model, I get error:
41 clf = lgb.train(params, trn_data, 10000, valid_sets=[trn_data, val_data], verbose_eval=100, early_stopping_rounds=500, 42 categorical_feature=cate_feat,
---> 43 feval=cita_score, evals_result=None 44 ) 45
~/.local/lib/python3.5/site-packages/lightgbm/engine.py in train(params, train_set, num_boost_round, valid_sets, valid_names, fobj, feval, init_model, feature_name, categorical_feature, early_stopping_rounds, evals_result, verbose_eval, learning_rates, keep_training_booster, callbacks) 140 ._set_predictor(predictor) \ 141 .set_feature_name(feature_name) \ --> 142 .set_categorical_feature(categorical_feature) 143 144 is_valid_contain_train = False
~/.local/lib/python3.5/site-packages/lightgbm/basic.py in set_categorical_feature(self, categorical_feature) 1196
Dataset with set categorical features. 1197 """ -> 1198 if self.categorical_feature == categorical_feature: 1199 return self 1200 if self.data is not None:ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
I have searched some related questions and I find some of them get such errors because of numpy.ndarray
problems like here.
But I think I didn't find similar problems here.
So could anyone help me?
Thanks in advances.
from lgb.train ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
No comments:
Post a Comment