亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? knn-demo.txt

?? KNN DEMO This is a binary classification problem defined on a N*N field.
?? TXT
字號:
//


// kNN demo
// Jerry Zhu, Carnegie Mellon University, 2000/12
// My first Java program.

import java.applet.Applet;
import java.awt.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
                                    
    
public class KNN extends Applet implements ActionListener
{
    private TextField inputN, inputComplexity, inputK, inputKNN;
    private Button Step1Button, Step2Button, Step3Button;
	private Label errLabel; 
    private KNNCanvas theKNNCanvas;
	private Canvas theTruthCanvas;
    
    private int n, complexity, k, knn;
    private boolean[][] truth;
    private class Sample {
        int x;
        int y;
        boolean label;
    } 
    Sample[] samples;
    
    private class Distance {
        double d;
        boolean label;
    } 
    Distance[] distances;
    
    public void init()
    {
		GridBagLayout bag = new GridBagLayout();
		GridBagConstraints c = new GridBagConstraints();
        this.setLayout(bag);

		// create input fields for 
        // N: the size of the area is N*N
		Label label = new Label("Step 1: Field size(10--80):");
		bag.setConstraints(label, c);
		this.add(label);
        inputN = new TextField("80", 2);
		bag.setConstraints(inputN, c);
        this.add(inputN);
		// Complexity: of the true distribution
		label = new Label("      complexity(1--100):");
		bag.setConstraints(label, c);
		this.add(label);
        inputComplexity = new TextField("5", 2);
		bag.setConstraints(inputComplexity, c);
        this.add(inputComplexity);
        Step1Button = new Button("Create Truth");
		Step1Button.addActionListener(this);
		c.anchor = GridBagConstraints.WEST;
		c.gridwidth = GridBagConstraints.REMAINDER; // last component in a row
		bag.setConstraints(Step1Button, c);
		c.anchor = GridBagConstraints.CENTER;
		this.add(Step1Button);
		
        // k: number of positive or negative examples
		label = new Label("Step 2: samples(1--2000):");
		c.gridwidth = 1; // reset to default
		bag.setConstraints(label, c);
		this.add(label);
        inputK = new TextField("10", 2);
		bag.setConstraints(inputK, c);
		this.add(inputK);
        Step2Button = new Button("Generate Samples");
		Step2Button.addActionListener(this);
		c.anchor = GridBagConstraints.WEST;
		c.gridwidth = GridBagConstraints.REMAINDER; // last component in a row
		bag.setConstraints(Step2Button, c);
		c.anchor = GridBagConstraints.CENTER;
		this.add(Step2Button);
		
		// kNN: the number of neighbors considered in kNN.
		label = new Label("Step 3: kNN(1--100):");
		c.anchor = GridBagConstraints.WEST;
		c.gridwidth = 1; // reset to default
		bag.setConstraints(label, c);
		c.anchor = GridBagConstraints.CENTER;
		this.add(label);
        inputKNN = new TextField("1", 2);
		bag.setConstraints(inputKNN, c);
		this.add(inputKNN);
        Step3Button = new Button("Classify");
		Step3Button.addActionListener(this);
		this.add(Step3Button);
		errLabel = new Label(" ");
		c.anchor = GridBagConstraints.WEST;
		c.fill = GridBagConstraints.BOTH;
		c.gridwidth = GridBagConstraints.REMAINDER; // last component in a row
		bag.setConstraints(errLabel, c);
		this.add(errLabel);
		
		// the truth canvas
		theTruthCanvas = new TruthCanvas();
		theTruthCanvas.setSize(404, 404);
		c.fill = GridBagConstraints.BOTH;
		c.weightx = 0;
		c.weighty = 1;
		c.gridwidth = 1;
		c.gridwidth = GridBagConstraints.RELATIVE; // last component in a row
		c.gridheight = GridBagConstraints.REMAINDER; // last component in a column
		bag.setConstraints(theTruthCanvas, c);
		this.add(theTruthCanvas);
		// the KNN canvas
		theKNNCanvas = new KNNCanvas();
		theKNNCanvas.setSize(404, 404);
		c.fill = GridBagConstraints.BOTH;
		c.weightx = 1;
		c.weighty = 1;
		c.gridwidth = GridBagConstraints.REMAINDER; // last component in a row
		c.gridheight = GridBagConstraints.REMAINDER; // last component in a column
		bag.setConstraints(theKNNCanvas, c);
		this.add(theKNNCanvas);

	}
    
