Reporte Practica 1 IA 2 Carrillo López Oscar Abraham
Reporte Practica 1 IA 2 Carrillo López Oscar Abraham
Reporte Practica 1 IA 2 Carrillo López Oscar Abraham
Reporte
Fecha: 02/14/2023
Bibliografía:
Estamos creando las bases de un perceptrón con esta practica
pero para dar contexto veamos un poco de que és y su historia. El
perceptrón fue propuesto por primera vez por Frank Rosenblatt
en 1958 como un modelo de neurona artificial que puede
aprender a clasificar patrones en función de la entrada de datos.
El perceptrón es un algoritmo de aprendizaje supervisado que ha
sido utilizado en una variedad de aplicaciones, desde el
reconocimiento de caracteres manuscritos hasta la detección de
spam en el correo electrónico. El modelo del perceptrón es
relativamente simple, pero ha sentado las bases para algoritmos
de aprendizaje más complejos y sofisticados en la actualidad. En
esta era de grandes cantidades de datos, el perceptrón sigue
siendo una herramienta valiosa para el análisis de datos y la toma
de decisiones automatizadas en la inteligencia artificial.
Menu:
Agregamos puntos:
Codigo:
GUI.java (La interfaz grafica y main function):
import javax.swing.*;
import java.awt.*;
import java.awt.geom.*;
import java.awt.event.*;
import java.util.ArrayList;
GUI(){
frame = new JFrame("Perceptron");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(750,500);
frame.setLocationRelativeTo(null);
//Input boxes
w1 = new JLabel("W1");
w1.setBounds(500, 350, 50, 20);
w1Field = new JTextField(10);
w1Field.setBounds(520,350,150,20);
w2 = new JLabel("W2");
w2.setBounds(500, 300, 50, 20);
w2Field = new JTextField(10);
w2Field.setBounds(520,300,150,20);
b = new JLabel("B");
b.setBounds(500, 250, 50, 20);
bField = new JTextField(10);
bField.setBounds(520,250,150,20);
g.setBounds(50,50,400,400);
import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.ArrayList;
import java.util.List;
}
public List<ChartPoint> points = new ArrayList<>();
Graph(){
setBackground(new Color(167,203,249));
addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e){
points.add(new ChartPoint(e.getX(), e.getY()));
repaint();
}
});
boolean [] getCompute(){
return arr;
}
@Override
public void paintComponent (Graphics g){
super.paintComponent(g);
Graphics g2 = (Graphics2D) g;
boolean drawLine = false;
g2.setColor(Color.RED);
for (ChartPoint p : points){
if (p.above) {
drawLine = true;
g2.setColor(new Color( 51, 0, 243 ));
}
g2.fillOval(p.x, p.y, 5, 5);
g2.setColor(Color.RED);
}
g2.setColor(Color.BLACK);
Dimension d = this.getSize();
int height = (int) d.getHeight()/2;
int width = (int) d.getWidth()/2;
g.drawLine(width, 0, width, height+height);
g.drawLine(0, height, width+width, height);
for (int i = 0; i < height*2 ; i+=20) {
g.drawLine(width-10, i, width+10, i);
g.drawString(String.valueOf(200-i), width-15, i);
}
for (int i = 0; i < width*2 ; i+=40) {
g.drawLine(i, height-10, i, height+10);
g.drawString(String.valueOf((200-i)*-1), i, height-15);
}
if (drawLine) {
System.out.println("En el while");
g.drawLine(chartPoints[0], chartPoints[1], chartPoints[2],
chartPoints[3]);
}
}
Neuron.java (Logica y el que calcula la linea con los datos)
void computePoints(){
int n = 0;
while (computeFunction(n) < 200 && computeFunction(n) > -200) {
n--;
}
System.out.println(computeFunction(n));
point1[0]=n+200;
point1[1]=Math.abs(computeFunction(n)-200);
n = 0;
while (computeFunction(n) < 200 && computeFunction(n) > -200) {
n++;
}
point2[0]=n+200;
System.out.println(computeFunction(n));
point2[1]=Math.abs(computeFunction(n)-200);
System.out.println(point1[0] + " " + point1[1] + " " + point2[0] + "
" + point2[1]);
}