<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小程序
    主站蜘蛛池模板: 国产亚洲av片在线观看播放| 亚洲国产韩国一区二区| 免费观看久久精彩视频| 亚洲成人福利网站| 国产高清在线免费视频| 成人一区二区免费视频| 亚洲中文久久精品无码1| 免费大片黄手机在线观看| 久久精品国产大片免费观看| 精品国产日韩久久亚洲| 亚洲精品视频在线看| 国产精品永久免费10000| 男人j进女人p免费视频| 亚洲色欲www综合网| 国产gav成人免费播放视频| 鲁大师在线影院免费观看| 久久亚洲精品11p| 久久精品国产亚洲AV无码麻豆| 午夜小视频免费观看| 免费av片在线观看网站| 亚洲av永久无码一区二区三区| 亚洲天堂在线播放| 亚洲AV无码一区二区三区在线观看 | 中国性猛交xxxxx免费看| 亚洲中文字幕精品久久| 亚洲AV无码国产精品麻豆天美| 午夜毛片不卡免费观看视频| 无码精品一区二区三区免费视频 | 国产亚洲综合久久| 亚洲婷婷天堂在线综合| 亚洲熟妇无码八AV在线播放| 精品少妇人妻AV免费久久洗澡| 69视频在线是免费观看| 久久精品无码免费不卡| 美国毛片亚洲社区在线观看| 亚洲午夜成人精品无码色欲| 亚洲精品第五页中文字幕| 亚洲国产精品VA在线看黑人| 亚洲AV无码乱码精品国产| 国产精品免费小视频| 搡女人免费视频大全|