<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    march alex's blog
    hello,I am march alex
    posts - 52,comments - 7,trackbacks - 0

    實現時遇到一個問題,就是fi的值的設定問題,因為我們采用隨機梯度下降法,一方面這節省了時間,但是如果fi值亙古不變的話可能會面臨跳來跳去一直找不到答案的問題,所以我這里設定他得知在每一輪之后都會按比例減小(fi *= 0.5;),大家可以按自己的喜好自由設定。
    import java.util.Scanner;


    public class Perceptron {
        private static int N = 3;
        private static int n = 2;
        private static double[][] X = null;
        private static double[] Y = null;
        private static double[] W = null;
        private static double B = 0;
        private static double fi = 0.5;
        
        private static boolean check(int id) {
            double ans = B;
            for(int i=0;i<n;i++)
                ans += X[id][i] * W[i];
            if(ans * Y[id] > 0) return true;
            return false;
        }
        
        private static void debug() {
            System.out.print("debug: W");
            for(int i=0;i<n;i++) System.out.print(W[i] + " ");
            System.out.println("/ B : " + B);
        }
        
        public static void solve() {
            Scanner in = new Scanner(System.in);
            System.out.print("input N:"); N = in.nextInt();
            System.out.print("input n:"); n = in.nextInt();
            
            X = new double[N][n];
            Y = new double[N];
            W = new double[n];
            
            System.out.println("input N * n datas X[i][j]:");
            for(int i=0;i<N;i++)
                for(int j=0;j<n;j++)
                    X[i][j] = in.nextDouble();
            System.out.println("input N datas Y[i]");
            for(int i=0;i<N;i++) 
                Y[i] = in.nextDouble();
            
            
            for(int i=0;i<n;i++) W[i] = 0;
            B = 0;
            
            boolean ok = true;
            while(ok == true) {
                ok = false;
                //這里在原來算法的基礎上不斷地將fi縮小,以避免跳來跳去一直達不到要求的點的效果。
                for(int i=0;i<N;i++) {
                    //System.out.println("here " + i);
                    while(check(i) == false) {
                        ok = true;
                        for(int j=0;j<n;j++)
                            W[j] += fi * Y[i] * X[i][j];
                        B += fi * Y[i];
                        //debug();
                    }
                }
                fi *= 0.5;
            }
        }
        
        public static void main(String[] args) {
            solve();
            System.out.print("W = [");
            for(int i=0;i<n-1;i++) System.out.print(W[i] + ", ");
            System.out.println(W[n-1] + "]");
            System.out.println("B = " + B);
        }
    }

    posted on 2015-03-20 11:08 marchalex 閱讀(634) 評論(0)  編輯  收藏 所屬分類: java小程序
    主站蜘蛛池模板: 国产99视频免费精品是看6| 国产成人午夜精品免费视频| 亚洲精品久久久www| 精品国产日韩亚洲一区91| 国产伦一区二区三区免费 | 亚洲欧洲自拍拍偷午夜色| 鲁大师在线影院免费观看 | 无码人妻一区二区三区免费n鬼沢 无码人妻一区二区三区免费看 | 内射干少妇亚洲69XXX| 免费人成在线观看网站品爱网 | 日本视频免费高清一本18| 亚洲av福利无码无一区二区| 久久精品视频免费看| 亚洲毛片无码专区亚洲乱| 永久免费的网站在线观看| 337p日本欧洲亚洲大胆人人| 亚洲精品99久久久久中文字幕 | 成人免费区一区二区三区| 亚洲AV乱码久久精品蜜桃 | 久久精品国产亚洲av高清漫画| 亚洲电影在线免费观看| 亚洲综合精品伊人久久| 亚洲精品乱码久久久久久不卡| 91免费国产视频| 色老板亚洲视频免在线观| 国产精品免费视频播放器| 久久www免费人成精品香蕉| 亚洲av无码av制服另类专区| 国产大片91精品免费观看不卡| 亚洲a∨国产av综合av下载 | 中文成人久久久久影院免费观看| 亚洲欧洲日韩综合| 国产免费拔擦拔擦8x| 久久久久久AV无码免费网站 | 精品视频一区二区三区免费| 久久久亚洲AV波多野结衣| 日本午夜免费福利视频| 久久国产乱子伦精品免费强| 一本色道久久综合亚洲精品蜜桃冫| 亚洲国产电影av在线网址| 67194国产精品免费观看|