精华内容
下载资源
问答
  • 在产品经理的职业修行路上,还有很长很远的路要走,希望这段总结能给我也给你带去...“道以明向,以立本,术以立策,道不易,简易,术变易”对于产品经理的职业能力,我想上面的一段话已经可以很明了的给出答案,
  • 网格搜索调参法与交叉验证 网格搜索定义: 网格搜索法是指定参数值的一种穷举搜索方法,通过将估计函数的参数通过交叉验证进行优化来得到最优的学习算法。 步骤: ·将各个参数可能的取值进行排列组合,列出...

    网格搜索调参法与交叉验证

     

    网格搜索定义:

    网格搜索法是指定参数值的一种穷举搜索方法,通过将估计函数的参数通过交叉验证进行优化来得到最优的学习算法。

    步骤:

    · 将各个参数可能的取值进行排列组合,列出所有可能的组合结果生成“网格”。

    · 然后将各组合用于SVM训练,使用交叉验证对表现进行评估

    · 在拟合函数尝试了所有的参数组合后,返回一个合适的分类器,自动调整至最佳(性能度量)参数组合,可以通过clf.best_params_获得参数值

    使用交叉验证对模型评估:

    如果使用K折交叉验证。将原始数据划分为k份,k-1份作为训练集,1份作为测试集。轮流进行k次。

    性能度量:

    可以选择accuracy, f1-score, f-beta, precise, recall等

     

    细节部分,他写的很详细也很仔细:https://blog.csdn.net/xiachong27/article/details/82154825

    展开全文
  • XGboost-网格调参法

    千次阅读 2018-08-23 14:56:16
    用xgboost既可以用来做二分类、多分类,也可以用来做回归预测数值,除了特征之外,影响模型的是如何调了,一般是按一定的步骤、网格搜索最优参数,如下两篇文章一个是用来分类,一个是用来预测数值的案例,并且...

    一、原理

    个人认为写的通俗易懂的一篇好文:
    https://www.jianshu.com/p/7467e616f227

    二、网格调参

    用xgboost既可以用来做二分类、多分类,也可以用来做回归预测数值,除了特征之外,影响模型的是如何调参了,一般是按一定的步骤、网格搜索最优参数,如下两篇文章一个是用来分类,一个是用来预测数值的案例,并且详细给出了调参的步骤和代码:
    https://blog.csdn.net/han_xiaoyang/article/details/52665396 (用来分类XGBClassifier)
    https://segmentfault.com/a/1190000014040317 (用来预测数字,XGBRegressor)

    三、实践

    参考以上的博客,用iris经典数据集进行多分类的预测(三个类别):

    import pandas as pd
    import numpy as np
    import xgboost as xgb
    from xgboost.sklearn import XGBClassifier
    from sklearn import model_selection, metrics   
    from sklearn.grid_search import GridSearchCV   #Perforing grid search
    
    import matplotlib.pylab as plt
    %matplotlib inline
    
    
    import warnings
    warnings.filterwarnings(module='sklearn*', action='ignore', category=DeprecationWarning)
    
    from sklearn import datasets
    data=iris.data
    label=iris.target
    from sklearn.cross_validation import train_test_split
    train_x, test_x, train_y, test_y = train_test_split(data, label,test_size=0.3, random_state=0)
    
    dtrain=xgb.DMatrix(train_x,label=train_y)
    dtest=xgb.DMatrix(test_x,label=test_y)
    cv_params = {'n_estimators': [1,2,3,4,5,6]}
    other_params = {'learning_rate': 0.1, 'n_estimators': 500, 'max_depth': 5, 'min_child_weight': 1, 'seed': 0,
                        'subsample': 0.8, 'colsample_bytree': 0.8, 'gamma': 0, 'reg_alpha': 0, 'reg_lambda': 1}
    model = xgb.XGBClassifier(**other_params)
    optimized_GBM = GridSearchCV(estimator=model, param_grid=cv_params, scoring='accuracy', cv=5, verbose=1, n_jobs=4)
    optimized_GBM.fit(train_x, train_y)
    evalute_result = optimized_GBM.grid_scores_
    #print('每轮迭代运行结果:{0}'.format(evalute_result))
    print('参数的最佳取值:{0}'.format(optimized_GBM.best_params_))
    print('最佳模型得分:{0}'.format(optimized_GBM.best_score_))
    Fitting 5 folds for each of 6 candidates, totalling 30 fits
    参数的最佳取值:{'n_estimators': 4}
    最佳模型得分:0.9619047619047619
    
    
    [Parallel(n_jobs=4)]: Done  30 out of  30 | elapsed:    8.9s finished
    
    cv_params = {'max_depth': [3, 4, 5, 6, 7, 8, 9, 10], 'min_child_weight': [1, 2, 3, 4, 5, 6]}
    other_params = {'learning_rate': 0.1, 'n_estimators': 4, 'max_depth': 5, 'min_child_weight': 1, 'seed': 0,
                        'subsample': 0.8, 'colsample_bytree': 0.8, 'gamma': 0, 'reg_alpha': 0, 'reg_lambda': 1}
    model = xgb.XGBClassifier(**other_params)
    optimized_GBM = GridSearchCV(estimator=model, param_grid=cv_params, scoring='accuracy', cv=5, verbose=1, n_jobs=4)
    optimized_GBM.fit(train_x, train_y)
    evalute_result = optimized_GBM.grid_scores_
    #print('每轮迭代运行结果:{0}'.format(evalute_result))
    print('参数的最佳取值:{0}'.format(optimized_GBM.best_params_))
    print('最佳模型得分:{0}'.format(optimized_GBM.best_score_))
    Fitting 5 folds for each of 48 candidates, totalling 240 fits
    参数的最佳取值:{'max_depth': 4, 'min_child_weight': 1}
    最佳模型得分:0.9619047619047619
    
    
    [Parallel(n_jobs=4)]: Done 240 out of 240 | elapsed:    8.7s finished
    
    cv_params = {'gamma': [0.1, 0.2, 0.3, 0.4, 0.5, 0.6]}
    other_params = {'learning_rate': 0.1, 'n_estimators': 4, 'max_depth': 4, 'min_child_weight': 1, 'seed': 0,
                        'subsample': 0.8, 'colsample_bytree': 0.8, 'gamma': 0, 'reg_alpha': 0, 'reg_lambda': 1}
    model = xgb.XGBClassifier(**other_params)
    optimized_GBM = GridSearchCV(estimator=model, param_grid=cv_params, scoring='accuracy', cv=5, verbose=1, n_jobs=4)
    optimized_GBM.fit(train_x, train_y)
    evalute_result = optimized_GBM.grid_scores_
    #print('每轮迭代运行结果:{0}'.format(evalute_result))
    print('参数的最佳取值:{0}'.format(optimized_GBM.best_params_))
    print('最佳模型得分:{0}'.format(optimized_GBM.best_score_))
    Fitting 5 folds for each of 6 candidates, totalling 30 fits
    参数的最佳取值:{'gamma': 0.1}
    最佳模型得分:0.9619047619047619
    
    
    [Parallel(n_jobs=4)]: Done  30 out of  30 | elapsed:    8.6s finished
    
    cv_params = {'subsample': [0.6, 0.7, 0.8, 0.9], 'colsample_bytree': [0.6, 0.7, 0.8, 0.9]}
    other_params = {'learning_rate': 0.1, 'n_estimators':4, 'max_depth': 4, 'min_child_weight':1, 'seed': 0,
                        'subsample': 0.8, 'colsample_bytree': 0.8, 'gamma': 0.1, 'reg_alpha': 0, 'reg_lambda': 1}
    model = xgb.XGBClassifier(**other_params)
    optimized_GBM = GridSearchCV(estimator=model, param_grid=cv_params, scoring='accuracy', cv=5, verbose=1, n_jobs=4)
    optimized_GBM.fit(train_x, train_y)
    evalute_result = optimized_GBM.grid_scores_
    #print('每轮迭代运行结果:{0}'.format(evalute_result))
    print('参数的最佳取值:{0}'.format(optimized_GBM.best_params_))
    print('最佳模型得分:{0}'.format(optimized_GBM.best_score_))
    Fitting 5 folds for each of 16 candidates, totalling 80 fits
    参数的最佳取值:{'colsample_bytree': 0.8, 'subsample': 0.8}
    最佳模型得分:0.9619047619047619
    
    
    [Parallel(n_jobs=4)]: Done  80 out of  80 | elapsed:    9.5s finished
    
    cv_params = {'reg_alpha': [0.05, 0.1, 1, 2, 3], 'reg_lambda': [0.05, 0.1, 1, 2, 3]}
    other_params = {'learning_rate': 0.1, 'n_estimators': 4, 'max_depth': 4, 'min_child_weight': 1, 'seed': 0,
                        'subsample': 0.8, 'colsample_bytree': 0.8, 'gamma': 0.1, 'reg_alpha': 0, 'reg_lambda': 1}
    model = xgb.XGBClassifier(**other_params)
    optimized_GBM = GridSearchCV(estimator=model, param_grid=cv_params, scoring='accuracy', cv=5, verbose=1, n_jobs=4)
    optimized_GBM.fit(train_x, train_y)
    evalute_result = optimized_GBM.grid_scores_
    #print('每轮迭代运行结果:{0}'.format(evalute_result))
    print('参数的最佳取值:{0}'.format(optimized_GBM.best_params_))
    print('最佳模型得分:{0}'.format(optimized_GBM.best_score_))
    Fitting 5 folds for each of 25 candidates, totalling 125 fits
    参数的最佳取值:{'reg_alpha': 0.05, 'reg_lambda': 0.05}
    最佳模型得分:0.9619047619047619
    
    
    [Parallel(n_jobs=4)]: Done 125 out of 125 | elapsed:    8.6s finished
    
    cv_params = {'learning_rate': [0.01, 0.05, 0.07, 0.1, 0.2]}
    other_params = {'learning_rate': 0.1, 'n_estimators': 4, 'max_depth': 4, 'min_child_weight': 1, 'seed': 0,
                        'subsample': 0.8, 'colsample_bytree': 0.8, 'gamma': 0.1, 'reg_alpha': 0.05, 'reg_lambda': 0.05}
    model = xgb.XGBClassifier(**other_params)
    optimized_GBM = GridSearchCV(estimator=model, param_grid=cv_params, scoring='accuracy', cv=5, verbose=1, n_jobs=4)
    optimized_GBM.fit(train_x, train_y)
    evalute_result = optimized_GBM.grid_scores_
    #print('每轮迭代运行结果:{0}'.format(evalute_result))
    print('参数的最佳取值:{0}'.format(optimized_GBM.best_params_))
    print('最佳模型得分:{0}'.format(optimized_GBM.best_score_))
    Fitting 5 folds for each of 5 candidates, totalling 25 fits
    参数的最佳取值:{'learning_rate': 0.1}
    最佳模型得分:0.9619047619047619
    
    
    [Parallel(n_jobs=4)]: Done  25 out of  25 | elapsed:    8.7s finished
    
    
    
    params={
            'booster':'gbtree',
            'objective': 'multi:softmax', #指明是分类问题
           # 'eval_metric': 'auc',
            'num_class':3, # 类数,与 multisoftmax 并用
            'gamma':0.1,  # 用于控制是否后剪枝的参数,越大越保守,一般0.1、0.2这样子。
            'max_depth':4, # 构建树的深度,越大越容易过拟合
            'lambda':0.05,  #控制模型复杂度的权重值的L2正则化项参数,参数越大,模型越不容易过拟合。
            'subsample':0.8, # 采样训练数据,设置为0.5,随机选择一般的数据实例 (0:1]
            'colsample_bytree':0.8, # 构建树树时的采样比率 (0:1]
            'min_child_weight':1, # 节点的最少特征数
            'silent':1 ,# 设置成1则没有运行信息输出,最好是设置为0.
            'eta': 0.1, # 如同学习率
            'seed':710,
            'alpha':0.05,
            'nthread':4,# cpu 线程数,根据自己U的个数适当调整
    }
    plst = list(params.items())
    num_rounds=100
    watchlist = [(dtrain,'train'),(dtest,'eval')]
    model=xgb.train(plst,dtrain,num_rounds,evals=watchlist)
    [0] train-merror:0.038095   eval-merror:0.088889
    [1] train-merror:0.019048   eval-merror:0.022222
    [2] train-merror:0.028571   eval-merror:0.022222
    [3] train-merror:0.019048   eval-merror:0.022222
    [4] train-merror:0.019048   eval-merror:0.022222
    [5] train-merror:0.019048   eval-merror:0.022222
    [6] train-merror:0.019048   eval-merror:0.022222
    [7] train-merror:0.019048   eval-merror:0.022222
    [8] train-merror:0.019048   eval-merror:0.022222
    [9] train-merror:0.019048   eval-merror:0.022222
    [10]    train-merror:0.019048   eval-merror:0.022222
    [11]    train-merror:0.019048   eval-merror:0.022222
    [12]    train-merror:0.019048   eval-merror:0.022222
    [13]    train-merror:0.019048   eval-merror:0.022222
    [14]    train-merror:0.019048   eval-merror:0.022222
    [15]    train-merror:0.019048   eval-merror:0.022222
    [16]    train-merror:0.019048   eval-merror:0.022222
    [17]    train-merror:0.019048   eval-merror:0.022222
    [18]    train-merror:0.019048   eval-merror:0.022222
    [19]    train-merror:0.009524   eval-merror:0.022222
    [20]    train-merror:0.019048   eval-merror:0.022222
    [21]    train-merror:0.009524   eval-merror:0.022222
    [22]    train-merror:0.009524   eval-merror:0.022222
    [23]    train-merror:0  eval-merror:0.022222
    [24]    train-merror:0  eval-merror:0.022222
    [25]    train-merror:0  eval-merror:0.022222
    [26]    train-merror:0.009524   eval-merror:0.022222
    [27]    train-merror:0  eval-merror:0.022222
    [28]    train-merror:0.009524   eval-merror:0.022222
    [29]    train-merror:0  eval-merror:0.022222
    [30]    train-merror:0  eval-merror:0.022222
    [31]    train-merror:0  eval-merror:0.022222
    [32]    train-merror:0  eval-merror:0.022222
    [33]    train-merror:0  eval-merror:0.022222
    [34]    train-merror:0  eval-merror:0.022222
    [35]    train-merror:0  eval-merror:0.022222
    [36]    train-merror:0  eval-merror:0.022222
    [37]    train-merror:0  eval-merror:0.022222
    [38]    train-merror:0  eval-merror:0.022222
    [39]    train-merror:0  eval-merror:0.022222
    [40]    train-merror:0  eval-merror:0.022222
    [41]    train-merror:0  eval-merror:0.022222
    [42]    train-merror:0  eval-merror:0.022222
    [43]    train-merror:0  eval-merror:0.022222
    [44]    train-merror:0  eval-merror:0.022222
    [45]    train-merror:0  eval-merror:0.022222
    [46]    train-merror:0  eval-merror:0.022222
    [47]    train-merror:0  eval-merror:0.022222
    [48]    train-merror:0  eval-merror:0.022222
    [49]    train-merror:0  eval-merror:0.022222
    [50]    train-merror:0  eval-merror:0.022222
    [51]    train-merror:0  eval-merror:0.022222
    [52]    train-merror:0  eval-merror:0.022222
    [53]    train-merror:0  eval-merror:0.022222
    [54]    train-merror:0  eval-merror:0.022222
    [55]    train-merror:0  eval-merror:0.022222
    [56]    train-merror:0  eval-merror:0.022222
    [57]    train-merror:0  eval-merror:0.022222
    [58]    train-merror:0  eval-merror:0.022222
    [59]    train-merror:0  eval-merror:0.022222
    [60]    train-merror:0  eval-merror:0.022222
    [61]    train-merror:0  eval-merror:0.022222
    [62]    train-merror:0  eval-merror:0.022222
    [63]    train-merror:0  eval-merror:0.022222
    [64]    train-merror:0  eval-merror:0.022222
    [65]    train-merror:0  eval-merror:0.022222
    [66]    train-merror:0  eval-merror:0.022222
    [67]    train-merror:0  eval-merror:0.022222
    [68]    train-merror:0  eval-merror:0.022222
    [69]    train-merror:0  eval-merror:0.022222
    [70]    train-merror:0  eval-merror:0.022222
    [71]    train-merror:0  eval-merror:0.022222
    [72]    train-merror:0  eval-merror:0.022222
    [73]    train-merror:0  eval-merror:0.022222
    [74]    train-merror:0  eval-merror:0.022222
    [75]    train-merror:0  eval-merror:0.022222
    [76]    train-merror:0  eval-merror:0.022222
    [77]    train-merror:0  eval-merror:0.022222
    [78]    train-merror:0  eval-merror:0.022222
    [79]    train-merror:0  eval-merror:0.022222
    [80]    train-merror:0  eval-merror:0.022222
    [81]    train-merror:0  eval-merror:0.022222
    [82]    train-merror:0  eval-merror:0.022222
    [83]    train-merror:0  eval-merror:0.022222
    [84]    train-merror:0  eval-merror:0.022222
    [85]    train-merror:0  eval-merror:0.022222
    [86]    train-merror:0  eval-merror:0.022222
    [87]    train-merror:0  eval-merror:0.022222
    [88]    train-merror:0  eval-merror:0.022222
    [89]    train-merror:0  eval-merror:0.022222
    [90]    train-merror:0  eval-merror:0.022222
    [91]    train-merror:0  eval-merror:0.022222
    [92]    train-merror:0  eval-merror:0.022222
    [93]    train-merror:0  eval-merror:0.022222
    [94]    train-merror:0  eval-merror:0.022222
    [95]    train-merror:0  eval-merror:0.022222
    [96]    train-merror:0  eval-merror:0.022222
    [97]    train-merror:0  eval-merror:0.022222
    [98]    train-merror:0  eval-merror:0.022222
    [99]    train-merror:0  eval-merror:0.022222
    
    ypred=model.predict(dtest)
    #计算准确率
    cnt1=0
    cnt2=0
    for i in range(len(test_y)):
        if ypred[i]==test_y[i]:
            cnt1+=1
        else:
            cnt2+=1
    print ('准确率:%.2f %%' % (100*cnt1/(cnt1+cnt2))) //用自定义的方式来计算准确率
    print(metrics.accuracy_score(test_y, ypred)) //直接用已定义的函数来计算
    准确率:97.78 %
    0.9777777777777777
    

    以上是通过网格参数取得了最佳参数后,代入xgb.train()得出的结果,和用XGBClassifier其实是一样的,只不过两者的参数命名略有不同:

    xgb1 = XGBClassifier(
         learning_rate=0.1, 
         n_estimators=4, 
         max_depth=4,
         min_child_weight=1,
         seed=0,
         subsample=0.8, 
         colsample_bytree=0.8, 
         gamma=0.1, 
         reg_alpha=0.05, 
         reg_lambda=0.05)
    xgb1.fit(train_x,train_y)
    ypred1=xgb1.predict(test_x)
    print(metrics.accuracy_score(test_y, ypred1))
    0.9777777777777777
    
    展开全文
  • 法师 延法师,字明超,号糊涂山人。当代著名书画僧,政协委员。曾著书《苦心菩提》、《问心集》、《水月集》、《念佛集》,2012年新书《宽怀人生》广获好评。多年来,他的书画收入多用于资助失学儿童和特困...
    延参法师

    延参法师,字明超,号糊涂山人。当代著名书画僧,政协委员。曾著书《苦心菩提》、《问心集》、《水月集》、《念佛集》,2012年新书《宽怀人生》广获好评。多年来,他的书画收入多用于资助失学儿童和特困学生以及社会慈善公益事,曾为免费午餐计划捐款。

    中文名:延参法师
    别名:糊涂山人
    国籍:中国
    职业:河北省佛教协会副会长
    信仰:佛教
    代表作品:《宽怀人生》

    人物经历

      一九八八年剃度出家,得法于佛教天台宗正宗第四十六代传人,正宗临济禅宗传人。座下弟子200多人,遍布全国各地,为推动佛教事业的发展壮大,作出了很大贡献。
      延参法师是河北省沧州市佛教协会会长,河北省佛教协会常务理事、副会长,沧州市水月寺住持。邯郸市蟠龙寺住持,景州开福寺名誉方丈,天津南开画院名誉院长,当代著名书画僧、政协委员。 [1]
       [2]1996年2月来到了石家庄正定临济寺,被方丈聘为临济寺的堂主。
      1997年7月恰逢香港回归,为了纪念这一历史性的时刻,成功举办迎接香港回归庆典书画展。受到有关领导和大众的喜爱,1997年受景县有关领导和信众的邀请,开始复建景州开福寺;1998年5月,被聘为天津南开画院名誉院长。
      1998年,因为南方遭遇50年一遇的罕见水灾,延参法师和其他书画家急国家之所难,积极投入抗洪救灾,领导书画家举办书画义展,筹措救灾款项。从此,便开始了在全国各地市举办书画展,普及书画教学,弘扬传统文化的工作。
      1998年8月,去看望营口楞严寺方丈圆山上人,为天台宗46代传人。
      1998年创办沧州市水月寺;
      2001年至今,积极投入创办河南佛学院工作,为弘扬佛教文化艺术,培养佛教文化艺术人才投入紧张而有序的工作。
      2002年3月,当选沧州市运河区政协六届委员。
      2003年,非典时期,发动群众积极投入抗击非典的活动。
      2003年4月,当选河北省佛教协会常务理事。
      2004年10月,成立沧州市佛教协会,当选为沧州市佛教协会会长。
      2005年7月,创办佛教文化网络,积极宣传宗教政策,弘扬传统文化,弘扬社会和谐,努力促进社会的不断稳定和发展。
      2007年3月,当选沧州市运河区政协七届委员。
      2008年1月,积极投入中国南方冰雪灾害的慈善救助。

      2008年3月,当选沧州市政协九届委员。

    爆红事件

      近日因其赞美“绳命”斗妖猴恶犬系列更使其迅速走红。延参法师日前走进峨眉山讲解佛法,更谈及“绳命”的美好,一口河北沧州话与王宝强有得一拼,逗乐网友,“奏过丰裕,额们共同祝福人绳~~绳命里,也是油许多的贫饭”。

      不过更加有趣的是法师在卖萌用地方口音赞美“绳命”的同时,总时不时的有小动物来侵犯调戏。首先是猴子趁法师认真讲解之际,并不停的撕扯法师的衣服,甚至爬到其身上骑到他的肩膀上,不停的捣乱。延参法师笑道:“上一回电视多不容易啊,还来搅我的局,你认错人了,我不是唐僧,自从大唐取完经,你不是已经回花果山了吗,你想你师父,可以去大唐啊……”

      随后延参法师的第二个视频中同样是“赞美绳命”,但是此次调戏他是一只狗,总在法师讲解之际不停的巡逻摇晃。[3]

    亮相《80后脱口秀》

    近日,视频主人公延参法师带着他的爱徒们,参与了东方卫视《今晚,80后脱口秀》的节目录制,在节目现场,他和王自健一搭一档频频语出惊人,笑翻全场。延参法师现场延参法师也留下墨宝赠予王自健,“代表他的一生,祝福他的未来。”然而,所写的字却让全场忍俊不禁,是个简简单单的“二”。法师解释道,“家庭时一条线,工作是一条线,所以谁都摆脱不了这个‘二’字。”关于有网友质疑其有炒作之嫌,宽容为怀的延参法师这样解释道,“这段视频是三年前所拍的,我想也不会有人能预料到三年之后会火吧?”同时,法师对自己的“红”也相当自信,“我本来就很红,如果有一天发现延参不红了,那就是我圆寂了。”

    做客《天天向上》

    延参法师受邀做客《天天向上》,爱卖萌的延参法师提前做了不少功课。对于天天兄弟常在节目中模仿自己的走红视频,延参法师也忍不住调侃,“有人跟我说湖南卫视的带头大哥在模仿我,我心想这个后果很严重啊。”[5]

    展开全文
  • [Java基础]-- 有构造方法和无构造方法

    万次阅读 多人点赞 2016-03-03 15:06:44
    java构造方法:有构造方法和无构造方法   一、无构造方法 1、定义: 如果编写一个javaBean时没有添加无构造方法,那么编译器会自动添加无构造方法; 但是如果编写时添加了有构造方法而未添加无...

    java构造方法:有参构造方法和无参构造方法

     

    一、无参构造方法

    1、定义:

    如果编写一个javaBean时没有添加无参构造方法,那么编译器会自动添加无参构造方法;

    但是如果编写时添加了有参构造方法而未添加无参构造方法,那么编译器只认有参构造方法而不会默认添加无参构造方法!

    所以,如果需要使用无参构造方法,一定要在类里面添加

     

    2、举例:

    (1)有4个javaBean --------> NoParamInfo.java、 NoParamInfo2.java NoParamInfo3.java NoParamInfo4.java

    public void NoParamInfo{

    private String name;

    private String adrress;

    }

     

    public void NoParamInfo2{

    private String name;

    private String adrress;

    public NoParamInfo(){} //无参构造方法

    }

     

    public void NoParamInfo3{

    private String name;

    private String adrress;

    //有参构造方法

    public NoParamInfo(String name,String address){

    this.name=name;

    this.address=address;

    }

    }

     

    public void NoParamInfo4{

     

    private String name;

    private String adrress;

    public NoParamInfo(){} //无参构造方法

    //有参构造方法

    public NoParamInfo(String name,String address){

    this.name=name;

    this.address=address;

    }

    }

    (2)测试

    @Test

    public void testNoParamInfo(){

    //这样写,编译器不会报错

    NoParamInfo  np=new NoParamInfo();

    //这样写,编译器也不会报错

    NoParamInfo2  np=new NoParamInfo2();

    //这样写,编译器会报错,原因是无参构造方法被有参构造方法覆盖,编译器不能提供无参构造方法

    NoParamInfo3  np=new NoParamInfo3();

    //这样写,编译器不会报错

    NoParamInfo4  np=new NoParamInfo4();

    //这样写,编译器不会报错

    NoParamInfo4  np=new NoParamInfo4(“tina”,'地球村');

    }

    二、有参构造方法

    顾名思义就是在无参构造方法里面添加了一定的形式参数

     

     

     

    展开全文
  • 顺序是我们在实践中要认真考虑的,应首先调对结果影响最大的参数,比如max_depth and num_samples_split。 调整boosting参数 先调整学习率、树的数目。   随着学习率降低,树数目增加,测试...
  • 基于两点的前视摄像头快速外标定算法
  • 常用的参数方程消方法

    千次阅读 2018-09-20 20:54:00
    消参的常用方法有:代入消参法,加减消参法,乘除消参法,平方消参法。 二、方法例说 ㊀代入消参法 如直线\(\left\{\begin{array}{l}{x=1+t①}\\{y=2-t②}\end{array}\right.(t为参数)\), 将\(t=x-1\)代入②,得到\...
  • 构造和无构造 为什么需要构造方法? 1.通过一个一个初始化成员变量非常麻烦 Java设计了构造方法 构造方法的格式: [访问权限修饰符] 方法名(参数列表) { 方法体; 帮助我们快速初始化成员 // return; ...
  • 为提高概率积分法对采动地表下沉值的预计精度,将...结合淮北某矿区的观测站资料,编写基于赫尔默特方差估计法的求参程序,与最小二乘法拟合求参法相比,监测点的下沉值预计中误差降低了21.4%,该方法能提高预计下沉值精度。
  • 贝叶斯调原理总结

    千次阅读 2020-04-01 17:07:24
    其中网格搜索是最常用的调方法,网格搜索使用穷举,穷举参数组合然后进行建模找到最佳参数,然而此方法有一个缺点----十分耗时. 贝叶斯调,在kaggle和天池的比赛中看到使用这种方法.据说贝叶斯调耗时少,而且结果...
  • C#定义并调用带方法

    千次阅读 2019-05-31 10:01:17
    Child.cs using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace LeiheDuixiang { /// <summary> /// 调用的时候实参的值会赋值给形参 .../sum...
  • 为了解决磁性样品不能用电镜进行能谱分析,给金相图片物相标定带来的困难,本文介绍了一种基于 RIR值(比 强度)的 XRD(X射线粉末衍射)半定量分析方法。利用 RIR值半定量相分析方法,对化学计量比为 Co79Gd14V7的磁性...
  • 变量积分

    千次阅读 2020-09-09 22:21:56
    罗巴切夫斯基积分p66
  • PID参数理解及调方法(附典型PID算法程序)

    万次阅读 多人点赞 2019-04-05 22:51:36
    PID参数的意义 Kp是加快系统响应速度,提高系统的调节精度; Ki用于消除稳态误差; Kd改善系统的稳态性能 调PID步骤 ...确定比例系数Kp 时,首先去掉PID 的积分项和微分项,可以令Ti=0、Td=0,使之成为 ...
  • 作者主页(文火冰糖的硅基工坊):https://blog.csdn.net/HiWangWenBing 本文网址: 目录 第1章 一元非线性函数 1.1 什么是函数的元 1.2什么是非线性函数 1.3非线性函数案例 1.4非线性函数的几何图形示意...3.3...
  • 采用CTAB沉淀提取海参的DNA,PCR扩增线粒体COI基因并测序,利用Primer premier 5.0 软件设计并筛选了仿刺参(A postichopus japonicus)、北大西洋瓜(Cucumaria frondosa)、加州红参(Parastichopus californicus)...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 78,958
精华内容 31,583
关键字:

参法