Código de Java - Regresión lineal inteligencia artificial

Imágen de perfil
Val: 493
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Regresión lineal inteligencia artificialgráfica de visualizaciones


Java

Publicado el 29 de Diciembre del 2018 por Rafael Angel
1.135 visualizaciones desde el 29 de Diciembre del 2018
Permite predecir el siguiente valor de un siguiente tiempo o condicion.
Viene con un ejemplo en el cual se quiere saber las ganancias para el mes numero 7.
Ademas trae una anotation (anotacion) para que aprendas a crear tus propias etiquetas de ayuda al estilo @Override...

Trae un main.

Requerimientos

NetBeans 8.2
Geany.
Maquina virtual java 8.2 o superior.

1.0

Publicado el 29 de Diciembre del 2018gráfica de visualizaciones de la versión: 1.0
1.136 visualizaciones desde el 29 de Diciembre del 2018
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

Viene hecho de manera que pueda ser reautilizado en lo que sea.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package refinando_java;
 
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import javax.swing.JOptionPane;
 
/**
 *Creado en viernes 28 de diciembre del 2018
 * 
 * 
 */
@Rafael_Angel_Montero_Fernandez
public class RegrecionLineal {
    public Modelo modelo=new Modelo();
 
    public double regrecion_lineal(double proximo_tiempo){
        this.sumatoria_t();
        this.sumatoria_x();
        this.sumatoria_t_elevado_al_cuadrado();
        this.sumatoria_x_por_t();
        this.total_t_elevado_al_cuadrado();
        this.promedio_de_t();
        this.promedio_de_x();
        this.pendiente_b();
        this.interseccion_A();
        modelo.setProximo_t(proximo_tiempo);
        modelo.setXt(modelo.getInterseccion_A()+(modelo.getPendiente_B()*modelo.getProximo_t()));
        modelo.msjResultados();
        return modelo.getRegrecion_lineal();
    }
 
 
    public double regrecion_lineal(double mTiempo[], double mValores[], double proximo_tiempo){
        modelo.mTtiempo_t=mTiempo;
        modelo.mValores_x=mValores;
        this.sumatoria_t();
        this.sumatoria_x();
        this.sumatoria_t_elevado_al_cuadrado();
        this.sumatoria_x_por_t();
        this.total_t_elevado_al_cuadrado();
        this.promedio_de_t();
        this.promedio_de_x();
        this.pendiente_b();
        this.interseccion_A();
        modelo.setProximo_t(proximo_tiempo);
        modelo.setXt(modelo.getInterseccion_A()+(modelo.getPendiente_B()*modelo.getProximo_t()));
        modelo.msjResultados();
        return modelo.getRegrecion_lineal();
    }
 
    private void interseccion_A(){
        modelo.setInterseccion_A(modelo.getPromedio_de_x()-(modelo.getPendiente_B()*modelo.getPromedio_de_t()));
    }
 
 
    private void pendiente_b(){
        double operacion1=modelo.mTtiempo_t.length*modelo.getSumatoria_t_por_x();
        System.out.println("operacion1=" + operacion1);
        double operacion2=modelo.getSumatoria_de_x()*modelo.getSumatoria_t();
        System.out.println("operacion2=" + operacion2);
        double operacion3=modelo.mTtiempo_t.length*modelo.getSumatoria_t_elevado_al_cuadrado();
        System.out.println("operacion3=" + operacion3);
        double operacion4=operacion1-operacion2;
        System.out.println("operacion4=" + operacion4);
        double operacion5=operacion3-modelo.getT_elevado_al_cuadrado();
        modelo.setPendiente_B(operacion4/operacion5);
        System.out.println("operacion5=" + operacion5);
    }
 
    private void promedio_de_t(){
        modelo.setPromedio_de_t(modelo.getSumatoria_t()/6);
    }
 
    private void promedio_de_x(){
        modelo.setPromedio_de_x(modelo.getSumatoria_de_x()/6);
    }
 
    private void total_t_elevado_al_cuadrado(){
        modelo.setT_elevado_al_cuadrado ( Math.pow(modelo.getSumatoria_t(), 2) );
        System.out.println("modelo.getT_elevado_al_cuadrado()=" + modelo.getT_elevado_al_cuadrado());
    }
 
    private void sumatoria_t_elevado_al_cuadrado(){
        int i=0;
        while(i<=modelo.mValores_x.length-1){
            modelo.setSumatoria_t_elevado_al_cuadrado(modelo.getSumatoria_t_elevado_al_cuadrado() + Math.pow(modelo.mTtiempo_t[i],2) );
            i++;
        }
    }
 
    private void sumatoria_t(){
        int i=0;
        while(i<=modelo.mValores_x.length-1){
            modelo.setSumatoria_t(modelo.getSumatoria_t()+modelo.mTtiempo_t[i] );
            i++;
        }
    }
 
    private void sumatoria_x(){
        int i=0;
        while(i<=modelo.mValores_x.length-1){
            modelo.setSumatoria_de_x(modelo.getSumatoria_de_x()+modelo.mValores_x[i] );
            i++;
        }
    }
 
