Python數(shù)據(jù)科學(xué):神經(jīng)網(wǎng)絡(luò)
(Artificial Neural Network,ANN)人工神經(jīng)網(wǎng)絡(luò)模型,以數(shù)學(xué)和物理的方法對(duì)人腦神經(jīng)網(wǎng)絡(luò)進(jìn)行簡(jiǎn)化、抽象和模擬。
本次只是一個(gè)簡(jiǎn)單的神經(jīng)網(wǎng)絡(luò)入門(mén),涉及神經(jīng)元模型和BP神經(jīng)網(wǎng)絡(luò)。
這里簡(jiǎn)單了解一下機(jī)器學(xué)習(xí)的三要素,分別是模型、策略與算法。
模型包括非隨機(jī)效應(yīng)部分(被解釋變量和解釋變量之間的關(guān)系,多為函數(shù)關(guān)系)和隨機(jī)效應(yīng)部分(擾動(dòng)項(xiàng))。
策略是指如何設(shè)定最優(yōu)化的目標(biāo)函數(shù),常見(jiàn)的目標(biāo)函數(shù)有線(xiàn)性回歸的殘差平方和、邏輯回歸的似然函數(shù)、SVM中的合頁(yè)函數(shù)等。
算法是對(duì)目標(biāo)函數(shù)求參的方法,比如通過(guò)求導(dǎo)的方法計(jì)算,或者使用數(shù)值計(jì)算領(lǐng)域的算法求解。
其中神經(jīng)網(wǎng)絡(luò)就是采用數(shù)值算法求解參數(shù),這就意味著每次計(jì)算得到的模型參數(shù)都會(huì)是不同的。
/ 01 / 神經(jīng)網(wǎng)絡(luò)
01 神經(jīng)元模型
神經(jīng)網(wǎng)絡(luò)中最基本的成分是神經(jīng)元模型。
每個(gè)神經(jīng)元都是一個(gè)多輸入單輸出的信息處理單元,輸入信號(hào)通過(guò)帶權(quán)重的連接傳遞,和閾值對(duì)比后得到總輸入值,再通過(guò)激活函數(shù)的處理產(chǎn)生單個(gè)輸出。
神經(jīng)元的輸出,是對(duì)激活函數(shù)套用輸入加權(quán)和的結(jié)果。
神經(jīng)元的激活函數(shù)使得神經(jīng)元具有不同的信息處理特性,反映了神經(jīng)元輸出與其激活狀態(tài)之間的關(guān)系。
本次涉及到的激活函數(shù)有閾值函數(shù)(階躍函數(shù))、sigmoid函數(shù)(S型函數(shù))。
02 單層感知器
感知器是一種具有單層計(jì)算單元的神經(jīng)網(wǎng)絡(luò),只能用來(lái)解決線(xiàn)性可分的二分類(lèi)問(wèn)題。
無(wú)法運(yùn)用到多層感知器中,無(wú)法確定隱藏層的期望輸出。
它的結(jié)構(gòu)類(lèi)似之前的神經(jīng)元模型。
激活函數(shù)采用單極性(或雙極性)閾值函數(shù)。
03 BP神經(jīng)網(wǎng)絡(luò)
采用誤差反向傳播算法(有監(jiān)督學(xué)習(xí)算法)訓(xùn)練的多層神經(jīng)網(wǎng)絡(luò)稱(chēng)為BP神經(jīng)網(wǎng)絡(luò)。
屬于多層前饋型神經(jīng)網(wǎng)絡(luò),模型的學(xué)習(xí)過(guò)程由信號(hào)的正向傳播和誤差反向傳播兩個(gè)過(guò)程組成。
進(jìn)行正向傳播時(shí)信號(hào)從輸入層計(jì)算各層加權(quán)和,經(jīng)由各隱層最終傳遞到輸出層,得到輸出結(jié)果,比較輸出結(jié)果與期望結(jié)果(監(jiān)督信號(hào)),得到輸出誤差。
誤差反向傳播是依照梯度下降算法將誤差沿著隱藏層到輸入層逐層反向傳播,將誤差分?jǐn)偨o各層的所有單元,從而得到各個(gè)單元的誤差信號(hào)(學(xué)習(xí)信號(hào)),據(jù)此修改各單元權(quán)值。
這兩個(gè)信號(hào)傳播過(guò)程不斷循環(huán)以更新權(quán)值,最終根據(jù)判定條件判斷是否結(jié)束循環(huán)。
其網(wǎng)絡(luò)結(jié)構(gòu)普遍為單隱層網(wǎng)絡(luò),包括輸入層、隱層、輸出層。
激活函數(shù)多采用sigmoid函數(shù)或線(xiàn)性函數(shù),這里隱層和輸出層均采用sigmoid函數(shù)。
/ 02/ Python實(shí)現(xiàn)
神經(jīng)網(wǎng)絡(luò)在有明確的訓(xùn)練樣本后,網(wǎng)絡(luò)的輸入層結(jié)點(diǎn)數(shù)(解釋變量個(gè)數(shù))和輸出層結(jié)點(diǎn)數(shù)(被解釋變量的個(gè)數(shù))便已確定。
需要考慮的則是隱含層的個(gè)數(shù)和每個(gè)隱含層的結(jié)點(diǎn)個(gè)數(shù)。
下面利用書(shū)中的數(shù)據(jù)進(jìn)行實(shí)戰(zhàn)一波,一份移動(dòng)離網(wǎng)數(shù)據(jù)。
移動(dòng)通訊用戶(hù)消費(fèi)特征數(shù)據(jù),目標(biāo)字段為是否流失,具有兩個(gè)分類(lèi)水平(是與否)。
自變量包含了用戶(hù)的基本信息、消費(fèi)的產(chǎn)品信息以及用戶(hù)的消費(fèi)特征。
讀取數(shù)據(jù)。
import pandas as pd
from sklearn import metrics
import matplotlib.pyplot as plt
from sklearn.preprocessing import MinMaxScaler
from sklearn.neural_network import MLPClassifier
from sklearn.model_selection import GridSearchCV
from sklearn.model_selection import train_test_split
# 設(shè)置最大顯示行數(shù)
pd.set_option('display.max_rows', 10)
# 設(shè)置最大顯示列數(shù)
pd.set_option('display.max_columns', 10)
# 設(shè)置顯示寬度為1000,這樣就不會(huì)在IDE中換行了
pd.set_option('display.width', 1000)
# 讀取數(shù)據(jù),skipinitialspace:忽略分隔符后的空白
churn = pd.read_csv('telecom_churn.csv', skipinitialspace=True)
print(churn)
輸出數(shù)據(jù)概況,包含3000多個(gè)用戶(hù)數(shù)據(jù)。
使用scikit-learn中的函數(shù)將數(shù)據(jù)集劃分為訓(xùn)練集和測(cè)試集。
# 選取自變量數(shù)據(jù)
data = churn.iloc[:, 2:]
# 選取因變量數(shù)據(jù)
target = churn['churn']
# 使用scikit-learn將數(shù)據(jù)集劃分為訓(xùn)練集和測(cè)試集
train_data, test_data, train_target, test_target = train_test_split(data, target, test_size=0.4, train_size=0.6, random_state=1234)
神經(jīng)網(wǎng)絡(luò)需要對(duì)數(shù)據(jù)進(jìn)行極值標(biāo)準(zhǔn)化。
需要對(duì)連續(xù)變量進(jìn)行極值標(biāo)準(zhǔn)化,分類(lèi)變量需要轉(zhuǎn)變?yōu)樘摂M變量。
其中多分類(lèi)名義變量必須轉(zhuǎn)變?yōu)樘摂M變量,而等級(jí)變量和二分類(lèi)變量則可以選擇不轉(zhuǎn)變,當(dāng)做連續(xù)變量處理即可。
本次數(shù)據(jù)中,教育等級(jí)和套餐類(lèi)型是等級(jí)變量,性別等變量為二分類(lèi)變量,這些都可以作為連續(xù)變量進(jìn)行處理。
這也就意味著本次的數(shù)據(jù)集中不存在多分類(lèi)名義變量,都可作為連續(xù)變量進(jìn)行處理。

