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

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

?? regsmoimproved.java

?? Weka
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
/* *    This program is free software; you can redistribute it and/or modify *    it under the terms of the GNU General Public License as published by *    the Free Software Foundation; either version 2 of the License, or *    (at your option) any later version. * *    This program is distributed in the hope that it will be useful, *    but WITHOUT ANY WARRANTY; without even the implied warranty of *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the *    GNU General Public License for more details. * *    You should have received a copy of the GNU General Public License *    along with this program; if not, write to the Free Software *    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. *//* *    RegSMOImproved.java *    Copyright (C) 2006 University of Waikato, Hamilton, New Zealand * */package weka.classifiers.functions.supportVector;import weka.core.Instances;import weka.core.Option;import weka.core.TechnicalInformation;import weka.core.TechnicalInformationHandler;import weka.core.Utils;import weka.core.TechnicalInformation.Field;import weka.core.TechnicalInformation.Type;import java.util.Enumeration;import java.util.Vector;/** <!-- globalinfo-start --> * Learn SVM for regression using SMO with Shevade, Keerthi, et al. adaption of the stopping criterion.<br/> * <br/> * For more information see:<br/> * <br/> * S.K. Shevade, S.S. Keerthi, C. Bhattacharyya, K.R.K. Murthy: Improvements to the SMO Algorithm for SVM Regression. In: IEEE Transactions on Neural Networks, 1999.<br/> * <br/> * S.K. Shevade, S.S. Keerthi, C. Bhattacharyya, K.R.K. Murthy (1999). Improvements to the SMO Algorithm for SVM Regression. Control Division, Dept. of Mechanical Engineering. * <p/> <!-- globalinfo-end --> * <!-- technical-bibtex-start --> * BibTeX: * <pre> * &#64;inproceedings{Shevade1999, *    author = {S.K. Shevade and S.S. Keerthi and C. Bhattacharyya and K.R.K. Murthy}, *    booktitle = {IEEE Transactions on Neural Networks}, *    title = {Improvements to the SMO Algorithm for SVM Regression}, *    year = {1999}, *    PS = {http://guppy.mpe.nus.edu.sg/\~mpessk/svm/ieee_smo_reg.ps.gz} * } *  * &#64;techreport{Shevade1999, *    address = {Control Division, Dept. of Mechanical Engineering}, *    author = {S.K. Shevade and S.S. Keerthi and C. Bhattacharyya and K.R.K. Murthy}, *    institution = {National University of Singapore}, *    number = {CD-99-16}, *    title = {Improvements to the SMO Algorithm for SVM Regression}, *    year = {1999}, *    PS = {http://guppy.mpe.nus.edu.sg/\~mpessk/svm/smoreg_mod.ps.gz} * } * </pre> * <p/> <!-- technical-bibtex-end --> * <!-- options-start --> * Valid options are: <p/> *  * <pre> -T &lt;double&gt; *  The tolerance parameter for checking the stopping criterion. *  (default 0.001)</pre> *  * <pre> -V *  Use variant 1 of the algorithm when true, otherwise use variant 2. *  (default true)</pre> *  * <pre> -P &lt;double&gt; *  The epsilon for round-off error. *  (default 1.0e-12)</pre> *  * <pre> -L &lt;double&gt; *  The epsilon parameter in epsilon-insensitive loss function. *  (default 1.0e-3)</pre> *  * <pre> -W &lt;double&gt; *  The random number seed. *  (default 1)</pre> *  <!-- options-end --> * * @author  Remco Bouckaert (remco@cs.waikato.ac.nz,rrb@xm.co.nz) * @version $Revision: 1.3 $ */public class RegSMOImproved  extends RegSMO  implements TechnicalInformationHandler {    /** for serialization */  private static final long serialVersionUID = 471692841446029784L;    public final static int I0 = 3;  public final static int I0a = 1;  public final static int I0b = 2;  public final static int I1 = 4;  public final static int I2 = 8;  public final static int I3 = 16;    /** The different sets used by the algorithm. */  protected SMOset m_I0;    /** Index set {i: 0 < m_alpha[i] < C || 0 < m_alphaStar[i] < C}} */  protected int [] m_iSet;    /** b.up and b.low boundaries used to determine stopping criterion */  protected double m_bUp, m_bLow;    /** index of the instance that gave us b.up and b.low */  protected int m_iUp, m_iLow;    /** tolerance parameter used for checking stopping criterion b.up < b.low + 2 tol */  double m_fTolerance = 0.001;    /** set true to use variant 1 of the paper, otherwise use variant 2 */  boolean m_bUseVariant1 = true;    /**   * Returns a string describing the object   *    * @return 		a description suitable for   * 			displaying in the explorer/experimenter gui   */  public String globalInfo() {    return         "Learn SVM for regression using SMO with Shevade, Keerthi, et al. "       + "adaption of the stopping criterion.\n\n"      + "For more information see:\n\n"      + getTechnicalInformation().toString();  }  /**   * Returns an instance of a TechnicalInformation object, containing    * detailed information about the technical background of this class,   * e.g., paper reference or book this class is based on.   *    * @return 		the technical information about this class   */  public TechnicalInformation getTechnicalInformation() {    TechnicalInformation 	result;    TechnicalInformation	additional;        result = new TechnicalInformation(Type.INPROCEEDINGS);    result.setValue(Field.AUTHOR, "S.K. Shevade and S.S. Keerthi and C. Bhattacharyya and K.R.K. Murthy");    result.setValue(Field.TITLE, "Improvements to the SMO Algorithm for SVM Regression");    result.setValue(Field.BOOKTITLE, "IEEE Transactions on Neural Networks");    result.setValue(Field.YEAR, "1999");    result.setValue(Field.PS, "http://guppy.mpe.nus.edu.sg/~mpessk/svm/ieee_smo_reg.ps.gz");        additional = result.add(Type.TECHREPORT);    additional.setValue(Field.AUTHOR, "S.K. Shevade and S.S. Keerthi and C. Bhattacharyya and K.R.K. Murthy");    additional.setValue(Field.TITLE, "Improvements to the SMO Algorithm for SVM Regression");    additional.setValue(Field.INSTITUTION, "National University of Singapore");    additional.setValue(Field.ADDRESS, "Control Division, Dept. of Mechanical Engineering");    additional.setValue(Field.NUMBER, "CD-99-16");    additional.setValue(Field.YEAR, "1999");    additional.setValue(Field.PS, "http://guppy.mpe.nus.edu.sg/~mpessk/svm/smoreg_mod.ps.gz");        return result;  }    /**   * Returns an enumeration describing the available options   *    * @return 		an enumeration of all the available options   */  public Enumeration listOptions() {    Vector result = new Vector();        result.addElement(new Option(	"\tThe tolerance parameter for checking the stopping criterion.\n" 	+ "\t(default 0.001)", 	"T", 1, "-T <double>"));        result.addElement(new Option(	"\tUse variant 1 of the algorithm when true, otherwise use variant 2.\n" 	+ "\t(default true)", 	"V", 0, "-V"));        Enumeration enm = super.listOptions();    while (enm.hasMoreElements()) {      result.addElement(enm.nextElement());    }        return result.elements();  }    /**   * Parses a given list of options. <p/>   *   <!-- options-start -->   * Valid options are: <p/>   *    * <pre> -T &lt;double&gt;   *  The tolerance parameter for checking the stopping criterion.   *  (default 0.001)</pre>   *    * <pre> -V   *  Use variant 1 of the algorithm when true, otherwise use variant 2.   *  (default true)</pre>   *    * <pre> -P &lt;double&gt;   *  The epsilon for round-off error.   *  (default 1.0e-12)</pre>   *    * <pre> -L &lt;double&gt;   *  The epsilon parameter in epsilon-insensitive loss function.   *  (default 1.0e-3)</pre>   *    * <pre> -W &lt;double&gt;   *  The random number seed.   *  (default 1)</pre>   *    <!-- options-end -->   *   * @param options 	the list of options as an array of strings   * @throws Exception 	if an option is not supported    */  public void setOptions(String[] options) throws Exception {    String	tmpStr;        tmpStr = Utils.getOption('T', options);    if (tmpStr.length() != 0) {      setTolerance(Double.parseDouble(tmpStr));    } else {      setTolerance(0.001);    }        setUseVariant1(Utils.getFlag('V', options));        super.setOptions(options);  }    /**   * Gets the current settings of the object.   *   * @return 		an array of strings suitable for passing to setOptions   */  public String[] getOptions() {    int       	i;    Vector    	result;    String[]  	options;    result = new Vector();    options = super.getOptions();    for (i = 0; i < options.length; i++)      result.add(options[i]);        result.add("-T");    result.add("" + getTolerance());        if (m_bUseVariant1)      result.add("-V");    return (String[]) result.toArray(new String[result.size()]);	    }    /**   * Returns the tip text for this property   *    * @return 		a description suitable for   * 			displaying in the explorer/experimenter gui   */  public String toleranceTipText() {    return "tolerance parameter used for checking stopping criterion b.up < b.low + 2 tol";  }    /**   * returns the current tolerance   *    * @return	the tolerance   */  public double getTolerance() {    return m_fTolerance;  }    /**   * sets the tolerance   *    * @param d	the new tolerance   */  public void setTolerance(double d) {    m_fTolerance = d;  }    /**   * Returns the tip text for this property   *    * @return 		a description suitable for   * 			displaying in the explorer/experimenter gui   */  public String useVariant1TipText() {    return "set true to use variant 1 of the paper, otherwise use variant 2.";  }    /**   * Whether variant 1 is used   *    * @return		true if variant 1 is used   */  public boolean isUseVariant1() {    return m_bUseVariant1;  }    /**   * Sets whether to use variant 1   *    * @param b		if true then variant 1 is used   */  public void setUseVariant1(boolean b) {    m_bUseVariant1 = b;  }    /**    * takeStep method from Shevade et al.s paper.   * parameters correspond to pseudocode from paper.   *    * @param i1   * @param i2   * @param alpha2   * @param alpha2Star   * @param phi2   * @return   * @throws Exception   */  protected int takeStep(int i1, int i2, double alpha2, double alpha2Star, double phi2) throws Exception {    //procedure takeStep(i1, i2)    //    //  if (i1 == i2)     //    return 0     if (i1 == i2) {      return 0;    }    double C1 = m_C * m_data.instance(i1).weight();    double C2 = m_C * m_data.instance(i2).weight();    //  alpha1, alpha1' = Lagrange multipliers for i1     double alpha1 = m_alpha[i1];    double alpha1Star = m_alphaStar[i1];//  double y1 = m_target[i1];    // TODO: verify we do not need to recompute m_error[i1] here    // TODO: since m_error is only updated for indices in m_I0    double phi1 = m_error[i1];//  if ((m_iSet[i1] & I0)==0) {//  phi1 = -SVMOutput(i1) - m_b + m_target[i1];//  m_error[i1] = phi1;//  }    //  k11 = kernel(point[i1], point[i1])     //  k12 = kernel(point[i1], point[i2])     //  k22 = kernel(point[i2], point[i2])     //  eta = -2*k12+k11+k22     //  gamma = alpha1-alpha1'+alpha2-alpha2'    //    double k11 = m_kernel.eval(i1, i1, m_data.instance(i1));    double k12 = m_kernel.eval(i1, i2, m_data.instance(i1));    double k22 = m_kernel.eval(i2, i2, m_data.instance(i2));    double eta = -2 * k12 + k11 + k22;    double gamma = alpha1 - alpha1Star + alpha2 - alpha2Star;//  if (eta < 0) {    // this may happen due to numeric instability    // due to Mercer's condition, this should not happen, hence we give up//  return 0;//  }    //  % We assume that eta > 0. Otherwise one has to repeat the complete     //  % reasoning similarly (i.e. compute objective functions at L and H     //  % and decide which one is largest    //    //  case1 = case2 = case3 = case4 = finished = 0     //  alpha1old = alpha1,     //  alpha1old' = alpha1'     //  alpha2old = alpha2,     //  alpha2old' = alpha2'     //  deltaphi = F1 - F2     //        //  while !finished    //    % This loop is passed at most three times     //    % Case variables needed to avoid attempting small changes twice     //    if (case1 == 0) &&    //       (alpha1 > 0 || (alpha1' == 0 && deltaphi > 0)) &&     //       (alpha2 > 0 || (alpha2' == 0 && deltaphi < 0))    //        compute L, H (w.r.t. alpha1, alpha2)     //        if (L < H)    //          a2 = alpha2 - (deltaphi / eta ) a2 = min(a2, H) a2 = max(L, a2) a1 = alpha1 - (a2 - alpha2)     //          update alpha1, alpha2 if change is larger than some eps     //        else    //          finished = 1     //        endif     //      case1 = 1     //    elseif (case2 == 0) &&    //           (alpha1 > 0 || (alpha1' == 0 && deltaphi > 2*epsilon)) &&     //           (alpha2' > 0 || (alpha2 == 0 && deltaphi > 2*epsilon))    //    //        compute L, H (w.r.t. alpha1, alpha2')     //        if (L < H)    //          a2 = alpha2' + ((deltaphi - 2*epsilon)/eta)) a2 = min(a2, H) a2 = max(L, a2) a1 = alpha1 + (a2-alpha2')     //          update alpha1, alpha2' if change is larger than some eps     //        else    //          finished = 1     //        endif     //        case2 = 1     //    elseif (case3 == 0) &&    //           (alpha1' > 0 || (alpha1 == 0 && deltaphi < -2*epsilon)) &&     //           (alpha2 > 0 || (alpha2' == 0 && deltaphi < -2*epsilon))    //         compute L, H (w.r.t. alpha1', alpha2)     //         if (L < H)    //           a2 = alpha2 - ((deltaphi + 2*epsilon)/eta) a2 = min(a2, H) a2 = max(L, a2) a1 = alpha1' + (a2 - alpha2)     //           update alpha1', alpha2 if change is larger than some eps     //         else    //           finished = 1     //         endif     //         case3 = 1     //    elseif (case4 == 0) &&    //           (alpha1' > 0) || (alpha1 == 0 && deltaphi < 0)) &&     //           (alpha2' > 0) || (alpha2 == 0 && deltaphi > 0))    //         compute L, H (w.r.t. alpha1', alpha2')     //         if (L < H)     //           a2 = alpha2' + deltaphi/eta a2 = min(a2, H) a2 = max(L, a2) a1 = alpha1' - (a2 - alpha2')     //           update alpha1, alpha2' if change is larger than some eps     //         else    //           finished = 1     //         endif     //         case4 = 1     //    else    //      finished = 1     //    endif     //    update deltaphi     //  endwhile         double alpha1old = alpha1;    double alpha1Starold = alpha1Star;    double alpha2old = alpha2;    double alpha2Starold = alpha2Star;    double deltaPhi = phi1 - phi2;        if (findOptimalPointOnLine(i1, alpha1, alpha1Star, C1, i2, alpha2, alpha2Star, C2, gamma, eta, deltaPhi)) {            alpha1 = m_alpha[i1];      alpha1Star = m_alphaStar[i1];      alpha2 = m_alpha[i2];      alpha2Star = m_alphaStar[i2];            //  if changes in alpha('), alpha2(') are larger than some eps      //    Update f-cache[i] for i in I.0 using new Lagrange multipliers       //    Store the changes in alpha, alpha' array       //    Update I.0, I.1, I.2, I.3       //    Compute (i.low, b.low) and (i.up, b.up) by applying the conditions mentioned above, using only i1, i2 and indices in I.0       //    return 1       //  else      //    return 0      //endif endprocedure            //		Update error cache using new Lagrange multipliers       double dAlpha1 = alpha1 - alpha1old - (alpha1Star - alpha1Starold);      double dAlpha2 = alpha2 - alpha2old - (alpha2Star - alpha2Starold);      for (int j = m_I0.getNext(-1); j != -1; j = m_I0.getNext(j)) {	if ((j != i1) && (j != i2)) {	  m_error[j] -= dAlpha1 * m_kernel.eval(i1, j, m_data.instance(i1)) 	  + dAlpha2 * m_kernel.eval(i2, j, m_data.instance(i2));	}      }      m_error[i1] -= dAlpha1 * k11 + dAlpha2 * k12;      m_error[i2] -= dAlpha1 * k12 + dAlpha2 * k22;            updateIndexSetFor(i1, C1);      updateIndexSetFor(i2, C2);            //    Compute (i.low, b.low) and (i.up, b.up) by applying the conditions mentioned above, using only i1, i2 and indices in I.0 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国内成人自拍视频| 美女看a上一区| 日韩欧美激情一区| 色婷婷久久99综合精品jk白丝| 免费成人深夜小野草| 亚洲精品视频在线观看网站| 久久久精品中文字幕麻豆发布| 欧美日韩中文字幕一区| 不卡一二三区首页| 国内精品写真在线观看| 五月婷婷久久综合| 亚洲激情六月丁香| 中文字幕第一区| 精品福利视频一区二区三区| 91麻豆精品久久久久蜜臀| 99re这里都是精品| 高清视频一区二区| 国产乱码字幕精品高清av | 久久99国产精品尤物| 亚洲色图视频免费播放| 久久综合99re88久久爱| 日韩一区二区三区在线观看| 欧美伊人精品成人久久综合97| 97久久人人超碰| 成人av电影在线观看| 懂色av中文字幕一区二区三区| 久久99日本精品| 蜜桃免费网站一区二区三区| 婷婷久久综合九色国产成人| 亚洲影视在线观看| 一区二区三区四区国产精品| 综合久久给合久久狠狠狠97色| 欧美国产精品中文字幕| 中文av字幕一区| 国产精品全国免费观看高清| 亚洲欧美偷拍三级| 欧美国产欧美综合| 国产精品日日摸夜夜摸av| 国产亚洲美州欧州综合国| 精品福利一二区| 国产夜色精品一区二区av| 国产亚洲精品bt天堂精选| 国产日韩v精品一区二区| 国产欧美日韩三级| 国产精品看片你懂得| 日韩一区欧美一区| 亚洲欧美日韩国产手机在线| 亚洲制服丝袜在线| 五月天婷婷综合| 日韩av电影免费观看高清完整版在线观看| 亚洲一区二区三区影院| 五月天一区二区| 另类成人小视频在线| 国产乱对白刺激视频不卡| 国产成人精品影院| 91啪亚洲精品| 欧美嫩在线观看| 精品国产乱子伦一区| 欧美国产日产图区| 亚洲资源中文字幕| 久久97超碰色| 波多野结衣中文字幕一区| 91成人免费在线视频| 欧美久久高跟鞋激| 久久久久久久电影| 亚洲免费观看视频| 日本欧洲一区二区| 国产精品一二三四五| 91在线观看美女| 91麻豆精品国产91久久久| 亚洲精品一区二区三区影院 | 五月天中文字幕一区二区| 麻豆精品在线播放| 不卡一区二区中文字幕| 欧美日本一区二区三区四区| 久久久三级国产网站| 亚洲精品视频观看| 国产综合色在线| 欧美性色欧美a在线播放| 精品国产三级电影在线观看| 亚洲女女做受ⅹxx高潮| 全国精品久久少妇| 91视视频在线观看入口直接观看www | 亚洲美女视频在线| 蜜臀av一级做a爰片久久| 欧美精品丝袜中出| 精品久久久三级丝袜| 亚洲欧美另类小说视频| 久久97超碰国产精品超碰| 色婷婷av一区二区三区软件 | 久久久久久**毛片大全| 亚洲电影激情视频网站| 国产精品综合在线视频| 欧美理论在线播放| 亚洲欧洲日产国码二区| 久久国产麻豆精品| 欧美亚洲动漫制服丝袜| 中日韩av电影| 激情文学综合网| 欧美美女视频在线观看| 日韩理论电影院| 国产高清久久久久| 日韩欧美中文字幕精品| 亚洲自拍偷拍综合| 成人ar影院免费观看视频| 日韩一级黄色片| 亚洲电影视频在线| 91国在线观看| 国产精品区一区二区三区| 国产精品一区二区三区网站| 日韩午夜在线播放| 日韩中文字幕区一区有砖一区| 91视频观看视频| 国产日韩精品久久久| 激情亚洲综合在线| 欧美一区二区三区四区久久| 亚洲国产aⅴ成人精品无吗| 99re视频精品| 国产精品家庭影院| 懂色av中文字幕一区二区三区| 久久综合色婷婷| 精品一区二区三区在线观看国产 | 色综合天天性综合| 国产精品麻豆一区二区| 福利视频网站一区二区三区| 久久久午夜精品| 国产精品一区二区无线| 国产亚洲美州欧州综合国| 国产精品一区二区在线观看不卡| 精品久久国产字幕高潮| 奇米888四色在线精品| 3atv一区二区三区| 日本强好片久久久久久aaa| 制服丝袜一区二区三区| 男女激情视频一区| 日韩一级黄色大片| 国产一区二区三区四| 国产欧美综合在线| 成人看片黄a免费看在线| 国产精品美女久久久久久2018| a级高清视频欧美日韩| 亚洲精品第1页| 欧美日韩国产系列| 成人免费毛片aaaaa**| 国产亚洲精品久| 99re66热这里只有精品3直播| 一区二区三区精品| 欧美男女性生活在线直播观看| 天天av天天翘天天综合网| 5566中文字幕一区二区电影| 久久99蜜桃精品| 亚洲国产成人午夜在线一区| 91视频在线看| 日本麻豆一区二区三区视频| 2024国产精品视频| 97se狠狠狠综合亚洲狠狠| 亚洲午夜精品网| 欧美一二三区在线| 成人手机在线视频| 亚洲国产精品人人做人人爽| 欧美一区国产二区| 国产宾馆实践打屁股91| 亚洲人成伊人成综合网小说| 欧美精品免费视频| 狠狠色丁香久久婷婷综合丁香| 国产精品你懂的在线欣赏| 欧美色男人天堂| 国内精品久久久久影院一蜜桃| 亚洲色图丝袜美腿| 91精品黄色片免费大全| 成人性视频网站| 日韩影院在线观看| 欧美—级在线免费片| 欧美日韩一二三区| 国产成人av自拍| 亚洲福利国产精品| 国产欧美精品区一区二区三区 | 在线日韩一区二区| 美脚の诱脚舐め脚责91 | 精品亚洲免费视频| 亚洲视频在线观看三级| 欧美大片拔萝卜| 色婷婷av一区二区三区软件 | 精品久久久久99| 在线观看国产91| 国产一区二区三区久久久| 亚洲一区在线看| 国产午夜精品久久久久久免费视| 欧美影院一区二区| 成人动漫一区二区在线| 免费在线欧美视频| 亚洲人精品一区| 精品成人免费观看| 欧美乱妇15p| 一道本成人在线| 国产99久久久精品| 久久疯狂做爰流白浆xx| 亚洲影院理伦片| 亚洲色图欧美激情| 国产人妖乱国产精品人妖|