    private void sumatoria_x_por_t(){
        int i=0;
        while(i<=modelo.mValores_x.length-1){
            modelo.setSumatoria_t_por_x(modelo.getSumatoria_t_por_x()+ (modelo.mValores_x[i]* modelo.mTtiempo_t[i] ) );
            System.out.println("modelo.getSumatoria_t_por_x()=" + modelo.getSumatoria_t_por_x());
            i++;
        }
        System.out.println("modelo.getSumatoria_t_por_x()=" + modelo.getSumatoria_t_por_x());
    }
 
 
    public static void main(String args []){
        RegrecionLineal regresion_l=new RegrecionLineal();
        regresion_l.modelo.setValores_de_x("7000 9000 5000 11000 10000 13000");
        regresion_l.modelo.setTiempos("1 2 3 4 5 6");
        final double siguiente_t=7;//Original 7
        JOptionPane.showMessageDialog(null, Math.round(regresion_l.regrecion_lineal( siguiente_t) ), "Regresion lineal desde el main", JOptionPane.INFORMATION_MESSAGE);
    }
 
    public class Modelo{
 
        public double mValores_x[]={};
 
        /**
         * 
         * @param nuevos_valores_de_x Debe pasarle los valores numericos en formato de String y ceparados por espacios.
         * Ejemplo setValores_de_x("100 20 35 41 55 67 7000").
         */
        public void setValores_de_x(String nuevos_valores_de_x){
            int i=0;
            String mValores[]=nuevos_valores_de_x.split(" ");
            this.mValores_x=new double[mValores.length];
            while(i<=mValores.length-1){
                mValores_x[i]=Double.parseDouble(mValores[i]);
                i++;
            }
        }
 
        private double mTtiempo_t[]={};
 
        /**
         * 
         * @param nuevos_tiempos Debe pasarle los valores numericos en formato de String y ceparados por espacios.
         * Ejemplo setTiempos("1 2 3 4 5 6 7").
         */
        public void setTiempos(String nuevos_tiempos){
            int i=0;
            String mTiempos[]=nuevos_tiempos.split(" ");
            this.mTtiempo_t=new double[mTiempos.length];
            while(i<=mTiempos.length-1){
                mTtiempo_t[i]=Double.parseDouble(mTiempos[i]);
                i++;
            }
        }
 
        public double proximo_t=0.0;
 
        public Modelo(double nuevo_mTiempo[], double nuevo_mValores_x[], double proximo_tiempo){
            mValores_x=nuevo_mValores_x;
            mTtiempo_t=nuevo_mTiempo;
            this.setProximo_t(proximo_t);
        }
        public Modelo(double nuevo_x_por_t, double nuevo_sumatoria_de_x, double nuevo_sumatoria_t_por_x, double nuevo_t_elevado_al_cuadrado, double nuevo_sumatoria_t_elevado_al_cuadrado, double nuevo_sumatoria_t, double nuevo_pendiente_B, double nuevo_promedio_de_t, double nuevo_promedio_de_x, double nuevo_xt){
            setX_por_t(nuevo_x_por_t);
            setSumatoria_de_x(nuevo_sumatoria_de_x);
            setSumatoria_t_por_x(nuevo_sumatoria_t_por_x);
            setT_elevado_al_cuadrado(nuevo_t_elevado_al_cuadrado);
            setSumatoria_t_elevado_al_cuadrado(nuevo_sumatoria_t_elevado_al_cuadrado);
            setSumatoria_t(nuevo_sumatoria_t);
            setPendiente_B(nuevo_pendiente_B);
            setPromedio_de_t(nuevo_promedio_de_t);
            setPromedio_de_x(nuevo_promedio_de_x);
            setXt(nuevo_xt);
 
        }
        public Modelo(){}
 
        /**

        **/
         private double interseccion_A=0.0;
        /**

        **/
        public void setInterseccion_A(double nuevo_interseccion_A)
        {
 
            interseccion_A=nuevo_interseccion_A;
        }
        /**

        **/
        public double getInterseccion_A(){
 
            return interseccion_A;
        }
 
        /**

        **/
         private double x_por_t =0.0;
        /**

        **/
        public void setX_por_t(double nuevo_x_por_t)
        {
 
            x_por_t=nuevo_x_por_t;
            System.out.println("Obteniendo x_por_t=" + x_por_t);
        }
        /**

        **/
        public double getX_por_t(){
 
            return x_por_t;
        }
 
        /**

        **/
         private double sumatoria_de_x =0.0;
        /**

        **/
        public void setSumatoria_de_x(double nuevo_sumatoria_de_x)
        {
 
            sumatoria_de_x=nuevo_sumatoria_de_x;
        }
        /**

        **/
        public double getSumatoria_de_x(){
 
            return sumatoria_de_x;
        }
 
        /**

        **/
         private double sumatoria_t_por_x =0.0;
        /**

        **/
        public void setSumatoria_t_por_x(double nuevo_sumatoria_t_por_x)
        {
 
            sumatoria_t_por_x=nuevo_sumatoria_t_por_x;
        }
        /**

        **/
        public double getSumatoria_t_por_x(){
 
            return sumatoria_t_por_x;
        }
 
