R語言實現 黑箱方法 神經網路

2021-10-02 03:00:30 字數 2888 閱讀 7785

以下有8個描述混合物成分的特徵

read in data and examine structure讀入資料

concrete 

str(concrete)

custom normalization function

自己寫乙個函式將資料轉化為0-1之間

normalize
檢查一下是否轉化完成

confirm that the range is now between zero and one

summary(concrete_norm$strength)
compared to the original minimum and maximum

summary(concrete$strength)
create training and test data一部分做為訓練資料,一部分作為測試資料

concrete_train 

concrete_test

train the neuralnet model

#install.packages('neuralnet')#如果沒有安裝記得安裝一下哦~

library(neuralnet)

****** ann with only a single hidden neuron

單一隱藏節點的最簡單的多層前饋網路

set.seed(12345) # to guarantee repeatable results

concrete_model

ash + water + superplastic +

coarseagg + fineagg + age,

data = concrete_train)

visualize the network topology

網路拓撲結構視覺化

對於8個特徵中的每乙個特徵都有輸入節點,後面跟著乙個單一的隱藏節點和乙個單一的**混凝土的輸出節點。

偏差項(bias term)也被描繪出來(通過帶有數字1的節點表述)。

圖的底部,r報告了訓練的步數和誤差平方和(sse),較低的sse意味著更好的**效能

網路拓撲結構圖讓我們窺視了人工神經網路的黑箱,但是並沒有提供更多關於模型擬合未來資料好壞的訊息。

為了生成關於測試資料集的**值,進行如下操作:

obtain model results

model_results
compute和predict的運算原理不一樣,它會返回乙個帶有兩個分量的列表:

$neurons,用來儲存網路中每一層的神經元;

$net.result,用來儲存**值

obtain predicted strength values

predicted_strength
examine the correlation between predicted and actual values

計算**值與真實值之間的相關性

cor(predicted_strength, concrete_test$strength)
相關性接近1表示兩個變數之間具有很強的線性關係。因此,這裡面大約為0.806的相關性表示具有乙個相當強的線性關係。這意味著計數只有乙個單一的隱藏點,我們的模型也做了相當不錯的工作。

考慮到只用了乙個隱藏點,因此我們模型的效能很可能可以提高。我們試著建立乙個更好的模型。

a more complex neural network topology with 5 hidden neurons

這裡我們將隱藏節點增加到5

從圖中我們可以發現sse已經從原先的5.08降到了1.63。此外,訓練步數也從4882增加到了86849,考慮到現在的模型已經變得多複雜,這也就不足為奇了。越複雜的神經網路需要越多的跌倒來找到最優的權重。

evaluate the results as we did before

model_results2 

predicted_strength2

cor(predicted_strength2, concrete_test$strength)

採用相同的步驟對**值和真實值進行比較,現在我們獲取的相關係數大約為0.92,與之前具有的單個隱藏點的結果0.80相比,這是乙個相當大的改進。

歡迎指正哦~~~(需要資料私聊郵箱哦~)

R語言實現擬合神經網路 神經網路包

神經網路一直是迷人的機器學習模型之一,不僅因為花哨的反向傳播演算法,而且還因為它們的複雜性 考慮到許多隱藏層的深度學習 和受大腦啟發的結構。神經網路並不總是流行,部分原因是它們在某些情況下仍然存在計算成本高昂,部分原因是與支援向量機 svm 等簡單方法相比,它們似乎沒有產生更好的結果。然而,神經網路...

R語言實現 黑箱方法 支援向量機

read in data and examine structure 將輸入讀入到r中,確認接收到的資料具有16個特徵,這些特徵定義了每乙個字母的案例。支援向量機學習演算法要求所有特徵都是數值型的,並且每乙個特徵需要壓縮到乙個相當小的區間中。divide into training and test...

用R實現神經網路

神經網路是一種運算模型,由大量的節點 或神經元 和之間的相互連線構成,每個節點代表一種特定的輸出函式。每兩個節點間的連線都代表乙個對於通過該連線訊號的加權值,稱為權重,這相當於神經網路的記憶。神經網路分為倆類 分類和回歸 注意點1難解釋2會學習過度,需要恰當的使用嚴格衡量神經網路的方法,如測試集和交...