grydra 0.1.3 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/lib/gr/core.rb +84 -3
  3. data/lib/gr/version.rb +1 -1
  4. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6c7c8176630e8f46bc755437bf28829564123d4c7b2c352a789abc257bd625f2
4
- data.tar.gz: c69e061a5b621989d15e7163878cd9302939a69043b4a4f228adbba41ba20563
3
+ metadata.gz: 37dd8b10192bf544515650cdfa80a827412a157cab145b7fade5f83bacfa1b62
4
+ data.tar.gz: f6732dd3b23cdde33299c5507fd25899266d768aceb057f495306edfe727bf3a
5
5
  SHA512:
6
- metadata.gz: 034f93c0e54bf6f2209b20efdcb4d0e0670cca1634808b3dab4b8563adb7ec82d071a0e0dea0939a7b00f6b8f3cdd66ee3a6f6b960920a0a8b8950195b1dbc8b
7
- data.tar.gz: 807c70832d2d0abd31b402dd51b9b28031360ea1ae89cbba2c6b6f68ccc86fc13cd1a7b9acc3a997c6b1fd94e7af18e0e1906328363574681764f6b31f56356e
6
+ metadata.gz: 506d94b9db23945c3dbf28bb8b7cfd26bb0aff454cd6e2ebdf1cdddfc88751ce2dd25bbd72960cf79f8ca63b88eb31f7195c2be6fec886a987d16b4baa52cc20
7
+ data.tar.gz: 1a229b7c8d7d59f68418e953a99e75852dc4156fd9cb70ea874943a2dbfbf7601e4e2e54ce09e85325f16d6496fd3462e0facf71a9c3c99966485c7582ebd48a
data/lib/gr/core.rb CHANGED
@@ -666,6 +666,12 @@ module GR
666
666
  ejemplo: <<~EX
667
667
  vectores_norm = GR.normalizar_con_vocabulario(vectores, vocabulario)
668
668
  EX
669
+ },
670
+ 'GR.generar_ejemplo' => {
671
+ descripcion: 'Genera un ejemplo con código funcioanl con la libreria, con ejemplos del 1 al 9.',
672
+ ejemplo: <<~EX
673
+ GR.generar_ejemplo(1)
674
+ EX
669
675
  }
670
676
  }
671
677
 
@@ -899,7 +905,7 @@ puts "Entrenando red..."
899
905
  red.entrenar_numericos(datos_in, datos_out, estructuras, 0.5, 30000, :zscore)
900
906
  #red.entrenar_numericos(datos_in, datos_out, estructuras, 0.5, 30000, :max)
901
907
 
902
- puts "\nIngrese los grados Celsius separados por espacio:"
908
+ puts "\\nIngrese los grados Celsius separados por espacio:"
903
909
  print "<< "
904
910
  entrada_usuario = gets.chomp.split.map(&:to_f).map { |v| [v] }
905
911
 
@@ -1042,9 +1048,84 @@ predicciones = modelo.predecir_numericos(nuevos_datos, normalizacion)
1042
1048
  puts "Predicción peso (kg) para altura \#{nuevos_datos[0][0]} cm y edad \#{nuevos_datos[0][1]} años:"
1043
1049
  puts predicciones.map { |p| p[0].round(2) }
1044
1050
  RUBY
1051
+ when 9
1052
+ contenido = <<-RUBY
1053
+ #Programa para determinar el precio de un producto
1054
+ require 'grydra'
1055
+
1056
+ #costo del producto sera usado en dolares
1057
+
1058
+ datos_entrada = [
1059
+ [10, 0], #<-- Numero de productos por empresa y (0 y 1) si es vip o no
1060
+ [15, 0],
1061
+ [8, 1],
1062
+ [20, 1],
1063
+ [12, 0],
1064
+ [30, 1],
1065
+ [25, 1],
1066
+ [5, 0],
1067
+ [18, 0],
1068
+ [40, 1]
1069
+ ]
1070
+ #Precio en dolares
1071
+ datos_salida = [
1072
+ [20],
1073
+ [28],
1074
+ [25],
1075
+ [45],
1076
+ [22],
1077
+ [60],
1078
+ [50],
1079
+ [12],
1080
+ [32],
1081
+ [80]
1082
+ ]
1083
+
1084
+ #Normalziación de datos (dato común --> Dato vectorial)
1085
+ max_en = GR.calcular_maximos(datos_entrada, :max) #Usaremos la normalizacion con max, aunque se puede con zscore
1086
+ max_sal = GR.calcular_maximos(datos_salida, :max)
1087
+
1088
+ datos_en_no = GR.normalizar_varios(datos_entrada, max_en, :max) #Por defecto usa max, entonces es opcional usar el :max
1089
+ datos_sal_no = GR.normalizar_varios(datos_salida, max_sal)
1090
+
1091
+ #Creamos la red
1092
+ red = GR::RedPrincipal.new
1093
+
1094
+ #Necesitamos agregar subredes a nuestra red
1095
+ red.agregar_subred([2, 4, 1], [:relu, :tanh])
1096
+ red.agregar_subred([2, 3, 1], [:tanh, :tanh])
1097
+
1098
+
1099
+ puts "Entrenando subredes"
1100
+ red.entrenar_subredes(
1101
+ [
1102
+ {entrada: datos_en_no, salida: datos_sal_no},
1103
+ {entrada: datos_en_no, salida: datos_sal_no}
1104
+ ],
1105
+ 0.2, #Tasa de aprendizaje
1106
+ 20000, #Número de epocas
1107
+ batch_size: 3, #Quiere decir que analizara de 3 en 3 datos
1108
+ paciencia: 500, #Si los resultados no mejoran en esas epocas entonces parara esa red
1109
+ decay: 0.995 #número por el cual va a multiplicar
1110
+ )
1111
+
1112
+ puts "Introduce los nuevos valores para predecir el precio del producto ej: (12 0)"
1113
+
1114
+
1115
+ valores = gets.chomp.strip.split.map(&:to_f)
1116
+
1117
+ entrada_nor = GR.normalizar_varios([valores], max_en, :max)[0]
1118
+ prediccion = red.combinar_resultados(entrada_nor)
1119
+ prediccion_desnorm = prediccion[0] * max_sal[0]
1120
+ puts "Precio aproximado en dolares es de $\#{prediccion_desnorm.round(2)}"
1121
+ RUBY
1122
+ else
1123
+ puts "\e[1;35mLos ejemplos posibles son del 1 al 9\e[0m"
1124
+ end
1125
+ if num_ejemplo <= 9 && num_ejemplo >= 1
1126
+ File.write("#{nombre_archivo}.#{extension}", contenido)
1127
+ puts "Ejemplo generado y guardado en \e[33m#{path}/#{nombre_archivo}\e[0m"
1045
1128
  end
1046
- File.write("#{nombre_archivo}.#{extension}", contenido)
1047
- puts "Ejemplo generado y guardado en \e[33m#{path}/#{nombre_archivo}\e[0m"
1048
1129
  end
1049
1130
  end
1050
1131
 
data/lib/gr/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Gr
2
- VERSION = "0.1.3"
2
+ VERSION = "0.1.4"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: grydra
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Razo