mysql修改表编码为ytf8,LGB+XGB+CNN一般写法

imp = Imputer(missing_values='NaN', strategy='mean', axis=0)

X_train=imp.fit_transform(X_train)

sc= StandardScaler(with_mean=False)

sc.fit(X_train)

X_train=sc.transform(X_train)

val_X=sc.transform(val_X)

X_test=sc.transform(X_test)

ann_scale= 1

from keras.layers importEmbedding

model=Sequential()

model.add(Embedding(X_train.shape[1] + 1,

EMBEDDING_DIM,

input_length=MAX_SEQUENCE_LENGTH))#model.add(Dense(int(256 / ann_scale), input_shape=(X_train.shape[1],)))

model.add(Dense(int(256 /ann_scale)))

model.add(Activation('tanh'))

model.add(Dropout(0.3))

model.add(Dense(int(512 /ann_scale)))

model.add(Activation('relu'))

model.add(Dropout(0.3))

model.add(Dense(int(512 /ann_scale)))

model.add(Activation('tanh'))

model.add(Dropout(0.3))

model.add(Dense(int(256 /ann_scale)))

model.add(Activation('linear'))

model.add(Dense(1))

model.add(Activation('sigmoid'))#For a multi-class classification problem

model.summary()

class_weight1= class_weight.compute_class_weight('balanced',

np.unique(y),

y)#-----------------------------------------------------------------------------------------------------------------------------------------------------#AUC for a binary classifier

defauc(y_true, y_pred):

ptas= tf.stack([binary_PTA(y_true,y_pred,k) for k in np.linspace(0, 1, 1000)],axis=0)

pfas= tf.stack([binary_PFA(y_true,y_pred,k) for k in np.linspace(0, 1, 1000)],axis=0)

pfas= tf.concat([tf.ones((1,)) ,pfas],axis=0)

binSizes= -(pfas[1:]-pfas[:-1])

s= ptas*binSizesreturn K.sum(s, axis=0)#PFA, prob false alert for binary classifier

def binary_PFA(y_true, y_pred, threshold=K.variable(value=0.5)):

y_pred= K.cast(y_pred >= threshold, 'float32')#N = total number of negative labels

N = K.sum(1 -y_true)#FP = total number of false alerts, alerts from the negative class labels

FP = K.sum(y_pred - y_pred *y_true)return FP/N#P_TA prob true alerts for binary classifier

def binary_PTA(y_true, y_pred, threshold=K.variable(value=0.5)):

y_pred= K.cast(y_pred >= threshold, 'float32')#P = total number of positive labels

P =K.sum(y_true)#TP = total number of correct alerts, alerts from the positive class labels

TP = K.sum(y_pred *y_true)return TP/P#-----------------------------------------------------------------------------------------------------------------------------------------------------

model.compile(loss='binary_crossentropy',

optimizer='rmsprop',#metrics=['accuracy'],

metrics=[auc])

epochs= 100model.fit(X_train, y, epochs=epochs, batch_size=2000,

validation_data=(val_X, val_y), shuffle=True,

class_weight= class_weight1)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值