        /**

        **/
         private double t_elevado_al_cuadrado =0.0;
        /**

        **/
        public void setT_elevado_al_cuadrado(double nuevo_t_elevado_al_cuadrado)
        {
 
            t_elevado_al_cuadrado=nuevo_t_elevado_al_cuadrado;
        }
        /**

        **/
        public double getT_elevado_al_cuadrado(){
 
            return t_elevado_al_cuadrado;
        }
 
        /**
        A2^2+A3^2+A4^2+A5^2+A6^2+A7^2
        **/
         private double sumatoria_t_elevado_al_cuadrado =0.0;
        /**
        A2^2+A3^2+A4^2+A5^2+A6^2+A7^2
        **/
        public void setSumatoria_t_elevado_al_cuadrado(double nuevo_sumatoria_t_elevado_al_cuadrado)
        {
 
            sumatoria_t_elevado_al_cuadrado=nuevo_sumatoria_t_elevado_al_cuadrado;
        }
        /**
        A2^2+A3^2+A4^2+A5^2+A6^2+A7^2
        **/
        public double getSumatoria_t_elevado_al_cuadrado(){
 
            return sumatoria_t_elevado_al_cuadrado;
        }
 
        /**

        **/
         private double sumatoria_t =0.0;
        /**

        **/
        public void setSumatoria_t(double nuevo_sumatoria_t)
        {
 
            sumatoria_t=nuevo_sumatoria_t;
        }
        /**

        **/
        public double getSumatoria_t(){
 
            return sumatoria_t;
        }
 
        /**

        **/
         private double pendiente_B =0.0;
        /**

        **/
        public void setPendiente_B(double nuevo_pendiente_B)
        {
 
            pendiente_B=nuevo_pendiente_B;
        }
        /**

        **/
        public double getPendiente_B(){
 
            return pendiente_B;
        }
 
        /**

        **/
         private double promedio_de_t =0.0;
        /**

        **/
        public void setPromedio_de_t(double nuevo_promedio_de_t)
        {
 
            promedio_de_t=nuevo_promedio_de_t;
        }
        /**

        **/
        public double getPromedio_de_t(){
 
            return promedio_de_t;
        }
 
        /**

        **/
         private double promedio_de_x =0.0;
        /**

        **/
        public void setPromedio_de_x(double nuevo_promedio_de_x)
        {
 
            promedio_de_x=nuevo_promedio_de_x;
        }
        /**

        **/
        public double getPromedio_de_x(){
 
            return promedio_de_x;
        }
 
        /**
        Es lo mismo que regresion lineal.
        **/
         private double xt =0.0;
        /**
        Es lo mismo que regresion lineal.
        **/
        public void setXt(double nuevo_xt)
        {
 
            xt=nuevo_xt;
        }
        /**
        Es lo mismo que regresion lineal.
        **/
        public double getXt(){
 
            return xt;
        }
 
        /**
        Es lo mismo que getXt().
        **/
        public double getRegrecion_lineal(){
 
            return xt;
        }
 
        /**
         * @return the proximo_t
         */
        public double getProximo_t() {
            return proximo_t;
        }
 
        /**
         * @param proximo_t the proximo_t to set
         */
        public void setProximo_t(double proximo_t) {
            this.proximo_t = proximo_t;
        }
 
        public void msjResultados(){
            JOptionPane.showMessageDialog(null,"Sumatoria de x="+ this.getSumatoria_de_x() +
                                "\nSumatoria de t=" + this.getSumatoria_t() + "\nSumatoria de t al cuadrado=" + this.getSumatoria_t_elevado_al_cuadrado() +
                                "\nSumatoria t*x=" + this.getSumatoria_t_por_x() +
                                "\nT elevado al cuadrado=" + this.getT_elevado_al_cuadrado() +
                                "\nPromedio de t=" + this.getPromedio_de_t() +
                                "\nPromedio de x=" + this.getPromedio_de_x() +
                                "\nPendiente B=" + this.getPendiente_B() + "\nInterseccion A=" +
                                this.getInterseccion_A() + "\nXt=" + this.getXt() + "\nRegresion lineal=" + this.getRegrecion_lineal(), "Resultados globales", JOptionPane.INFORMATION_MESSAGE);
        }
    }//Fin del class
 
}
 
@Retention (RetentionPolicy.RUNTIME)//Permite retener las anotaciones en tiempo de ejecusion y estaran disponibles en tiempo de ejecusion.
@Target(ElementType.TYPE_USE)//Las anotaciones solo estan a nivel de variables globales y objetos globales.
@Documented()
@interface Rafael_Angel_Montero_Fernandez{
    /**
     * 
     * @return Devuelve el correo del programador por defecto.
     */
    public String Correo() default "Sharkyc12@Gmail.com";
 
    public String Numero_telefonico() default "+50683942235";
}



Comentarios sobre la versión: 1.0 (0)


No hay comentarios
 

Comentar la versión: 1.0

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s4994
Revisar política de publicidad