使用lightgbm实现充电桩分类

版权声明:未经王小波同学允许不得转载本文内容,否则将视为侵权;博主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)


猜你喜欢

转载自blog.csdn.net/qq_38900441/article/details/83472477