發(fā)表評(píng)論
登錄
手機(jī)
驗(yàn)證碼
立即登錄即可訪(fǎng)問(wèn)所有OFweek服務(wù)
還不是會(huì)員?免費(fèi)注冊(cè)
忘記密碼請(qǐng)輸入評(píng)論內(nèi)容...
請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字
圖片新聞
-
機(jī)器人奧運(yùn)會(huì)戰(zhàn)報(bào):宇樹(shù)機(jī)器人摘下首金,天工Ultra搶走首位“百米飛人”
-
存儲(chǔ)圈掐架!江波龍起訴佰維,索賠121萬(wàn)
-
長(zhǎng)安汽車(chē)母公司突然更名:從“中國(guó)長(zhǎng)安”到“辰致科技”
-
豆包前負(fù)責(zé)人喬木出軌BP后續(xù):均被辭退
-
字節(jié)AI Lab負(fù)責(zé)人李航卸任后返聘,Seed進(jìn)入調(diào)整期
-
員工持股爆雷?廣汽埃安緊急回應(yīng)
-
中國(guó)“智造”背后的「關(guān)鍵力量」
-
小米汽車(chē)研發(fā)中心重磅落地,寶馬家門(mén)口“搶人”
最新活動(dòng)更多
-
10月23日火熱報(bào)名中>> 2025是德科技創(chuàng)新技術(shù)峰會(huì)
-
10月23日立即報(bào)名>> Works With 開(kāi)發(fā)者大會(huì)深圳站
-
10月24日立即參評(píng)>> 【評(píng)選】維科杯·OFweek 2025(第十屆)物聯(lián)網(wǎng)行業(yè)年度評(píng)選
-
11月27日立即報(bào)名>> 【工程師系列】汽車(chē)電子技術(shù)在線(xiàn)大會(huì)
-
12月18日立即報(bào)名>> 【線(xiàn)下會(huì)議】OFweek 2025(第十屆)物聯(lián)網(wǎng)產(chǎn)業(yè)大會(huì)
-
精彩回顧立即查看>> 【限時(shí)福利】TE 2025國(guó)際物聯(lián)網(wǎng)展·深圳站
推薦專(zhuān)題
- 1 人形機(jī)器人,正狂奔在批量交付的曠野
- 2 3 AI版“四萬(wàn)億刺激”計(jì)劃來(lái)了
- 4 2025年8月人工智能投融資觀察
- 5 一家被嚴(yán)重低估的國(guó)產(chǎn)AI巨頭
- 6 a16z最新AI百?gòu)?qiáng)榜:硅谷頂級(jí)VC帶你讀懂全球生成式AI賽道最新趨勢(shì)
- 7 Manus跑路,大廠掉線(xiàn),只能靠DeepSeek了
- 8 地平線(xiàn)的野心:1000萬(wàn)套HSD上車(chē)
- 9 一萬(wàn)億美元!馬斯克薪酬細(xì)節(jié)拆解
- 10 蘋(píng)果把身家押在Siri上:一場(chǎng)輸不起的自我革命