<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值亙古不變的話可能會面臨跳來跳去一直找不到答案的問題,所以我這里設定他得知在每一輪之后都會按比例減?。╢i *= 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 閱讀(640) 評論(0)  編輯  收藏 所屬分類: java小程序
    主站蜘蛛池模板: 亚洲制服丝袜精品久久| 亚洲精品成人片在线观看| 亚洲福利在线视频| 二区久久国产乱子伦免费精品| 国产免费观看a大片的网站| 亚洲中文字幕日本无线码 | a级毛片在线免费| 亚洲色WWW成人永久网址| 特级做A爰片毛片免费看无码| 亚洲国产成人五月综合网| 国产黄在线观看免费观看不卡| 亚洲日韩在线观看免费视频| 久久最新免费视频| 亚洲激情中文字幕| 中文字幕无码播放免费| 亚洲日韩精品A∨片无码加勒比| 日韩在线天堂免费观看| 日韩久久无码免费毛片软件| 一本久久a久久精品亚洲| 国产免费AV片在线观看| 亚洲韩国在线一卡二卡| 成年女人看片免费视频播放器| 亚洲AV日韩AV一区二区三曲| 亚洲女人被黑人巨大进入| 在线免费播放一级毛片| 亚洲国产综合精品| 国产禁女女网站免费看| 中文在线观看免费网站| 亚洲男人天堂影院| www.亚洲精品.com| 99久热只有精品视频免费看 | 亚洲国产综合专区电影在线| 一二三四免费观看在线电影| 男人扒开添女人下部免费视频| 狠狠色伊人亚洲综合成人| 成年网站免费视频A在线双飞| 国产成人精品亚洲一区| 久久亚洲国产视频| 午夜免费不卡毛片完整版| 中文字幕成人免费高清在线| 亚洲香蕉久久一区二区|