<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小程序
    主站蜘蛛池模板: 亚洲日韩在线视频| 亚洲v国产v天堂a无码久久| 亚洲人成在线播放网站| 天堂亚洲免费视频| 亚洲A丁香五香天堂网| 国产精品hd免费观看| 亚洲日韩在线观看| 在线看片免费人成视频久网下载| 一个人看的免费高清视频日本| www亚洲一级视频com| 国产男女爽爽爽免费视频| 国产亚洲一区二区三区在线不卡| 久久国产精品免费一区| 亚洲日韩激情无码一区| 一级成人a毛片免费播放| 亚洲欧洲精品视频在线观看| 日本一区二区三区免费高清| 亚洲AV性色在线观看| 亚洲综合色区在线观看| 中文无码成人免费视频在线观看| 亚洲av鲁丝一区二区三区| 日本片免费观看一区二区| 亚洲成A人片在线播放器| 免费无遮挡无码永久在线观看视频| 免费一级毛片在线播放放视频| 精品国产人成亚洲区| 久久精品毛片免费观看| 亚洲综合av一区二区三区不卡 | 中国一级特黄的片子免费| 亚洲AV无码一区二区三区系列| av大片在线无码免费| 麻豆安全免费网址入口| 亚洲成在人线av| 噼里啪啦电影在线观看免费高清| 添bbb免费观看高清视频| 久久久久久亚洲精品| 国产男女性潮高清免费网站| 免费日本一区二区| 亚洲欧美熟妇综合久久久久| 亚洲精品制服丝袜四区| 女人毛片a级大学毛片免费|