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

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

?? smo1d_mex.c

?? 用matlab實現的統計模式識別工具箱
?? C
字號:
/* -------------------------------------------------------------------- smo1d_mex.c: MEX-file code for SMO for 1D linear case. Compile:  mex smo1d_mex.c Synopsis:   [Alpha,b,nsv,kercnt,trnerr,margin] = smo1d_mex(X, y, C, eps, tol); Input:  X [1 x num_data] Input numbers.  y [1 x num_data] Input labels.  C [1x1] SVM regularization constant.  eps [1x1] Tolerance of KKT-conditions.  tol [1x1] Minimal change of variables. Output:  Alpha [nsv x 1] Multipliers.  b [1x1] Bias.  nsv [1x1] Number os support vectors.  kercnt [1x1] Number of used dot product (scalar in this case)    evaluations.  trnerr [1x1] Training classification error.  margin [1x1] Margin of the found classifier. About: Statistical Pattern Recognition Toolbox (C) 1999-2003, Written by Vojtech Franc and Vaclav Hlavac <a href="http://www.cvut.cz">Czech Technical University Prague</a> <a href="http://www.feld.cvut.cz">Faculty of Electrical Engineering</a> <a href="http://cmp.felk.cvut.cz">Center for Machine Perception</a> Modifications: 14-may-2004, VF 15-July-2003, VF -------------------------------------------------------------------- */#include "mex.h"#include "matrix.h"#include <math.h>#include <stdlib.h>#include <string.h>/* if RANDOM is defined then a random element is used within optimization procedure as originally suggested by Platt. */#define RANDOM#define ZERO  1e-12#define MAX(A,B)   (((A) > (B)) ? (A) : (B) )#define MIN(A,B)   (((A) < (B)) ? (A) : (B) )/* --- Global variables ---------------------------------------------- */long   num_data;           /* number of training patterns */long   dim;                /* dimension */long   ker_cnt;            /* number of dot product evaluations */double C;                  /* trade-off constants */double tolerance=0.001;    /* tolerance in KKT fulfilment  */double eps=0.001;          /* minimal Lagrangeian change */double *data;              /* pointer at patterns */double *target;            /* pointer at labels */double w;                  /* normal vector */double *alpha;             /* Lagrange multipliers */double *b;                 /* Bias (threshold) *//* ============================================================== Implementation of Sequential Minimal Optimizer (SMO)============================================================== *//* -------------------------------------------------------------- Optimizes objective function for i1-th and i2-th pattern.-------------------------------------------------------------- */long takeStep( long i1, long i2 ) {   double y1, y2, s;   long i;   double alpha1, alpha2;    double a1, a2;   double E1, E2, L, H, k11, k22, k12, eta, Lobj, Hobj;   double c1, c2;   double t;   double b1, b2, bnew;   double delta_b;   double t1, t2;     if( i1 == i2 ) return( 0 );   alpha1 = alpha[i1];   y1 = target[i1];   E1 = w*data[i1] - *b - y1;   alpha2 = alpha[i2];   y2 = target[i2];   E2 = w*data[i2] -*b - y2;   s = y1 * y2;   if(s < 0)   {      L = MAX(0, alpha2 - alpha1);      H = MIN(C, C + alpha2 - alpha1);   }   else   {     L = MAX(0, alpha2 + alpha1 - C );     H = MIN(C, alpha2 + alpha1);   }   if( L == H ) return( 0 );   k11 = data[i1]*data[i1];   k12 = data[i1]*data[i2];   k22 = data[i2]*data[i2];   ker_cnt += 3;   eta = 2 * k12 - k11 - k22;   if( eta < 0 ) {      a2 = alpha2 + y2 * (E2 - E1) / eta;      if( a2 < L )         a2 = L;      else if( a2 > H )         a2 = H;   }   else {      c1 = eta/2;      c2 = y2 * (E1-E2)- eta * alpha2;      Lobj = c1 * L * L + c2 * L;      Hobj = c1 * H * H + c2 * H;      if( Lobj > Hobj+eps )         a2 = L;      else if( Lobj < Hobj-eps )         a2 = H;      else         a2 = alpha2;   }   if( fabs(a2-alpha2) < eps*(a2+alpha2+eps )) return( 0 );   a1 = alpha1 - s * (a2 - alpha2 );   if( a1 < ZERO ) {      a2 += s * a1;      a1 = 0;   }   else if( a1 > C-ZERO ) {      t = a1-C;      a2 += s * t;      a1 = C;   }   if( a1 > 0 && a1 < C )      bnew = *b + E1 + y1 * (a1 - alpha1) * k11 + y2 * (a2 - alpha2) * k12;   else {      if( a2 > 0 && a2 < C )         bnew = *b + E2 + y1 *(a1 - alpha1)*k12 + y2*(a2 - alpha2) * k22;      else {         b1 = *b + E1 + y1 * (a1 - alpha1) * k11 + y2 * (a2 - alpha2) * k12;         b2 = *b + E2 + y1 * (a1 - alpha1) * k12 + y2 * (a2 - alpha2) * k22;         bnew = (b1 + b2) / 2;      }   }   delta_b = bnew - *b;   *b = bnew;   t1 = y1 * (a1-alpha1);   t2 = y2 * (a2-alpha2);   w = w + data[i1]*y1*(a1-alpha[i1]) + data[i2]*y2*(a2-alpha[i2]);   alpha[i1] = a1;     alpha[i2] = a2;     return( 1 );}/* -------------------------------------------------------------- Finds the second Lagrange multiplayer to be optimize.-------------------------------------------------------------- */long examineExample( long i1 ){   double y1, alpha1, E1, r1;   double tmax;   double E2, temp;   long k, i2;   long k0;   y1 = target[i1];   alpha1 = alpha[i1];   E1 = w*data[i1] - *b - y1;   r1 = y1 * E1;   if(( r1 < -tolerance && alpha1 < C )      || (r1 > tolerance && alpha1 > 0)) {    /* Try i2 by three ways; if successful, then immediately return 1; */      for( i2 = (-1), tmax = 0, k = 0; k < num_data; k++ ) {         if( alpha[k] > 0 && alpha[k] < C ) {            E2 = w*data[k] - *b - target[k];            temp = fabs(E1 - E2);            if( temp > tmax ) {               tmax = temp;               i2 = k;            }         }      }      if( i2 >= 0 ) {         if( takeStep(i1,i2) )            return( 1 );      }#ifdef RANDOM      for( k0 = rand(), k = k0; k < num_data + k0; k++ ) {         i2 = k % num_data;#else      for( k = 0; k < num_data; k++) {         i2 = k;#endif         if( alpha[i2] > 0 && alpha[i2] < C ) {            if( takeStep(i1,i2) )               return( 1 );         }      }#ifdef RANDOM      for( k0 = rand(), k = k0; k < num_data + k0; k++ ) {         i2 = k % num_data;#else      for( k = 0; k < num_data; k++) {         i2 = k;#endif         if( takeStep(i1,i2) )            return( 1 );      }   } /* if( ... ) */   return( 0 );}/* -------------------------------------------------------------- Main SMO optimization cycle.-------------------------------------------------------------- */void runSMO( void ){   long numChanged = 0;   long examineAll = 1;   long k;   while( numChanged > 0 || examineAll ) {      numChanged = 0;      if( examineAll ) {         for( k = 0; k < num_data; k++ ) {            numChanged += examineExample( k );         }      }      else {         for( k = 0; k < num_data; k++ ) {            if( alpha[k] != 0 && alpha[k] != C )               numChanged += examineExample( k );         }      }      if( examineAll == 1 )         examineAll = 0;      else if( numChanged == 0 )         examineAll = 1;   }}/* ============================================================== Main MEX function - interface to Matlab.============================================================== */void mexFunction( int nlhs, mxArray *plhs[],		  int nrhs, const mxArray*prhs[] ){   long i,j ;   double *labels12, *nsv, *trn_err, *margin;   double nerr;   /* ---- check number of input arguments  ------------- */   if(nrhs != 5 )      mexErrMsgTxt("Incorrect number of input arguments.");   if(nlhs < 2)      mexErrMsgTxt("Not enough output arguments.");   /* ---- get input arguments  ----------------------- */   labels12 = mxGetPr(prhs[1]);    /* labels (1,2) */   data = mxGetPr(prhs[0]);  /* pointer at data */   dim = mxGetM(prhs[0]);     /* data dimension */   num_data = mxGetN(prhs[0]);       /* number of data */   C = mxGetScalar( prhs[2] );   eps = mxGetScalar( prhs[3] );   tolerance = mxGetScalar( prhs[4] );   /* ---- init variables ------------------------------- */      ker_cnt=0;      /* num of dot product evaluations  */   /* allocate memory for targets (labels) (1,-1) */   if( (target = mxCalloc(num_data, sizeof(double) )) == NULL) {      mexErrMsgTxt("Not enough memory.");   }   /* transform labels12 (1,2) from to targets (1,-1) */   for( i = 0; i < num_data; i++ ) {      target[i] = - labels12[i]*2 + 3;   }   /* create output variable for bias */   plhs[1] = mxCreateDoubleMatrix(1,1,mxREAL);   b = mxGetPr(plhs[1]); *b= 0;   /* create vector for Lagrangeians */   plhs[0] = mxCreateDoubleMatrix(num_data,1,mxREAL);   alpha = mxGetPr(plhs[0]);   /* inicialize alpha  */   for( i = 0; i < num_data; i++ ) {     alpha[i] = 0;   }   w=0;   /* ---- run SMO ------------------------------------------- */   runSMO();   /* ---- outputs ---------------------------------- */   if( nlhs >= 3 ) {      /* count number of support vectors */      plhs[2] = mxCreateDoubleMatrix(1,1,mxREAL);      nsv = mxGetPr(plhs[2]);      *nsv = 0;      for( i = 0; i < num_data; i++ ) {         if( alpha[i] > 0) (*nsv)++;       }   }   if( nlhs >= 4 ) {     /* number of used iterations */     plhs[3] = mxCreateDoubleMatrix(1,1,mxREAL);     (*mxGetPr(plhs[3])) = (double)ker_cnt;   }   if( nlhs >= 5) {     /* evaluates classification error on traning patterns */     plhs[4] = mxCreateDoubleMatrix(1,1,mxREAL);     trn_err = mxGetPr(plhs[4]);     *trn_err = 0;     for( i = 0; i < num_data; i++ ) {       if( target[i]*(w*data[i]-*b) < 0) (*trn_err)++;     }     *trn_err = (*trn_err)/(double)num_data;   }   if( nlhs >= 6) {           /* compute margin */      plhs[5] = mxCreateDoubleMatrix(1,1,mxREAL);      margin = mxGetPr(plhs[5]);      *margin = 1/sqrt(w*w);   }   /* decision function of type <w,x>+b is used */   *b = -*b;   /* ----- free memory --------------------------------------- */   mxFree( target );}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
韩国一区二区三区| 理论片日本一区| 久久精品一二三| 久久婷婷国产综合精品青草| 欧美一区二区视频在线观看2022| 欧美无砖专区一中文字| 日本韩国精品在线| 欧美亚洲综合色| 成人一级黄色片| 在线播放/欧美激情| 国产成人久久精品77777最新版本| 亚洲一区二区视频在线| 亚洲在线成人精品| 香蕉av福利精品导航| 亚洲综合在线电影| 婷婷久久综合九色综合伊人色| 五月天视频一区| 久草在线在线精品观看| 国产91丝袜在线观看| 色综合天天综合在线视频| 欧美日韩一区中文字幕| 日韩一区二区不卡| 国产欧美精品在线观看| 亚洲乱码国产乱码精品精的特点| 一区二区高清视频在线观看| 奇米精品一区二区三区在线观看| 激情综合一区二区三区| 亚洲国产cao| 亚洲福利一区二区三区| 久久久国产精品不卡| 男人的天堂久久精品| 精品一区二区三区香蕉蜜桃| 国产二区国产一区在线观看| 91美女片黄在线观看| 日韩午夜在线播放| 国产精品不卡一区| 日本成人中文字幕在线视频 | 视频一区视频二区中文字幕| 奇米色一区二区| www.欧美亚洲| 欧美xingq一区二区| 亚洲图片你懂的| 久久99精品久久久久久久久久久久 | 99re免费视频精品全部| 欧美精品一级二级| 国产精品欧美经典| 日本欧美韩国一区三区| 91麻豆精品在线观看| 精品国产乱码久久久久久1区2区| 一区二区三区波多野结衣在线观看 | 午夜免费欧美电影| 成人视屏免费看| 精品嫩草影院久久| 亚洲成av人片在线观看无码| 成人av在线播放网址| 久久青草欧美一区二区三区| 亚洲成av人**亚洲成av**| 波多野结衣在线aⅴ中文字幕不卡| 国产精品18久久久| 亚洲一区av在线| av在线综合网| 欧美成人国产一区二区| 免费视频最近日韩| 久久99精品久久久久久国产越南 | 欧美国产97人人爽人人喊| 日日夜夜精品视频免费| 蜜桃在线一区二区三区| 国产精品一区二区久久精品爱涩| 亚洲国产综合在线| 午夜精品aaa| 国产精品第五页| 91精品国产黑色紧身裤美女| 精品一区二区免费在线观看| 精品久久久久久久久久久久包黑料 | 成人免费高清视频在线观看| 777午夜精品免费视频| 亚洲小说欧美激情另类| 欧美在线三级电影| 一区免费观看视频| 91麻豆国产福利在线观看| 亚洲手机成人高清视频| 91麻豆福利精品推荐| 夜夜操天天操亚洲| 在线视频你懂得一区二区三区| 一片黄亚洲嫩模| 欧美日韩卡一卡二| 免费欧美高清视频| 99久久国产综合精品麻豆| 555www色欧美视频| 久久午夜羞羞影院免费观看| 经典三级一区二区| 国产日韩欧美麻豆| www.日韩av| 亚洲大片一区二区三区| 日韩写真欧美这视频| 国产xxx精品视频大全| 综合色天天鬼久久鬼色| 在线观看亚洲精品| 日韩av高清在线观看| 久久久综合视频| 91网页版在线| 天天综合色天天综合色h| 日韩午夜在线观看| 成人国产免费视频| 日韩国产欧美在线视频| 久久日韩粉嫩一区二区三区| 91丨九色丨蝌蚪富婆spa| 日产欧产美韩系列久久99| 久久精品一区四区| 日本电影欧美片| 亚洲成精国产精品女| 欧美亚洲一区二区三区四区| 一本色道综合亚洲| 国产久卡久卡久卡久卡视频精品| 中文字幕一区二区三区乱码在线| 91国内精品野花午夜精品 | 精品视频一区三区九区| 国内成人自拍视频| 艳妇臀荡乳欲伦亚洲一区| 精品国产乱码久久久久久久久| 国产成人av一区二区| 五月激情综合网| 日本一区二区免费在线 | 欧美成人一区二区三区在线观看| 成人aa视频在线观看| 久久99久久久久久久久久久| 18欧美乱大交hd1984| 欧美精品一区二区三区视频| 欧美影院一区二区三区| 国产美女在线观看一区| 一区二区三区在线免费视频 | 久久影院午夜论| 国内精品国产成人国产三级粉色 | 久久久久久夜精品精品免费| 色妹子一区二区| 国产在线播精品第三| 亚洲大片免费看| 亚洲少妇30p| 国产精品美女久久久久久久网站| 精品国产一区二区三区忘忧草| 在线观看区一区二| 91丨porny丨户外露出| 国产99久久精品| 国产一区二区成人久久免费影院| 亚洲成人免费观看| 一级做a爱片久久| 亚洲精品成人悠悠色影视| 国产精品久久久一区麻豆最新章节| 亚洲成在人线在线播放| 午夜精品爽啪视频| 日韩一区二区影院| 日韩丝袜美女视频| 日韩免费成人网| 精品国产第一区二区三区观看体验| 日韩一区二区三区观看| 制服丝袜亚洲网站| 日韩精品一区二区三区在线观看| 欧美精品v国产精品v日韩精品 | 日韩欧美一区在线| 久久综合九色欧美综合狠狠| 欧美成人精品福利| 久久夜色精品一区| 久久久五月婷婷| 中文字幕第一区第二区| 日本一区二区不卡视频| 亚洲天堂精品在线观看| 亚洲综合一区二区| 日本亚洲天堂网| 韩国精品主播一区二区在线观看| 国产在线麻豆精品观看| 成人综合日日夜夜| av影院午夜一区| 欧美在线视频日韩| 91精品国产综合久久精品图片| 欧美一区二区三区在线视频| 日韩欧美国产一区二区在线播放| 精品国产91洋老外米糕| 中文字幕va一区二区三区| 一区二区三区电影在线播| 日韩激情视频在线观看| 国产一区二区不卡在线| 96av麻豆蜜桃一区二区| 制服丝袜亚洲网站| 久久久精品国产免大香伊| 亚洲精品欧美激情| 美女精品自拍一二三四| av中文字幕不卡| 4438x亚洲最大成人网| 久久久久久久久伊人| 一区二区三区美女| 久久99国产精品麻豆| 色综合久久综合网97色综合 | 菠萝蜜视频在线观看一区| 欧美日韩国产在线观看| 国产欧美一区二区三区网站| 亚洲mv大片欧洲mv大片精品| 国产精品亚洲一区二区三区妖精| 欧美丝袜自拍制服另类| 亚洲国产高清不卡| 麻豆精品在线观看|