Python-sklearn模块-神经网络
Python-sklearn模塊-神經網絡
- 導入模塊
- 加載數據集
- 拆分數據集
- 創建神經網絡模型
- 填充數據并訓練
- 評估模型
- 參數含義
導入模塊
from sklearn.datasets import load_iris
from sklearn.neural_network import MLPClassifier
from sklearn.model_selection import train_test_split
加載數據集
iris_data = load_iris()
拆分數據集
X_train, X_test, y_train, y_test = train_test_split(iris_data[‘data’], iris_data[‘target’], test_size=0.25, random_state=1)
print(iris_data[‘data’])
print(iris_data[‘target’])
創建神經網絡模型
pf = MLPClassifier(solver=‘lbfgs’, hidden_layer_sizes=[9,7], random_state=0)
填充數據并訓練
pf.fit(X_train, y_train)
評估模型
score = pf.score(X_test, y_test)
print(score)
完整代碼
參數含義
-
train_data:待劃分樣本數據
-
train_target:待劃分樣本數據的結果(標簽)
-
test_size:測試數據占樣本數據的比例,若整數則樣本數量
-
hidden_layer_sizes : 設置各隱層的結點數
-
activation : {‘identity’, ‘logistic’, ‘tanh’, ‘relu’}, 默認 ‘relu’,激活函數
identity:f(x) = x
logistic:f(x) = 1 / (1 + exp(-x))
tanh:f(x) = tanh(x)
relu:max(0, x) -
solver: {‘lbfgs’, ‘sgd’, ‘adam’}, 默認 ‘adam’,用來優化權重
lbfgs:quasi-Newton方法的優化器
sgd:隨機梯度下降
adam: Kingma, Diederik, and Jimmy Ba提出的機遇隨機梯度的優化器
注意:默認solver ‘adam’在相對較大的數據集上效果比較好(幾千個樣本或者更多), 對小數據集來說,lbfgs收斂更快效果也更好 -
alpha : float, optional, 默認0.0001,正則化參數,防止過擬合
-
random_state:隨機數種子,決定隨機數生成,保證每次都是同一個隨機數,若為0或不填,則每次得到數據都不一樣
總結
以上是生活随笔為你收集整理的Python-sklearn模块-神经网络的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [教程]centos7.x 及cento
- 下一篇: Jenkins构建项目