以下有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會學習過度,需要恰當的使用嚴格衡量神經網路的方法,如測試集和交...