Date : Oct-2021 v1

Learning Objective

Tools

install.packages(pkgs='neuralnet')

Task 1: Install the R packageneuralnet”.

R is a case-sensitive language. Install.packages is incorrect!
A package is a toolbox for doing things for a specific computer language.
In many computer languages, ‘123’ or “123” is a text while 123 is a number.
install.packages is a function. The input of the function is ‘neuralnet’

Question Can we install RStudio IDE on PC?

library(package='neuralnet')

Task 2: Load the package ‘neuralnet’.
The library function is to load a specific package.
Question Do we have to load the package after we start a new R session?
Question Could we load the package twice?

rawdata = "
 age , smoking, cancer
 35  ,  0 , 0
 40  ,  1 , 0
 45  ,  0 , 1
 55  ,  1 , 1"

trainData = read.csv(text=rawdata , header=TRUE)

print(trainData)

Task 3: Data Preparation
We have a small data set (four records).
The meaning of data is self-explanatory.
Question What is csv?
Question How will we find out if a person who is age=50 and smoking=1 will get cancer? (Note that we will not adopt any special math formula or if-then logic)
Question What happens if header=FALSE?

model=neuralnet(formula       =  cancer~age+smoking  ,
                data          =  trainData           , 
                hidden        =  3                   ,
                stepmax       =  1e+05               , 
                act.fct       = "logistic"           ,
                linear.output = FALSE                )

Task 4: Model
Note 1e+05=100000
Build an artificial neural network model of hidden=3

plot(model)

Task 5: Neural Network’s Structure Diagrams
The model can be visualized as shown above.
Question Where are neurons?
Question Which one is hidden layer?
Question If we re-do Task 4 and Task 5 again, will we get the same model?
Question What happens if we change stepmax=5

predictData=neuralnet::compute(model, data.frame(age=50, smoking=1))
print(predictData)
$neurons
$neurons[[1]]
       age smoking
[1,] 1  50       1

$neurons[[2]]
     [,1] [,2]      [,3]      [,4]
[1,]    1    1 0.3459816 0.6057696


$net.result
          [,1]
[1,] 0.8800862

Task 6: Prediction
The result value is close to 1
Thus, there is a high chance to get cancer.
Question what about age=43?
Question what about age=100?
Question If we have more training data, will the model be better? Explain.

Exercises

[1] One more variabe, drinking, is added as below


rawdata = "
 age , smoking, drinking, cancer
 25  ,  1 , 1, 0
 30  ,  1 , 0, 0
 35  ,  0 , 1, 1
 38  ,  1 , 1, 1
 40  ,  1 , 1, 0
 45  ,  1 , 0, 0
 45  ,  1 , 1, 0
 47  ,  0 , 1, 1
 49  ,  1 , 1, 1
 55  ,  1 , 1, 1"

Build a model to solve a case that a person who is age=30, smoking=1, drinking=1 may get cancer.



[2] Redo the exercise 1 with the model of hidden=c(3,3)

model=neuralnet(formula       = cancer~age+smoking ,
                data          = trainData          , 
                hidden        = c(3,3)             ,
                act.fct       = "logistic"         ,
                linear.output = FALSE              )
plot(model)


Reference

[1] Whenever i run my neural network I get different result.
https://www.researchgate.net/post/Whenever-i-run-my-neural-network-I-get-different-result
[2] What Is RStudio Cloud And Why Is It Gaining Popularity
https://analyticsindiamag.com/what-is-rstudio-cloud-and-why-is-it-gaining-popularity/
[3] R for Economics and Finance: Getting research data
http://rstudio-pubs-static.s3.amazonaws.com/41274_b888794c95b84e6b937c1099202380c4.html
[4] neuralnet
https://github.com/cran/neuralnet/tree/master/R