    public void actionPerformed(ActionEvent e)
	{
	 if (e.getSource() == Step1Button)
		{
		 n = new Integer(inputN.getText()).intValue();
 		 complexity = new Integer(inputComplexity.getText()).intValue();
		 k=0; // remove previous samples
		 truth = new boolean[n][n];
		 int x, y;
		 for (x=0; x<n; x++)
			 for (y=0; y<n; y++)
				 truth[x][y] = true;
		 for (int i=0; i<complexity; i++)
			{double w1, w2, b;
			 w1 = Math.random()*2 - 1;
			 w2 = Math.random()*2 - 1;
			 b = Math.random()*n/2;
 			 for (x=0; x<n; x++)
				 for (y=0; y<n; y++)
					 if (w1*(x-n/2)+w2*(y-n/2)+b>0)
						 truth[x][y] = !truth[x][y];
			}
		 theTruthCanvas.repaint();
		}
	 else if (e.getSource() == Step2Button)
		{
		 k = new Integer(inputK.getText()).intValue();
		 samples = new Sample[k];
		 int i;
		 for (i=0; i<k; i++)
		 {   samples[i] = new Sample();
		     samples[i].x = (int)(Math.random()*n);
		     samples[i].y = (int)(Math.random()*n);
		     samples[i].label = truth[samples[i].x][samples[i].y];
		 }
 		 theTruthCanvas.repaint();
		}
	 else if (e.getSource() == Step3Button)
		{int i;	
		 knn = new Integer(inputKNN.getText()).intValue();
		 distances = new Distance[knn];
		 for (i=0; i<knn; i++)
		 {   distances[i] = new Distance();
		 }
		 theKNNCanvas.repaint();
		}
	}    

    public void start()
    {
    }
    
    class KNNCanvas extends Canvas {
        
        public void paint(Graphics g) {
            int m=5; // m*m 'pixel'
            
            // draw bounding box
            g.setColor(Color.black);
            System.out.println(n);            
            g.drawRect(0, 0, n*m+1, n*m+1);
            
             // for each point, classify it with kNN.
			 int error = 0; // number of misclassified points
             for (int x=0; x<n; x++)
                 for (int y=0; y<n; y++)
                    {
                     // find the knn
                     for (int i=0; i<k; i++){
                         double dist = (samples[i].x-x)*(samples[i].x-x)+(samples[i].y-y)*(samples[i].y-y);
                         if (i<knn)
                            {distances[i].d = dist;
                             distances[i].label = samples[i].label;
                            }
                         else
                            {// go through the knn list and replace the biggest one if possible
                             double biggestd = distances[0].d;
                             int biggestindex = 0;
                             for (int a=1; a<knn; a++)
                                 if (distances[a].d > biggestd)
                                 {biggestd = distances[a].d;
                                  biggestindex = a;
                                 }
                             if (dist < biggestd)
                                {distances[biggestindex].d = dist;
                                 distances[biggestindex].label = samples[i].label;
                                }
                            }
                     }
                     // count which label in knn occurs most, this is the classification of (x,y)
                     int nT=0, nF=0;
					 boolean classification;
                     for (int i=0; i<knn; i++)
                         if (distances[i].label == true)
                             nT++;
                         else
                             nF++;
					 if (nT<nF)
						 classification = false;
					 else if (nT>nF)
						 classification = true;
					 else
						 classification = Math.random() < 0.5; // if tie, randomly break it
					 
                     if (classification == false)
                         g.setColor(Color.white);
                     else
                         g.setColor(Color.green);
                     g.fillRect(m*x+1, m*y+1, m, m);
					 
					 // count classification errors
					 if (classification != truth[x][y])
						 error ++;
                    }
			 // update error label
			 if (n>0)
				errLabel.setText("    Error rate = " + (float)error/n/n*100 + "%");

             // draw labeled samples 
            g.setColor(Color.black);
            for (int i=0; i<k; i++)
            {if (samples[i].label == true)
                 g.drawOval(samples[i].x*m+1, samples[i].y*m+1, m, m);
             else
                {g.drawLine(samples[i].x*m+(m+1)/2, samples[i].y*m+1, samples[i].x*m+(m+1)/2, samples[i].y*m+m);
                 g.drawLine(samples[i].x*m+1, samples[i].y*m+(m+1)/2, samples[i].x*m+m, samples[i].y*m+(m+1)/2);
                }
            }

        }
    }

