Usando una muestra de distintos perfiles de personas, donde se toma en cuenta una variedad de características tanto demográficas como socioeconómicas, el objetivo del presente proyecto es predecir si cada una de estas personas son perfiles válidos de aprobación para un seguro de vida laboral. Los datos se recolectaron a través de entrevistas.
| Sexo | Embarazo | Familia | Propensión Hijos | Enfermedad Actual | Accidente Trabajo | Enfermedad Trabajo | Muerte Trabajo | Adultez | Deudas | Capital | Resultado |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |
| 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 1 | 1 |
| 0 | 0 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | 1 |
| 0 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 1 |
| 0 | 0 | 1 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 0 |
| 0 | 1 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 1 |
| 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 |
| 0 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | 1 | 1 | 1 | 1 |
A continuación, se detallará la naturaleza y el significado del conjunto de datos.
## [1] "Sexo : integer : 1: Mujer | 0: Hombre"
## [1] "Embarazo : integer : 1: Embarazada o pareja emabarazada | 0: No Embarazada ni pareja embarazada"
## [1] "Familia : integer : 1: Propensa a tener accidentes en el trabajo | 0: No es propensa a tener accidentes en el trabajo"
## [1] "Propensión Hijos : integer : 1: Propensa a tener hijos | 0: Persona no propensa a tener hijos"
## [1] "Enfermedad Actual : integer : 1: Tiene enfermedades actuales | 0: No tiene enfermedades significativas"
## [1] "Accidente Trabajo : integer : 1: Propensa a tener accidentes en el trabajo | 0: No es propensa a tener accidentes en el trabajo"
## [1] "Enfermedad Trabajo : integer : 1: Propensa a contraer enfermedades en el trabajo | 0: No es propensa a contraer enfermedades en el trabajo"
## [1] "Muerte Trabajo : integer : 1: Propensa a morir en el trabajo | 0: No es propensa a morir en el trabajo"
## [1] "Adultez : integer : 1: Persona mayor a 60 años | 0: Persona menor de 60 años"
## [1] "Deudas : integer : 1: Tiene deudas | 0: No tiene deudas"
## [1] "Capital : integer : 1: Tiene capital | 0: No tiene capital"
## [1] "Resultado : integer : 1: Persona apta para conseguir seguro | 0: Persona no apta para conseguir seguro"
Variables cualitativas: Sexo, Embarazo, Familia, Propensión Hijos, Enfermedad Actual, Accidente Trabajo, Enfermedad Trabajo, Muerte Trabajo, Adultez, Deudas, Capital, Resultado
Variable objetivo: Resultado
Variables que no muestran tendencia respecto al target: Sexo, Embarazo, Familia, Propensión Hijos, Enfermedad Actual, Accidente Trabajo, Enfermedad Trabajo, Muerte Trabajo, Adultez, Deudas
Como primer paso, previo al proceso de los datos de entradas, realizamos de forma aleatorio con valores entre 0 y 1, un arreglo de pesos para el proceso en las redes neuronales.
En la primera capa, capa de entrada, se realiza con cada neurona y su respectivo peso, una operación matemática con un resultado para un nuevo dato de entrada en las siguientes capas internas. Este conjunto de nuevas entradas, su tamaño de neuronas se va reducción con respecto a la cantidad inicial, logrando así una mejor concentración de datos.
Con la primera capa realizada, se aplica un bucle con un numero de capas internas a trabajar, en nuestro caso igual al número de preguntas en la encuesta, y tomando en cuenta la reducción de neuronas por cada capa. Teniendo al final un solo valor.
Para la función activación del dato de salido, se aplicó la función sigmoidal. Dado que como respuesta buscamos un valor directo. Para el caso del proyecto, un SI o NO con respecto a la medida de otorgar el seguro de vida laboral al cliente.
Al igual que el bucle para las capas internas, bajo un valor estimado se resta al dato de salida y juntos a los pesos de cada neurona en cada capa, se busca un valor de error por cada neurona dentro de la red en un bucle en retroceso, desde el dato de salida hasta el dato de entrada.
Una vez obtenido para cada neurona su valor de error, se aplica la misma lógica de bucle dentro de las capas para la actualización del peso con respecto a su peso anterior o inicial y el error, logrando un mejor valor en los pesos dado que en su comienzo eran de carácter aleatorio.
Pesos Actualizados
## [[1]]
## [,1] [,2] [,3] [,4]
## [1,] 0.77524834 6.150789e-01 -3.232149e-01 -0.627299235
## [2,] 0.30991613 1.707561e-01 -6.741634e-02 0.060969955
## [3,] -6.94564297 -2.792772e+00 9.916901e-01 -0.920012167
## [4,] 146.87873430 7.866586e+01 -3.926708e+01 12.337825243
## [5,] -8.19102556 -9.437348e+00 3.636708e+00 -5.060791404
## [6,] -3.08236576 -1.697761e+00 5.712025e-01 -0.465934540
## [7,] 6393.66556677 3.317730e+03 -1.380034e+03 662.914870674
## [8,] 26.41558704 -1.217917e+01 5.283213e+00 -2.974740377
## [9,] 73.29250471 3.926650e+01 -1.146148e+01 -15.572084222
## [10,] -54.28226109 2.416342e+01 -7.077218e+00 5.643071712
## [11,] 1.12073212 2.995990e+00 -2.332598e+00 -1.553565418
## [12,] 45.05893089 3.439964e+01 -2.103136e+01 -0.246946990
## [13,] -3.31887034 -1.436783e+00 6.129113e-01 -0.676958257
## [14,] -5.04670633 -2.524688e+00 1.222923e+00 -0.823372170
## [15,] 20.92099014 8.400705e+00 -3.242925e+00 4.032367052
## [16,] -30.82666715 -1.249408e+01 4.966256e+00 -6.833443337
## [17,] -23.06676108 -1.348199e+01 6.827038e+00 2.092678251
## [18,] -0.33138087 1.060978e+01 -9.061159e+00 -7.084062833
## [19,] 40.80560093 3.682193e+01 -2.374578e+01 -5.361641220
## [20,] 0.01951531 8.386935e-03 -3.008144e-03 0.001263746
## [,5] [,6] [,7] [,8]
## [1,] 0.40545999 -6.658311e-01 0.22906521 1.91639744
## [2,] 0.26865989 -2.103190e-01 0.31380198 0.45693223
## [3,] -5.87541187 4.198697e+00 -6.32548802 -7.23951483
## [4,] 132.08638050 -9.147906e+01 135.73721959 270.70076852
## [5,] -7.50432372 8.503153e+00 -12.64604184 -21.98203115
## [6,] -2.47072945 2.215949e+00 -2.99511423 -3.74357552
## [7,] 5421.30202128 -4.203087e+03 5938.34984900 9401.82602414
## [8,] 23.98837324 -1.612920e+00 11.48086024 -19.32351441
## [9,] 44.89242896 -5.719452e+01 49.21630155 66.63288882
## [10,] -54.17719055 1.384011e-01 -24.69301950 11.46065634
## [11,] 1.33855917 -1.344353e+00 0.62507229 14.66674479
## [12,] 43.65303738 -3.015029e+01 42.35195960 139.97033386
## [13,] -3.03035984 1.938159e+00 -3.25914338 -4.48278470
## [14,] -4.67061022 3.032636e+00 -4.92026046 -8.63110120
## [15,] 18.62051549 -1.219725e+01 20.09695882 24.12883999
## [16,] -28.00581666 1.778235e+01 -30.38526859 -37.11608996
## [17,] -19.05197851 1.540846e+01 -18.46865351 -45.27624856
## [18,] 1.34455153 -2.661544e+00 -1.86403045 56.19596135
## [19,] 39.61418714 -2.911282e+01 36.37202460 155.38492202
## [20,] 0.01583228 -1.231915e-02 0.01688609 0.02110484
## [,9] [,10] [,11]
## [1,] 7.393162e-01 0.23696282 -3.171057e-01
## [2,] -3.485551e-02 0.38595040 -8.750667e-01
## [3,] 7.985449e-01 -6.56297650 1.510357e+01
## [4,] -7.075495e+00 170.20797387 -3.556370e+02
## [5,] 1.717817e+00 -20.99145496 4.876853e+01
## [6,] 1.324431e-01 -3.48106870 8.270303e+00
## [7,] -2.799983e+02 6988.74301154 -1.557221e+04
## [8,] -8.577351e+00 -12.46357302 3.160720e+01
## [9,] 2.436552e+01 41.37586792 -1.102687e+02
## [10,] 2.017210e+01 18.32280212 -6.112042e+01
## [11,] 2.078031e+00 3.72145637 -4.728371e+00
## [12,] 3.712146e+00 67.27967247 -1.271693e+02
## [13,] 6.391020e-01 -3.75464087 8.259597e+00
## [14,] 6.991452e-01 -6.09594806 1.293191e+01
## [15,] -3.874098e+00 21.94054865 -4.937643e+01
## [16,] 6.650390e+00 -33.95076612 7.587798e+01
## [17,] -3.391031e+00 -22.83560110 4.666409e+01
## [18,] 9.253068e+00 11.02598892 -9.402112e+00
## [19,] 9.737478e+00 64.74818238 -1.160750e+02
## [20,] -6.317526e-04 0.01727434 -3.994360e-02
Neuronas
Por otro lado, también logramos resolver el problema sin usar neural network, logrando de esta manera propagación de error y actualización de pesos
Datos de entrada:
## X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11
## 20 1 1 0 0 1 1 1 1 1 1 0
Lista de pesos:
## [,1] [,2] [,3] [,4] [,5] [,6]
## [1,] 0.49175414 0.96086721 0.55552580 0.64756730 0.40211560 0.44612519
## [2,] 0.44612519 0.37716841 0.89816713 0.44241315 0.81052734 0.09849889
## [3,] 0.09849889 0.49175414 0.96086721 0.55552580 0.64756730 0.40211560
## [4,] 0.40211560 0.44612519 0.37716841 0.89816713 0.44241315 0.81052734
## [5,] 0.81052734 0.09849889 0.49175414 0.96086721 0.55552580 0.64756730
## [6,] 0.64756730 0.40211560 0.44612519 0.37716841 0.89816713 0.44241315
## [7,] 0.44241315 0.81052734 0.09849889 0.49175414 0.96086721 0.55552580
## [8,] 0.55552580 0.64756730 0.40211560 0.44612519 0.37716841 0.89816713
## [9,] 0.89816713 0.44241315 0.81052734 0.09849889 0.49175414 0.96086721
## [10,] 0.96086721 0.55552580 0.64756730 0.40211560 0.44612519 0.37716841
## [11,] 0.37716841 0.89816713 0.44241315 0.81052734 0.09849889 0.49175414
## [12,] 0.49175414 0.96086721 0.55552580 0.64756730 0.40211560 0.44612519
## [13,] 0.44612519 0.37716841 0.89816713 0.44241315 0.81052734 0.09849889
## [14,] 0.09849889 0.49175414 0.96086721 0.55552580 0.64756730 0.40211560
## [15,] 0.40211560 0.44612519 0.37716841 0.89816713 0.44241315 0.81052734
## [16,] 0.81052734 0.09849889 0.49175414 0.96086721 0.55552580 0.64756730
## [17,] 0.64756730 0.40211560 0.44612519 0.37716841 0.89816713 0.44241315
## [18,] 0.44241315 0.81052734 0.09849889 0.49175414 0.96086721 0.55552580
## [19,] 0.55552580 0.64756730 0.40211560 0.44612519 0.37716841 0.89816713
## [20,] 0.89816713 0.44241315 0.81052734 0.09849889 0.49175414 0.96086721
## [,7] [,8] [,9] [,10] [,11]
## [1,] 0.37716841 0.89816713 0.44241315 0.81052734 0.09849889
## [2,] 0.49175414 0.96086721 0.55552580 0.64756730 0.40211560
## [3,] 0.44612519 0.37716841 0.89816713 0.44241315 0.81052734
## [4,] 0.09849889 0.49175414 0.96086721 0.55552580 0.64756730
## [5,] 0.40211560 0.44612519 0.37716841 0.89816713 0.44241315
## [6,] 0.81052734 0.09849889 0.49175414 0.96086721 0.55552580
## [7,] 0.64756730 0.40211560 0.44612519 0.37716841 0.89816713
## [8,] 0.44241315 0.81052734 0.09849889 0.49175414 0.96086721
## [9,] 0.55552580 0.64756730 0.40211560 0.44612519 0.37716841
## [10,] 0.89816713 0.44241315 0.81052734 0.09849889 0.49175414
## [11,] 0.96086721 0.55552580 0.64756730 0.40211560 0.44612519
## [12,] 0.37716841 0.89816713 0.44241315 0.81052734 0.09849889
## [13,] 0.49175414 0.96086721 0.55552580 0.64756730 0.40211560
## [14,] 0.44612519 0.37716841 0.89816713 0.44241315 0.81052734
## [15,] 0.09849889 0.49175414 0.96086721 0.55552580 0.64756730
## [16,] 0.40211560 0.44612519 0.37716841 0.89816713 0.44241315
## [17,] 0.81052734 0.09849889 0.49175414 0.96086721 0.55552580
## [18,] 0.64756730 0.40211560 0.44612519 0.37716841 0.89816713
## [19,] 0.44241315 0.81052734 0.09849889 0.49175414 0.96086721
## [20,] 0.55552580 0.64756730 0.40211560 0.44612519 0.37716841
Con la función de activacion (sigmoidal):
## [1] 0.9856069
Calculo de Error:
## [1] 0.2324686
Nuevos pesos:
## [,1] [,2] [,3] [,4] [,5] [,6]
## [1,] 0.51040077 0.97951384 0.57417243 0.66621392 0.42076223 0.46477181
## [2,] 0.48255991 0.41360314 0.93460186 0.47884788 0.84696207 0.13493362
## [3,] 0.11956364 0.51281890 0.98193197 0.57659056 0.66863205 0.42318036
## [4,] 0.42667044 0.47068002 0.40172325 0.92272197 0.46696799 0.83508218
## [5,] 0.82577500 0.11374655 0.50700180 0.97611487 0.57077346 0.66281495
## [6,] 0.66448373 0.41903204 0.46304162 0.39408485 0.91508357 0.45932959
## [7,] 0.45671485 0.82482904 0.11280058 0.50605584 0.97516891 0.56982750
## [8,] 0.58958303 0.68162452 0.43617283 0.48018241 0.41122564 0.93222436
## [9,] 0.91494282 0.45918884 0.82730303 0.11527457 0.50852982 0.97764289
## [10,] 0.99160126 0.58625985 0.67830135 0.43284966 0.47685924 0.40790246
## [11,] 0.37716841 0.89816713 0.44241315 0.81052734 0.09849889 0.49175414
## [12,] 0.49175414 0.96086721 0.55552580 0.64756730 0.40211560 0.44612519
## [13,] 0.44612519 0.37716841 0.89816713 0.44241315 0.81052734 0.09849889
## [14,] 0.09849889 0.49175414 0.96086721 0.55552580 0.64756730 0.40211560
## [15,] 0.40211560 0.44612519 0.37716841 0.89816713 0.44241315 0.81052734
## [16,] 0.81052734 0.09849889 0.49175414 0.96086721 0.55552580 0.64756730
## [17,] 0.64756730 0.40211560 0.44612519 0.37716841 0.89816713 0.44241315
## [18,] 0.44241315 0.81052734 0.09849889 0.49175414 0.96086721 0.55552580
## [19,] 0.55552580 0.64756730 0.40211560 0.44612519 0.37716841 0.89816713
## [20,] 0.89816713 0.44241315 0.81052734 0.09849889 0.49175414 0.96086721
## [,7] [,8] [,9] [,10] [,11]
## [1,] 0.39581503 0.91681376 0.46105978 0.8291740 0.11714551
## [2,] 0.52818887 0.99730194 0.59196053 0.6840020 0.43855033
## [3,] 0.46718994 0.39823317 0.91923189 0.4634779 0.83159210
## [4,] 0.12305373 0.51630898 0.98542205 0.5800806 0.67212213
## [5,] 0.41736326 0.46137284 0.39241607 0.9134148 0.45766081
## [6,] 0.82744378 0.11541533 0.50867058 0.9777836 0.57244224
## [7,] 0.66186899 0.41641730 0.46042688 0.3914701 0.91246883
## [8,] 0.47647038 0.84458457 0.13255612 0.5258114 0.99492444
## [9,] 0.57230148 0.66434298 0.41889129 0.4629009 0.39394409
## [10,] 0.92890119 0.47314721 0.84126140 0.1292329 0.52248819
## [11,] 0.96086721 0.55552580 0.64756730 0.4021156 0.44612519
## [12,] 0.37716841 0.89816713 0.44241315 0.8105273 0.09849889
## [13,] 0.49175414 0.96086721 0.55552580 0.6475673 0.40211560
## [14,] 0.44612519 0.37716841 0.89816713 0.4424132 0.81052734
## [15,] 0.09849889 0.49175414 0.96086721 0.5555258 0.64756730
## [16,] 0.40211560 0.44612519 0.37716841 0.8981671 0.44241315
## [17,] 0.81052734 0.09849889 0.49175414 0.9608672 0.55552580
## [18,] 0.64756730 0.40211560 0.44612519 0.3771684 0.89816713
## [19,] 0.44241315 0.81052734 0.09849889 0.4917541 0.96086721
## [20,] 0.55552580 0.64756730 0.40211560 0.4461252 0.37716841
En conclusión, el siguiente proyecto se trató de predecir si el cliente consultado debe otorgarle un seguro de vida laboral usando los algoritmos de redes neuronales multicapa, trabajando en conjunto con el margen de error. Al principio se optó por un algoritmo de perceptrón simple para el proceso de datos, pero se apreció que los resultados no eran óptimos y una falta de mejor acabo en el dato de salida. Por último, usando el paquete NeuralNet, se aplicó una secuencia de capas internar en donde los datos de entrada junto con el arreglo de datos deseados, se lograba predecir un mejor valor de salida, y el margen de error era de carácter menor, asegurándonos un mejor resultado.