機器學習實驗3 神經網路模型實現

2021-10-10 17:56:54 字數 1996 閱讀 1696

理解神經網路相關原理和概念;

能夠使用神經網路解決相關問題;

熟練使用scikit-learn 中神經網路相關模組。

使用神經網路解決糖尿病病情**問題。

對問題進行描述並給出神經網路解決問題的原理;

將問題相關資料集劃分成訓練集和測試集,並進行資料預處理;

給出神經網路解決糖尿病病情**問題的**;

通過調整隱層神經元數目和隱層層數提高模型的效果;

引入收資料集,劃分訓練集和測試集

from sklearn import datasets

from sklearn.model_selection import train_test_split

diabetes = datasets.load_diabetes(

)x=diabetes.data

y=diabetes.target

x_train,x_test,y_train,y_test=train_test_split(x,y,train_size=

0.2,random_state=

26)

屬性值轉換

from sklearn.preprocessing import standardscaler 

scaler.fit(x_test)

x_train = scaler.transform(x_train)

x_test = scaler.transform(x_test)

引入模組,建立模型

from sklearn.neural_network import mlpregressor

model= mlpregressor(hidden_layer_sizes=

(20000

))

模型訓練、**及返回結果

model.fit(x_train,y_train)

y_predict=model.predict(x_test)

score=model.score(x_test,y_test)

print

(score)

視覺化操作

import matplotlib.pyplot as plt

xx=range(0

,len

(y_test )

)plt.figure(figsize=(8

,6))

plt.scatter (xx,y_test,color=

"red"

,label=

"sample point"

,linewidth=3)

plt.plot(xx,y_predict,color=

"orange"

,label=

"fitting line"

,linewidth=2)

plt.legend (

)plt.show(

)

通過改變神經網路模型中隱層以及各隱層裡的神經元數目提高返回值

model= mlpregressor(hidden_layer_sizes=

(100))

model= mlpregressor(hidden_layer_sizes=

(100

,100))

model= mlpregressor(hidden_layer_sizes=

(100

,100

,100))

model= mlpregressor(hidden_layer_sizes=

(1000))

model= mlpregressor(hidden_layer_sizes=

(10000))

model= mlpregressor(hidden_layer_sizes=

(20000

))

機器學習 BP神經網路模型

bp back propagation 網路是1986年由rumelhart和mccelland為首的科學家小組提出,是一種按誤差逆傳播演算法訓練的多層前饋網路,是目前應用最廣泛的神經網路模型之一。bp網路能學習和存貯大量的輸入 輸出模式對映關係,而無需事前揭示描述這種對映關係的數學方程。它的學習規...

機器學習 BP神經網路模型

bp back propagation 網路是1986年由rumelhart和mccelland為首的科學家小組提出,是一種按誤差逆傳播演算法訓練的多層前饋網路,是目前應用最廣泛的神經網路模型之一。bp網路能學習和存貯大量的輸入 輸出模式對映關係,而無需事前揭示描述這種對映關係的數學方程。它的學習規...

神經網路模型實現

一 引入糖尿病病情 問題的資料 from sklearn.datasets import load diabetes diabets load diabetes 二 對資料進行劃分,同時對屬性值進行轉換 x diabets.data y diabets.target from sklearn.mod...