LS0tCnRpdGxlOiAi5Lq65bel5pm66IO955+l6K2Y5Y+K5oeJ55So6K2J5pu477yI5YW86K6A5Yi277yJ5a+m57+S5LiAIgpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sKLS0tCgpEYXRlIDogT2N0LTIwMjEgdjEKCiMjIyBMZWFybmluZyBPYmplY3RpdmUKKiBBcyBBSSB3aWxsIHNvb24gYmUgZXZlcnl3aGVyZSwgZXZlcnlvbmUgc2hvdWxkIGhhdmUgdGhlIHJpZ2h0IHNraWxsIHNldCB0byB1bmRlcnN0YW5kIGFuIEFJIG1vZGVsLiBUaGlzIHR1dG9yaWFsIGlzIHRvIGRlbW9uc3RyYXRlIGZvciBiZWdpbm5lcnMgaG93IHRvIGJ1aWxkIE5ldXJhbCBOZXR3b3JrIG1vZGVscyBpbiBSIHRvIHNvbHZlIHByb2JsZW1zPGJyPgoqIFN0dWRlbnRzIG1heSBmb2xsb3cgdGhlIGluc3RydWN0aW9ucyBhbmQgZ2FpbiBoYW5kcy1vbiBleHBlcmllbmNlIGJ1aWRpbmcgYW4gQUkgbW9kZWwuIAoqIFRoaXMgaXMgYSBsb3ctY29kZSB0dXRvcmlhbCBpbiBSCgoKCiMjIyBUb29scwoqIFIgOiBbUl0oaHR0cHM6Ly93d3cuci1wcm9qZWN0Lm9yZy8pIGlzIGEgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UgYW5kIGZyZWUgc29mdHdhcmUgZW52aXJvbm1lbnQgZm9yIHN0YXRpc3RpY2FsIGNvbXB1dGluZyBhbmQgZ3JhcGhpY3Mgc3VwcG9ydGVkIGJ5IHRoZSBSIEZvdW5kYXRpb24gZm9yIFN0YXRpc3RpY2FsIENvbXB1dGluZy4KKiBbcnN0dWRpby5jbG91ZF0oaHR0cHM6Ly9yc3R1ZGlvLmNsb3VkLykgOiBTdHVkaW8gQ2xvdWQgaXMgY3JlYXRlZCB3aXRoIGFuIGFpbSB0byBtYWtlIGl0IGVhc3kgZm9yIHByb2Zlc3Npb25hbHMsIGhvYmJ5aXN0cywgdHJhaW5lcnMsIHRlYWNoZXJzIGFuZCBzdHVkZW50cyB0byBwcmFjdGljZSwgc2hhcmUsIHRlYWNoIGFuZCBsZWFybiBkYXRhIHNjaWVuY2UuIEluIHRoZSBiYXNpYyB0ZXJtLCBSU3R1ZGlvIENsb3VkIGlzIGEgbWFuYWdlZCBjbG91ZCBpbnN0YW5jZSBvZiB0aGUgUlN0dWRpbyBJREUuPGJyPgpfX1F1ZXN0aW9uX18gSXMgUiBsYW5ndWFnZSBwb3B1bGFyPyA8YnI+Cl9fUXVlc3Rpb25fXyBJcyBSc3R1ZGlvIGdhaW5pbmcgcG9wdWxhcml0eT8gPGJyPgoKCmBgYHtyfQppbnN0YWxsLnBhY2thZ2VzKHBrZ3M9J25ldXJhbG5ldCcpCgpgYGAKVGFzayAxOiBJbnN0YWxsIHRoZSBbUiBwYWNrYWdlXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9SX3BhY2thZ2UpICJbbmV1cmFsbmV0XShodHRwczovL2NyYW4uci1wcm9qZWN0Lm9yZy93ZWIvcGFja2FnZXMvbmV1cmFsbmV0L2luZGV4Lmh0bWwpIi48YnI+CjxzcGFuIHN0eWxlPSJjb2xvcjogYnJvd247Ij4gIApSIGlzIGEgY2FzZS1zZW5zaXRpdmUgbGFuZ3VhZ2UuIEluc3RhbGwucGFja2FnZXMgaXMgaW5jb3JyZWN0ISAgICAgICAgICAgICAgPGJyPgpBIHBhY2thZ2UgaXMgYSB0b29sYm94IGZvciBkb2luZyB0aGluZ3MgZm9yIGEgc3BlY2lmaWMgY29tcHV0ZXIgbGFuZ3VhZ2UuICAgPGJyPgpJbiBtYW55IGNvbXB1dGVyIGxhbmd1YWdlcywgJzEyMycgb3IgIjEyMyIgaXMgYSB0ZXh0IHdoaWxlIDEyMyBpcyBhIG51bWJlci4gPGJyPgppbnN0YWxsLnBhY2thZ2VzIGlzIGEgZnVuY3Rpb24uIFRoZSBpbnB1dCBvZiB0aGUgZnVuY3Rpb24gaXMgJ25ldXJhbG5ldCcgCjwvc3Bhbj48YnI+Cl9fUXVlc3Rpb25fXyBDYW4gd2UgaW5zdGFsbCBSU3R1ZGlvIElERSBvbiBQQz8gCiAKCgpgYGB7cn0KbGlicmFyeShwYWNrYWdlPSduZXVyYWxuZXQnKQpgYGAKVGFzayAyOiBMb2FkIHRoZSBwYWNrYWdlICduZXVyYWxuZXQnLjxicj4KPHNwYW4gc3R5bGU9ImNvbG9yOiBicm93bjsiPgpUaGUgbGlicmFyeSBmdW5jdGlvbiBpcyB0byBsb2FkIGEgc3BlY2lmaWMgcGFja2FnZS4KPC9zcGFuPjxicj4KX19RdWVzdGlvbl9fIERvIHdlIGhhdmUgdG8gbG9hZCB0aGUgcGFja2FnZSBhZnRlciB3ZSBzdGFydCBhIG5ldyBSIHNlc3Npb24/PGJyPgpfX1F1ZXN0aW9uX18gQ291bGQgd2UgbG9hZCB0aGUgcGFja2FnZSB0d2ljZT8gPGJyPgoKCgpgYGB7cn0KcmF3ZGF0YSA9ICIKIGFnZSAsIHNtb2tpbmcsIGNhbmNlcgogMzUgICwgIDAgLCAwCiA0MCAgLCAgMSAsIDAKIDQ1ICAsICAwICwgMQogNTUgICwgIDEgLCAxIgoKdHJhaW5EYXRhID0gcmVhZC5jc3YodGV4dD1yYXdkYXRhICwgaGVhZGVyPVRSVUUpCgpwcmludCh0cmFpbkRhdGEpCmBgYApUYXNrIDM6IERhdGEgUHJlcGFyYXRpb248YnI+CldlIGhhdmUgYSBzbWFsbCBkYXRhIHNldCAoZm91ciByZWNvcmRzKS48YnI+ClRoZSBtZWFuaW5nIG9mIGRhdGEgaXMgc2VsZi1leHBsYW5hdG9yeS48YnI+Cl9fUXVlc3Rpb25fXyBXaGF0IGlzIFtjc3ZdKGh0dHBzOi8vd3d3LmJ1c2luZXNzaW5zaWRlci5jb20vd2hhdC1pcy1jc3YtZmlsZSk/PGJyPgpfX1F1ZXN0aW9uX18gSG93IHdpbGwgd2UgZmluZCBvdXQgaWYgYSBwZXJzb24gd2hvIGlzIGFnZT01MCBhbmQgc21va2luZz0xIHdpbGwgZ2V0IGNhbmNlcj8gKE5vdGUgdGhhdCB3ZSB3aWxsIG5vdCBhZG9wdCBhbnkgc3BlY2lhbCBtYXRoIGZvcm11bGEgb3IgaWYtdGhlbiBsb2dpYykgPGJyPgpfX1F1ZXN0aW9uX18gV2hhdCBoYXBwZW5zIGlmIGhlYWRlcj1GQUxTRT8KCgoKYGBge3J9Cm1vZGVsPW5ldXJhbG5ldChmb3JtdWxhICAgICAgID0gIGNhbmNlcn5hZ2Urc21va2luZyAgLAogICAgICAgICAgICAgICAgZGF0YSAgICAgICAgICA9ICB0cmFpbkRhdGEgICAgICAgICAgICwgCiAgICAgICAgICAgICAgICBoaWRkZW4gICAgICAgID0gIDMgICAgICAgICAgICAgICAgICAgLAogICAgICAgICAgICAgICAgc3RlcG1heCAgICAgICA9ICAxZSswNSAgICAgICAgICAgICAgICwgCiAgICAgICAgICAgICAgICBhY3QuZmN0ICAgICAgID0gImxvZ2lzdGljIiAgICAgICAgICAgLAogICAgICAgICAgICAgICAgbGluZWFyLm91dHB1dCA9IEZBTFNFICAgICAgICAgICAgICAgICkKYGBgCgpUYXNrIDQ6IE1vZGVsPGJyPgo8c3BhbiBzdHlsZT0iY29sb3I6IGJyb3duOyI+ICBOb3RlIDFlKzA1PTEwMDAwMCAgPC9zcGFuPjxicj4KQnVpbGQgYW4gYXJ0aWZpY2lhbCBuZXVyYWwgbmV0d29yayBtb2RlbCBvZiBoaWRkZW49MwoKCmBgYHtyfQpwbG90KG1vZGVsKQpgYGAKVGFzayA1OiBOZXVyYWwgTmV0d29yaydzIFN0cnVjdHVyZSBEaWFncmFtczxicj4KVGhlIG1vZGVsIGNhbiBiZSB2aXN1YWxpemVkIGFzIHNob3duIGFib3ZlLjxicj4KX19RdWVzdGlvbl9fIFdoZXJlIGFyZSBbbmV1cm9uc10oaHR0cHM6Ly90b3dhcmRzZGF0YXNjaWVuY2UuY29tL3RoZS1kaWZmZXJlbmNlcy1iZXR3ZWVuLWFydGlmaWNpYWwtYW5kLWJpb2xvZ2ljYWwtbmV1cmFsLW5ldHdvcmtzLWE4YjQ2ZGI4MjhiNyk/PGJyPiAKX19RdWVzdGlvbl9fIFdoaWNoIG9uZSBpcyBoaWRkZW4gbGF5ZXI/PGJyPgpfX1F1ZXN0aW9uX18gSWYgd2UgcmUtZG8gVGFzayA0IGFuZCBUYXNrIDUgYWdhaW4sIHdpbGwgd2UgZ2V0IHRoZSBzYW1lIG1vZGVsPyA8YnI+Cl9fUXVlc3Rpb25fXyBXaGF0IGhhcHBlbnMgaWYgd2UgY2hhbmdlIHN0ZXBtYXg9NTxicj4KCmBgYHtyfQpwcmVkaWN0RGF0YT1uZXVyYWxuZXQ6OmNvbXB1dGUobW9kZWwsIGRhdGEuZnJhbWUoYWdlPTUwLCBzbW9raW5nPTEpKQpwcmludChwcmVkaWN0RGF0YSkKYGBgCgpUYXNrIDY6IFByZWRpY3Rpb248YnI+ClRoZSByZXN1bHQgdmFsdWUgaXMgY2xvc2UgdG8gMTxicj4KVGh1cywgdGhlcmUgaXMgYSBoaWdoIGNoYW5jZSB0byBnZXQgY2FuY2VyLjxicj4KX19RdWVzdGlvbl9fIHdoYXQgYWJvdXQgYWdlPTQzPzxicj4KX19RdWVzdGlvbl9fIHdoYXQgYWJvdXQgYWdlPTEwMD88YnI+Cl9fUXVlc3Rpb25fXyBJZiB3ZSBoYXZlIG1vcmUgdHJhaW5pbmcgZGF0YSwgd2lsbCB0aGUgbW9kZWwgYmUgYmV0dGVyPyBFeHBsYWluLjxicj4KCiMjIyBFeGVyY2lzZXMKWzFdIE9uZSBtb3JlIHZhcmlhYmUsIGRyaW5raW5nLCBpcyBhZGRlZCBhcyBiZWxvdzxicj4KCmBgYHtyfQoKcmF3ZGF0YSA9ICIKIGFnZSAsIHNtb2tpbmcsIGRyaW5raW5nLCBjYW5jZXIKIDI1ICAsICAxICwgMSwgMAogMzAgICwgIDEgLCAwLCAwCiAzNSAgLCAgMCAsIDEsIDEKIDM4ICAsICAxICwgMSwgMQogNDAgICwgIDEgLCAxLCAwCiA0NSAgLCAgMSAsIDAsIDAKIDQ1ICAsICAxICwgMSwgMAogNDcgICwgIDAgLCAxLCAxCiA0OSAgLCAgMSAsIDEsIDEKIDU1ICAsICAxICwgMSwgMSIKYGBgCkJ1aWxkIGEgbW9kZWwgdG8gc29sdmUgYSBjYXNlIHRoYXQgYSBwZXJzb24gd2hvIGlzIGFnZT0zMCwgc21va2luZz0xLCBkcmlua2luZz0xIG1heSBnZXQgY2FuY2VyLgo8YnI+Cjxicj4KPGJyPgo8YnI+ClsyXSBSZWRvIHRoZSBleGVyY2lzZSAxIHdpdGggdGhlIG1vZGVsIG9mIGhpZGRlbj1jKDMsMykKYGBge3J9Cm1vZGVsPW5ldXJhbG5ldChmb3JtdWxhICAgICAgID0gY2FuY2VyfmFnZStzbW9raW5nICwKICAgICAgICAgICAgICAgIGRhdGEgICAgICAgICAgPSB0cmFpbkRhdGEgICAgICAgICAgLCAKICAgICAgICAgICAgICAgIGhpZGRlbiAgICAgICAgPSBjKDMsMykgICAgICAgICAgICAgLAogICAgICAgICAgICAgICAgYWN0LmZjdCAgICAgICA9ICJsb2dpc3RpYyIgICAgICAgICAsCiAgICAgICAgICAgICAgICBsaW5lYXIub3V0cHV0ID0gRkFMU0UgICAgICAgICAgICAgICkKcGxvdChtb2RlbCkKYGBgCgo8YnI+CgojIyMgUmVmZXJlbmNlCgpbMV0gV2hlbmV2ZXIgaSBydW4gbXkgbmV1cmFsIG5ldHdvcmsgSSBnZXQgZGlmZmVyZW50IHJlc3VsdC48YnI+Cmh0dHBzOi8vd3d3LnJlc2VhcmNoZ2F0ZS5uZXQvcG9zdC9XaGVuZXZlci1pLXJ1bi1teS1uZXVyYWwtbmV0d29yay1JLWdldC1kaWZmZXJlbnQtcmVzdWx0PGJyPgpbMl0gV2hhdCBJcyBSU3R1ZGlvIENsb3VkIEFuZCBXaHkgSXMgSXQgR2FpbmluZyBQb3B1bGFyaXR5PGJyPgpodHRwczovL2FuYWx5dGljc2luZGlhbWFnLmNvbS93aGF0LWlzLXJzdHVkaW8tY2xvdWQtYW5kLXdoeS1pcy1pdC1nYWluaW5nLXBvcHVsYXJpdHkvIDxicj4KWzNdIFIgZm9yIEVjb25vbWljcyBhbmQgRmluYW5jZTogR2V0dGluZyByZXNlYXJjaCBkYXRhPGJyPgpodHRwOi8vcnN0dWRpby1wdWJzLXN0YXRpYy5zMy5hbWF6b25hd3MuY29tLzQxMjc0X2I4ODg3OTRjOTViODRlNmI5MzdjMTA5OTIwMjM4MGM0Lmh0bWw8YnI+Cls0XSBuZXVyYWxuZXQ8YnI+Cmh0dHBzOi8vZ2l0aHViLmNvbS9jcmFuL25ldXJhbG5ldC90cmVlL21hc3Rlci9SPGJyPgoK