訂閱
糾錯(cuò)
加入自媒體

Python數(shù)據(jù)科學(xué):神經(jīng)網(wǎng)絡(luò)

# 極值標(biāo)準(zhǔn)化處理

scaler = MinMaxScaler()

scaler.fit(train_data)

scaled_train_data = scaler.transform(train_data)

scaler_test_data = scaler.transform(test_data)

建立多層感知器模型。

# 設(shè)置多層感知器對(duì)應(yīng)的模型

mlp = MLPClassifier(hidden_layer_sizes=(10,), activation='logistic', alpha=0.1, max_iter=1000)

# 對(duì)訓(xùn)練集進(jìn)行模型訓(xùn)練

mlp.fit(scaled_train_data, train_target)

# 輸出神經(jīng)網(wǎng)絡(luò)模型信息

print(mlp)

輸出模型信息如下。

接下來(lái)使用經(jīng)過(guò)訓(xùn)練集訓(xùn)練的模型,對(duì)訓(xùn)練集及測(cè)試集進(jìn)行預(yù)測(cè)。

# 使用模型進(jìn)行預(yù)測(cè)

train_predict = mlp.predict(scaled_train_data)

test_predict = mlp.predict(scaler_test_data)

輸出預(yù)測(cè)概率,用戶流失的概率。

# 輸出模型預(yù)測(cè)概率(為1的情況)

train_proba = mlp.predict_proba(scaled_train_data)[:, 1]

test_proba = mlp.predict_proba(scaler_test_data)[:, 1]

對(duì)模型進(jìn)行評(píng)估,輸出評(píng)估數(shù)據(jù)。

# 根據(jù)預(yù)測(cè)信息輸出模型評(píng)估結(jié)果

print(metrics.confusion_matrix(test_target, test_predict, labels=[0, 1]))

print(metrics.classification_report(test_target, test_predict))

輸出如下。

模型對(duì)流失用戶的f1-score(精確率和召回率的調(diào)和平均數(shù))值為0.81,效果不錯(cuò)。

此外對(duì)流失用戶的靈敏度recall為0.83,模型能識(shí)別出83%的流失用戶,說(shuō)明模型識(shí)別流失用戶的能力還可以。

輸出模型預(yù)測(cè)的平均準(zhǔn)確度。

# 使用指定數(shù)據(jù)集輸出模型預(yù)測(cè)的平均準(zhǔn)確度

print(mlp.score(scaler_test_data, test_target))

# 輸出值為0.8282828282828283

平均準(zhǔn)確度值為0.8282。

計(jì)算模型的ROC下面積。

# 繪制ROC曲線

fpr_test, tpr_test, th_test = metrics.roc_curve(test_target, test_proba)

fpr_train, tpr_train, th_train = metrics.roc_curve(train_target, train_proba)

plt.figure(figsize=[3, 3])

plt.plot(fpr_test, tpr_test, 'b--')

plt.plot(fpr_train, tpr_train, 'r-')

plt.title('ROC curve')

plt.show()

# 計(jì)算AUC值

print(metrics.roc_auc_score(test_target, test_proba))

# 輸出值為0.9149632415075206

ROC曲線圖如下。

訓(xùn)練集和測(cè)試集的曲線很接近,沒(méi)有過(guò)擬合現(xiàn)象。

AUC值為0.9149,說(shuō)明模型效果非常好。

對(duì)模型進(jìn)行最優(yōu)參數(shù)搜索,并且對(duì)最優(yōu)參數(shù)下的模型進(jìn)行訓(xùn)練。

聲明: 本文由入駐維科號(hào)的作者撰寫(xiě),觀點(diǎn)僅代表作者本人,不代表OFweek立場(chǎng)。如有侵權(quán)或其他問(wèn)題,請(qǐng)聯(lián)系舉報(bào)。

發(fā)表評(píng)論

0條評(píng)論,0人參與

請(qǐng)輸入評(píng)論內(nèi)容...

請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字

您提交的評(píng)論過(guò)于頻繁,請(qǐng)輸入驗(yàn)證碼繼續(xù)

  • 看不清,點(diǎn)擊換一張  刷新

暫無(wú)評(píng)論

暫無(wú)評(píng)論

人工智能 獵頭職位 更多
掃碼關(guān)注公眾號(hào)
OFweek人工智能網(wǎng)
獲取更多精彩內(nèi)容
文章糾錯(cuò)
x
*文字標(biāo)題:
*糾錯(cuò)內(nèi)容:
聯(lián)系郵箱:
*驗(yàn) 證 碼:

粵公網(wǎng)安備 44030502002758號(hào)