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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? regsmo.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. *//* *    RegSMO.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.Utils;import weka.core.TechnicalInformation;import weka.core.TechnicalInformationHandler;import weka.core.TechnicalInformation.Field;import weka.core.TechnicalInformation.Type;import java.util.Enumeration;import java.util.Vector;/** <!-- globalinfo-start --> * Implementation of SMO for support vector regression as described in :<br/> * <br/> * A.J. Smola, B. Schoelkopf (1998). A tutorial on support vector regression. * <p/> <!-- globalinfo-end --> * <!-- technical-bibtex-start --> * BibTeX: * <pre> * &#64;misc{Smola1998, *    author = {A.J. Smola and B. Schoelkopf}, *    note = {NeuroCOLT2 Technical Report NC2-TR-1998-030}, *    title = {A tutorial on support vector regression}, *    year = {1998} * } * </pre> * <p/> <!-- technical-bibtex-end --> * <!-- options-start --> * Valid options are: <p/> *  * <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 RegSMO   extends RegOptimizer  implements TechnicalInformationHandler {    /** for serialization */  private static final long serialVersionUID = -7504070793279598638L;  /** tolerance parameter, smaller changes on alpha in inner loop will be ignored **/  protected double m_eps = 1.0e-12;    /** Precision constant for updating sets */  protected final static double m_Del = 1e-10; //1000 * Double.MIN_VALUE;    /** error cache containing m_error[i] = SVMOutput(i) - m_target[i] - m_b <br/>   * note, we don't need m_b in the cache, since if we do, we need to maintain    * it when m_b is updated */  double[] m_error;    /** alpha value for first candidate **/    protected double m_alpha1;    /** alpha* value for first candidate **/    protected double m_alpha1Star;  /** alpha value for second candidate **/    protected double m_alpha2;    /** alpha* value for second candidate **/  protected double m_alpha2Star;    /**   * default constructor   */  public RegSMO() {    super();  }    /**   * Returns a string describing classifier   *    * @return 		a description suitable for   * 			displaying in the explorer/experimenter gui   */  public String globalInfo() {    return        "Implementation of SMO for support vector regression as described "      + "in :\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;        result = new TechnicalInformation(Type.MISC);    result.setValue(Field.AUTHOR, "A.J. Smola and B. Schoelkopf");    result.setValue(Field.TITLE, "A tutorial on support vector regression");    result.setValue(Field.NOTE, "NeuroCOLT2 Technical Report NC2-TR-1998-030");    result.setValue(Field.YEAR, "1998");        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 epsilon for round-off error.\n" 	+ "\t(default 1.0e-12)", 	"P", 1, "-P <double>"));        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> -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('P', options);    if (tmpStr.length() != 0) {      setEpsilon(Double.parseDouble(tmpStr));    } else {      setEpsilon(1.0e-12);    }        super.setOptions(options);  }    /**   * Gets the current settings of the classifier.   *   * @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("-P");    result.add("" + getEpsilon());    return (String[]) result.toArray(new String[result.size()]);	    }    /**   * Returns the tip text for this property   *    * @return 		tip text for this property suitable for   * 			displaying in the explorer/experimenter gui   */  public String epsilonTipText() {    return "The epsilon for round-off error (shouldn't be changed).";  }    /**   * Get the value of epsilon.   *    * @return 		Value of epsilon.   */  public double getEpsilon() {    return m_eps;  }    /**   * Set the value of epsilon.   *    * @param v  		Value to assign to epsilon.   */  public void setEpsilon(double v) {    m_eps = v;  }    /** initialize various variables before starting the actual optimizer    *    * @param data 	data set used for learning   * @throws Exception	if something goes wrong   */  protected void init(Instances data) throws Exception {    super.init(data);        //init error cache    m_error = new double[m_nInstances];    for (int i = 0; i < m_nInstances; i++) {      m_error[i] = -m_target[i];    }  }    /**    * wrap up various variables to save memeory and do some housekeeping after optimization   * has finished.   *   * @throws Exception 	if something goes wrong   */  protected void wrapUp() throws Exception {    m_error = null;    super.wrapUp();  }  /**    * Finds optimal point on line constrained by first (i1) and second (i2)    * candidate. Parameters correspond to pseudocode (see technicalinformation)   *    * @param i1   * @param alpha1   * @param alpha1Star   * @param C1   * @param i2   * @param alpha2   * @param alpha2Star   * @param C2   * @param gamma   * @param eta   * @param deltaPhi   * @return   */  protected boolean findOptimalPointOnLine(int i1, double alpha1, double alpha1Star, double C1,       int i2, double alpha2, double alpha2Star, double C2,       double gamma, double eta, double deltaPhi) {    if (eta <= 0) {      // this may happen due to numeric instability      // due to Mercer's condition, this should not happen, hence we give up      return false;    }        boolean case1 = false;    boolean case2 = false;    boolean case3 = false;    boolean case4 = false;    boolean finished = false;        //		while !finished     //		% this loop is passed at most three times     //		% case variables needed to avoid attempting small changes twice     while (!finished) {      //			if (case1 == 0) &&       //				(alpha1 > 0 || (alpha1* == 0 && deltaPhi > 0)) &&       //				(alpha2 > 0 || (alpha2* == 0 && deltaPhi < 0))       //				compute L, H (wrt. 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;             if ((case1 == false) && 	  (alpha1 > 0 || (alpha1Star == 0 && deltaPhi > 0)) && 	  (alpha2 > 0 || (alpha2Star == 0 && deltaPhi < 0))) {	// compute L, H (wrt. alpha1, alpha2) 	double L = Math.max(0, gamma - C1);	double H = Math.min(C2, gamma);	if (L < H) {	  double a2 = alpha2 - deltaPhi / eta;	  a2 = Math.min(a2, H);	  a2 = Math.max(L, a2);	  // To prevent precision problems	  if (a2 > C2 - m_Del * C2) {	    a2 = C2;	  } else if (a2 <= m_Del * C2) {	    a2 = 0;	  }	  double a1 = alpha1 - (a2 - alpha2);	  if (a1 > C1 - m_Del * C1) {	    a1 = C1;	  } else if (a1 <= m_Del * C1) {	    a1 = 0;	  }	  // update alpha1, alpha2 if change is larger than some eps	  if (Math.abs(alpha1 - a1) > m_eps) {	    deltaPhi += eta * (a2 - alpha2);	    alpha1 = a1;	    alpha2 = a2;	  }	} else {	  finished = true;	}	case1 = true;      }            //			elseif (case2 == 0) &&       //				(alpha1 > 0 || (alpha1* == 0 && deltaPhi > 2 epsilon)) &&       //				(alpha2* > 0 || (alpha2 == 0 && deltaPhi > 2 epsilon))       //				compute L, H (wrt. 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;             else if (	  (case2 == false)	  && (alpha1 > 0 || (alpha1Star == 0 && deltaPhi > 2 * m_epsilon))	  && (alpha2Star > 0 || (alpha2 == 0 && deltaPhi > 2 * m_epsilon))) {	// compute L, H (wrt. alpha1, alpha2*) 	double L = Math.max(0, -gamma);	double H = Math.min(C2, -gamma + C1);	if (L < H) {	  double a2 = alpha2Star + (deltaPhi - 2 * m_epsilon) / eta;	  a2 = Math.min(a2, H);	  a2 = Math.max(L, a2);	  // To prevent precision problems	  if (a2 > C2 - m_Del * C2) {	    a2 = C2;	  } else if (a2 <= m_Del * C2) {	    a2 = 0;	  }	  double a1 = alpha1 + (a2 - alpha2Star);	  if (a1 > C1 - m_Del * C1) {	    a1 = C1;	  } else if (a1 <= m_Del * C1) {	    a1 = 0;	  }	  // update alpha1, alpha2* if change is larger than some eps 	  if (Math.abs(alpha1 - a1) > m_eps) {	    deltaPhi += eta * (-a2 + alpha2Star);	    alpha1 = a1;	    alpha2Star = a2;	  }	} else {	  finished = true;	}	case2 = true;      }            //			elseif (case3 == 0) &&       //				(alpha1* > 0 || (alpha1 == 0 && deltaPhi < -2 epsilon)) &&       //				(alpha2 > 0 || (alpha2* == 0 && deltaPhi < -2 epsilon))       //				compute L, H (wrt. 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;             else if (	  (case3 == false)	  && (alpha1Star > 0 || (alpha1 == 0 && deltaPhi < - 2 * m_epsilon))	  && (alpha2 > 0 || (alpha2Star == 0 && deltaPhi < - 2 * m_epsilon))) {	// compute L, H (wrt. alpha1*, alpha2)	double L = Math.max(0, gamma);	double H = Math.min(C2, C1 + gamma);	if (L < H) {	  // note Smola's psuedocode has a minus, where there should be a plus in the following line, Keerthi's is correct

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91久久一区二区| 国产一区激情在线| 日韩中文字幕不卡| 国产精品538一区二区在线| 99久久精品国产麻豆演员表| 日韩三级在线观看| 亚洲欧美日韩在线播放| 国产精品一区二区不卡| 91精品国产综合久久精品图片| 最新日韩在线视频| 国产一区91精品张津瑜| 337p亚洲精品色噜噜| 亚洲国产欧美另类丝袜| 91视频观看视频| 欧美国产精品劲爆| 国产精品一二三在| 久久综合成人精品亚洲另类欧美| 亚洲大片一区二区三区| 成人午夜电影网站| 日韩亚洲欧美高清| 免费国产亚洲视频| 555www色欧美视频| 亚洲成人免费视频| aaa亚洲精品一二三区| 色欧美88888久久久久久影院| 国产精品欧美久久久久无广告| 久久精品国产一区二区| 日韩欧美国产一区二区三区| 日韩影视精彩在线| 欧美性猛片xxxx免费看久爱| 亚洲女同一区二区| 91极品美女在线| 亚洲综合精品久久| 欧美在线不卡视频| 亚洲成人一区在线| 欧美一卡二卡在线观看| 蜜臀久久久久久久| 久久综合九色综合欧美亚洲| 极品少妇一区二区| 国产性天天综合网| 国产91精品露脸国语对白| 久久久精品tv| 96av麻豆蜜桃一区二区| 亚洲自拍偷拍av| 欧美日韩美女一区二区| 蜜臂av日日欢夜夜爽一区| 日韩欧美第一区| 国产91精品在线观看| 亚洲女同女同女同女同女同69| 欧美视频三区在线播放| 日本麻豆一区二区三区视频| 久久这里只有精品首页| 波多野结衣亚洲| 亚洲成人av一区| 欧美电影免费提供在线观看| 国产成人免费高清| 亚洲精品日产精品乱码不卡| 91精品国产品国语在线不卡| 国产麻豆精品久久一二三| 亚洲欧洲三级电影| 欧美久久久影院| 国产精品99久久久久久久vr | 中文字幕佐山爱一区二区免费| 97se亚洲国产综合在线| 免费一级片91| 成人欧美一区二区三区黑人麻豆 | 8v天堂国产在线一区二区| 国内成+人亚洲+欧美+综合在线| 中文字幕成人在线观看| 欧美狂野另类xxxxoooo| 国产成人自拍在线| 天天综合天天做天天综合| 国产午夜精品在线观看| 欧美日韩视频在线第一区| 国产一区二区导航在线播放| 亚洲国产成人av| 国产欧美日韩麻豆91| 在线播放91灌醉迷j高跟美女 | 亚洲男人天堂一区| 日韩精品一区二区三区蜜臀| 在线影院国内精品| 福利一区二区在线| 日本不卡1234视频| 一区二区三区欧美亚洲| 久久青草国产手机看片福利盒子| 欧美视频精品在线| 色综合久久中文综合久久97| 激情六月婷婷综合| 日本欧美在线观看| 一区二区三区四区不卡在线| 亚洲国产高清在线观看视频| 欧美成人精品1314www| 欧美性欧美巨大黑白大战| 99re亚洲国产精品| 国产白丝精品91爽爽久久| 蜜桃一区二区三区四区| 亚洲福利视频一区| 亚洲美女在线一区| 中文字幕久久午夜不卡| 精品久久久久久综合日本欧美| 日本道在线观看一区二区| 成人av中文字幕| 国产剧情在线观看一区二区| 蜜臀久久99精品久久久久宅男| 性欧美大战久久久久久久久| 亚洲日本免费电影| 成人免费在线视频观看| 国产精品久久久久婷婷二区次| 国产亚洲自拍一区| 2023国产一二三区日本精品2022| 日韩欧美一区在线| 日韩色在线观看| 欧美成人一区二区| 精品国产不卡一区二区三区| 欧美大肚乱孕交hd孕妇| 日韩欧美一二三区| 久久久久久日产精品| 精品久久久网站| 国产欧美日本一区二区三区| 欧美国产97人人爽人人喊| 国产精品久久久久久久午夜片| 中文欧美字幕免费| 亚洲天堂成人在线观看| 亚洲在线视频免费观看| 性做久久久久久免费观看| 男人的天堂亚洲一区| 国内久久婷婷综合| 成人久久久精品乱码一区二区三区| 福利91精品一区二区三区| 99久久国产综合精品女不卡| 99久久99久久久精品齐齐| 欧美中文字幕一区二区三区| 3d动漫精品啪啪1区2区免费 | 精品一区二区三区影院在线午夜| 久久99精品视频| 春色校园综合激情亚洲| 欧美在线免费播放| 精品国产一区二区三区忘忧草| 欧美国产精品专区| 一区二区日韩av| 狠狠网亚洲精品| www.日本不卡| 9191成人精品久久| 久久精品视频免费| 亚洲老妇xxxxxx| 久久国产精品色婷婷| 91尤物视频在线观看| 在线播放日韩导航| 国产精品剧情在线亚洲| 亚洲gay无套男同| 国产a视频精品免费观看| 欧美综合天天夜夜久久| 久久精品视频在线看| 亚洲国产综合91精品麻豆| 国产自产高清不卡| 在线精品视频一区二区| 久久免费精品国产久精品久久久久| 日韩美女视频一区二区| 久久精品国产久精国产| 91丨九色porny丨蝌蚪| 欧美精品亚洲二区| 中文字幕中文在线不卡住| 日韩电影在线一区二区| 99国产精品久久久久久久久久久| 91精品国产91综合久久蜜臀| 日韩理论在线观看| 久久99精品久久久| 欧美日韩激情一区二区三区| 欧美国产一区二区| 精品无人码麻豆乱码1区2区| 欧美视频一二三区| 亚洲三级在线观看| 成人久久视频在线观看| 久久亚洲精品国产精品紫薇| 亚州成人在线电影| 在线看国产日韩| 亚洲欧美怡红院| 国产精品一区二区黑丝| 精品国产三级a在线观看| 日韩中文字幕亚洲一区二区va在线| 97精品超碰一区二区三区| 国产欧美日韩一区二区三区在线观看| 另类调教123区| 欧美电影在哪看比较好| 亚洲无人区一区| 欧美在线小视频| 亚洲精品高清在线| 色综合天天综合在线视频| 日本一区二区三区在线观看| 国产自产v一区二区三区c| 精品国产制服丝袜高跟| 麻豆91在线看| 日韩一区和二区| 日本少妇一区二区| 欧美一区二区在线免费观看| 亚洲大片在线观看| 欧美一区2区视频在线观看| 男男gaygay亚洲| 精品精品欲导航| 国产美女精品人人做人人爽|