版权声明:未经王小波同学允许不得转载本文内容,否则将视为侵权;博主qq:1419758909;反正也没人转载~ https://blog.csdn.net/qq_38900441/article/details/83472477
import lightgbm as lgb
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
# 导入数据
col_names = ["ID","K1K2驱动信号","电子锁驱动信号","急停信号","门禁信号","THDV-M","THDI-M","label"]
data = pd.read_csv("data_train.csv",names=col_names)
dataset_X = data[["K1K2驱动信号","电子锁驱动信号","急停信号","门禁信号","THDV-M","THDI-M"]].as_matrix()
dataset_Y = data[["label"]].as_matrix()
dataset_Y = np.array(dataset_Y).reshape(len(dataset_Y))
x_train, x_test, y_train, y_test = train_test_split(dataset_X, dataset_Y,test_size=0.2,)
# create dataset for lightgbm
lgb_train = lgb.Dataset(x_train, y_train)
lgb_eval = lgb.Dataset(x_test, y_test, reference=lgb_train)
param = {
'max_depth':8,
'num_leaves':16,
'learning_rate':0.4,
'scale_pos_weight':1,
'num_threads':8,
'objective':'binary',
'bagging_fraction':1,
'bagging_freq':1,
'min_sum_hessian_in_leaf':0.01
}
param['is_unbalance']='true'
param['metric'] = 'auc'
print('Start training...')
gbm = lgb.train(param,
lgb_train,
num_boost_round=500,
valid_sets=lgb_eval,
)
print('Start predicting...')
y_predict_test = gbm.predict(x_test)
print(y_predict_test)
def read_data():
col_names = ["ID", "K1K2驱动信号", "电子锁驱动信号", "急停信号", "门禁信号", "THDV-M", "THDI-M"]
data = pd.read_csv("data_test.csv", names=col_names)
# print(data.info())
data = data.fillna(0)
return data[["K1K2驱动信号", "电子锁驱动信号", "急停信号", "门禁信号", "THDV-M", "THDI-M"]],data["ID"]
subdata ,Id = read_data()
y_predict = gbm.predict(subdata)
print(y_predict)
for i in range(len(y_predict)):
if y_predict[i]>0.5:
y_predict[i]=1
else:
y_predict[i]=0
y_predict = [int(item) for item in y_predict]
print(y_predict)
submission = pd.DataFrame({
"id":Id,
"predictrion": y_predict
})
submission.to_csv("lgb_test1234.csv",index=None,header=None)