    class TruthCanvas extends Canvas {
        
        public void paint(Graphics g) {
            int m=5; // m*m 'pixel'
            
            // draw bounding box
            g.setColor(Color.black);
            System.out.println(n);            
            g.drawRect(0, 0, n*m+1, n*m+1);
            
        
             // for each point, draw its true classification
             for (int x=0; x<n; x++)
                 for (int y=0; y<n; y++)
                    {
                     if (truth[x][y] == false)
                         g.setColor(Color.white);
                     else
                         g.setColor(Color.green);
                     g.fillRect(m*x+1, m*y+1, m, m);
                    }
            // draw labeled samples
            g.setColor(Color.black);
            for (int i=0; i<k; i++)
            {if (samples[i].label == true)
                 g.drawOval(samples[i].x*m+1, samples[i].y*m+1, m, m);
             else
                {g.drawLine(samples[i].x*m+(m+1)/2, samples[i].y*m+1, samples[i].x*m+(m+1)/2, samples[i].y*m+m);
                 g.drawLine(samples[i].x*m+1, samples[i].y*m+(m+1)/2, samples[i].x*m+m, samples[i].y*m+(m+1)/2);
                }
            }
            
		}
    }

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
婷婷丁香久久五月婷婷| 精品国产一区二区三区忘忧草| 日本韩国精品一区二区在线观看| 欧美一区二区视频网站| 亚洲欧洲av在线| 久久不见久久见免费视频1| 日本韩国视频一区二区| 国产日韩精品一区二区浪潮av| 视频一区二区三区入口| 91影院在线观看| 久久久天堂av| 日本欧美一区二区在线观看| 91啦中文在线观看| 国产精品嫩草影院com| 黄色日韩三级电影| 制服丝袜成人动漫| 亚洲一区二区三区四区五区黄 | 亚洲精品一区二区三区影院| 亚洲另类一区二区| 成人高清免费在线播放| 久久一二三国产| 久久精品久久99精品久久| 欧美精品久久久久久久多人混战 | 成人免费电影视频| 久久亚洲精品小早川怜子| 免费的成人av| 日韩免费观看高清完整版| 亚洲午夜av在线| 欧美丝袜丝交足nylons图片| 亚洲女与黑人做爰| 色哟哟一区二区三区| 中文字幕亚洲区| 91美女视频网站| 一区二区三区四区不卡在线 | 椎名由奈av一区二区三区| 国产成人午夜99999| 久久久夜色精品亚洲| 国产精品18久久久久久久网站| 精品国产一区二区精华| 国产在线精品一区二区三区不卡| 精品国产在天天线2019| 极品美女销魂一区二区三区 | 欧美精品乱码久久久久久按摩| 亚洲高清视频在线| 91精品国产综合久久久久久久| 日韩黄色小视频| 欧美va亚洲va| 国产成人在线看| 亚洲日本丝袜连裤袜办公室| 色综合久久88色综合天天免费| 一片黄亚洲嫩模| 91精品欧美综合在线观看最新| 男人的天堂久久精品| 久久网站最新地址| 成人久久视频在线观看| 亚洲精选在线视频| 欧美三级中文字幕在线观看| 日韩电影一区二区三区| 国产亚洲一区二区三区在线观看| av中文字幕不卡| 五月综合激情网| 久久久噜噜噜久噜久久综合| 99视频精品在线| 日韩电影在线看| 欧美国产国产综合| 欧美色综合网站| 国内精品视频666| 亚洲视频在线一区二区| 欧美一区二区三区免费大片 | 欧美色窝79yyyycom| 毛片一区二区三区| 中文字幕一区不卡| 日韩西西人体444www| 国产成人精品一区二区三区四区| 依依成人精品视频| 精品国产一区二区三区av性色| av在线不卡观看免费观看| 日本午夜一本久久久综合| 国产精品视频yy9299一区| 337p亚洲精品色噜噜| 高清国产午夜精品久久久久久| 亚洲电影你懂得| 国产精品午夜久久| 日韩午夜激情视频| 在线一区二区三区| 成人午夜电影网站| 老色鬼精品视频在线观看播放| 国产精品久久久一本精品| 日韩精品中午字幕| 欧美日韩在线电影| 色综合久久综合网欧美综合网 | 99国产精品国产精品久久| 老司机午夜精品99久久| 性做久久久久久久免费看| 国产精品国产三级国产a| 精品剧情在线观看| 色综合久久久久久久久久久| 国产精品资源站在线| 日韩激情中文字幕| 亚洲永久精品国产| 亚洲欧洲日韩综合一区二区| 久久久不卡影院| 欧美一区二区三区免费在线看| 欧美色图一区二区三区| jiyouzz国产精品久久| 国产麻豆91精品| 精品亚洲免费视频| 乱一区二区av| 麻豆精品视频在线观看视频| 午夜精品久久久| 亚洲午夜在线视频| 亚洲综合偷拍欧美一区色| 亚洲欧美电影一区二区| 亚洲免费观看在线观看| 亚洲精品中文字幕在线观看| 一区在线中文字幕| 亚洲欧美另类久久久精品| 国产精品色眯眯| 亚洲四区在线观看| 亚洲综合图片区| 午夜久久久影院| 日韩国产成人精品| 奇米精品一区二区三区在线观看一| 午夜精品久久久久久久99水蜜桃| 婷婷中文字幕一区三区| 奇米综合一区二区三区精品视频| 蜜臀国产一区二区三区在线播放| 欧美aaaaa成人免费观看视频| 另类综合日韩欧美亚洲| 精品一区二区在线看| 国产精品一区二区久激情瑜伽| 国产成人av福利| 91麻豆免费在线观看| 欧美亚洲综合久久| 日韩一区二区三区免费看 | 国产精品77777| 成人18视频在线播放| 日本韩国精品在线| 日韩一级大片在线| 国产精品国产三级国产专播品爱网| 综合婷婷亚洲小说| 日韩高清在线电影| 国产精品白丝jk黑袜喷水| 色综合久久天天综合网| 欧美日韩国产美| 国产亚洲va综合人人澡精品| 亚洲欧美另类小说| 免费人成精品欧美精品| 成人成人成人在线视频| 欧美精品久久99久久在免费线| 久久亚洲欧美国产精品乐播| 亚洲人吸女人奶水| 国产精品一区二区在线观看不卡 | 中文无字幕一区二区三区 | 欧美三级三级三级| 精品99999| 一级特黄大欧美久久久| 国产资源在线一区| 日本精品视频一区二区三区| 精品国产一区二区三区不卡 | 在线观看视频一区二区| 日韩精品一区二| 亚洲精品免费在线播放| 久久er99热精品一区二区| 色网综合在线观看| 国产欧美日韩视频一区二区| 婷婷国产在线综合| 日本韩国精品在线| 国产日韩欧美麻豆| 免费成人美女在线观看| 色哟哟国产精品免费观看| 久久久精品tv| 另类小说视频一区二区| 欧洲国产伦久久久久久久| 国产精品美女久久久久av爽李琼 | 亚洲午夜久久久| 国产不卡在线一区| 日韩欧美一区二区免费| 亚洲妇熟xx妇色黄| 色综合天天视频在线观看| 久久久国产一区二区三区四区小说| 视频一区二区中文字幕| 欧美在线视频不卡| 中文字幕综合网| 成av人片一区二区| 国产日产精品一区| 国产一区二区视频在线播放| 337p亚洲精品色噜噜噜| 香港成人在线视频| 日本韩国欧美在线| 亚洲精品亚洲人成人网在线播放| www.成人网.com| 中文字幕亚洲电影| 成人激情小说网站| 日本一区二区成人| 成人一级片在线观看| 欧美国产日韩精品免费观看| 国产麻豆欧美日韩一区| 久久久天堂av| 国产福利一区二区三区视频在线|