方便快速成型的超参数优化工具箱

hyperactive的Python项目详细描述





一个超参数优化工具箱,用于方便快捷的原型制作

img not loaded: try F5 :)img not loaded: try F5 :)img not loaded: try F5 :)img not loaded: try F5 :)img not loaded: try F5 :)





概述


Optimization TechniquesSupported PackagesAdvanced Features
Local Search:Random Methods:Markov Chain Monte Carlo:Population Methods:Sequential Methods:Machine Learning:Deep Learning:Distribution:Position Initialization:Resource Allocation:Weight Initialization:

安装

hyperactive是在python 3中开发和测试的:

pyversionscommit-activitylast-commit


PYPI上提供了超活跃功能:

PyPI versionDownloads

pip install hyperactive

示例

scikit学习:

fromsklearn.datasetsimportload_irisfromhyperactiveimportRandomSearchOptimizeriris_data=load_iris()X=iris_data.datay=iris_data.target# this defines the model and hyperparameter search spacesearch_config={'sklearn.neighbors.KNeighborsClassifier':{'n_neighbors':range(1,100),'weights':["uniform","distance"],'p':[1,2]}}opt=RandomSearchOptimizer(search_config,n_iter=1000,n_jobs=2,cv=3)# search best hyperparameter for given dataopt.fit(X,y)

xgboost:

importnumpyasnpfromsklearn.datasetsimportload_breast_cancerfromhyperactiveimportRandomAnnealingOptimizerbreast_cancer_data=load_breast_cancer()X=breast_cancer_data.datay=breast_cancer_data.target# this defines the model and hyperparameter search spacesearch_config={"xgboost.XGBClassifier":{"n_estimators":range(3,50,1),"max_depth":range(1,21),"learning_rate":[1e-3,1e-2,1e-1,0.5,1.0],"subsample":np.arange(0.1,1.01,0.1),"min_child_weight":range(1,21),"nthread":[1],}}opt=RandomAnnealingOptimizer(search_config,n_iter=100,n_jobs=4,cv=3)# search best hyperparameter for given dataopt.fit(X,y)

lightgbm:

importnumpyasnpfromsklearn.datasetsimportload_breast_cancerfromhyperactiveimportRandomSearchOptimizerbreast_cancer_data=load_breast_cancer()X=breast_cancer_data.datay=breast_cancer_data.target# this defines the model and hyperparameter search spacesearch_config={"lightgbm.LGBMClassifier":{"boosting_type":["gbdt"],"num_leaves":range(2,20),"learning_rate":np.arange(0.01,0.1,0.01),"feature_fraction":np.arange(0.1,0.95,0.1),"bagging_fraction":np.arange(0.1,0.95,0.1),"bagging_freq":range(2,10,1),}}opt=RandomSearchOptimizer(search_config,n_iter=10,n_jobs=4,cv=3)# search best hyperparameter for given dataopt.fit(X,y)

catboost:

importnumpyasnpfromsklearn.datasetsimportload_breast_cancerfromhyperactiveimportRandomSearchOptimizerbreast_cancer_data=load_breast_cancer()X=breast_cancer_data.datay=breast_cancer_data.target# this defines the model and hyperparameter search spacesearch_config={"catboost.CatBoostClassifier":{"iterations":[3],"learning_rate":np.arange(0.01,0.1,0.01),"depth":range(2,20),"verbose":[0],"thread_count":[1],}}opt=RandomSearchOptimizer(search_config,n_iter=10,n_jobs=4,cv=3)# search best hyperparameter for given dataopt.fit(X,y)

keras:

importnumpyasnpfromkeras.datasetsimportmnistfromkeras.utilsimportto_categoricalfromhyperactiveimportRandomSearchOptimizer(X_train,y_train),(X_test,y_test)=mnist.load_data()X_train=X_train.reshape(60000,28,28,1)X_test=X_test.reshape(10000,28,28,1)y_train=to_categorical(y_train)y_test=to_categorical(y_test)# this defines the structure of the model and the search space in each layersearch_config={"keras.compile.0":{"loss":["categorical_crossentropy"],"optimizer":["adam"]},"keras.fit.0":{"epochs":[10],"batch_size":[500],"verbose":[2]},"keras.layers.Conv2D.1":{"filters":[32,64,128],"kernel_size":range(3,4),"activation":["relu"],"input_shape":[(28,28,1)],},"keras.layers.MaxPooling2D.2":{"pool_size":[(2,2)]},"keras.layers.Conv2D.3":{"filters":[16,32,64],"kernel_size":[3],"activation":["relu"],},"keras.layers.MaxPooling2D.4":{"pool_size":[(2,2)]},"keras.layers.Flatten.5":{},"keras.layers.Dense.6":{"units":range(30,200,10),"activation":["softmax"]},"keras.layers.Dropout.7":{"rate":list(np.arange(0.4,0.8,0.1))},"keras.layers.Dense.8":{"units":[10],"activation":["softmax"]},}Optimizer=RandomSearchOptimizer(search_config,n_iter=10)# search best hyperparameter for given dataOptimizer.fit(X_train,y_train)


超活跃API

课程:

HillClimbingOptimizer(search_config,n_iter,metric="accuracy",n_jobs=1,cv=3,verbosity=1,random_state=None,warm_start=False,memory=True,scatter_init=False,eps=1,r=1e-6)StochasticHillClimbingOptimizer(search_config,n_iter,metric="accuracy",n_jobs=1,cv=3,verbosity=1,random_state=None,warm_start=False,memory=True,scatter_init=False)TabuOptimizer(search_config,n_iter,metric="accuracy",n_jobs=1,cv=3,verbosity=1,random_state=None,warm_start=False,memory=True,scatter_init=False,eps=1,tabu_memory=[3,6,9])RandomSearchOptimizer(search_config,n_iter,metric="accuracy",n_jobs=1,cv=3,verbosity=1,random_state=None,warm_start=False,memory=True,scatter_init=False)RandomRestartHillClimbingOptimizer(search_config,n_iter,metric="accuracy",n_jobs=1,cv=3,verbosity=1,random_state=None,warm_start=False,memory=True,scatter_init=False,n_restarts=10)RandomAnnealingOptimizer(search_config,n_iter,metric="accuracy",n_jobs=1,cv=3,verbosity=1,random_state=None,warm_start=False,memory=True,scatter_init=False,eps=100,t_rate=0.98)SimulatedAnnealingOptimizer(search_config,n_iter,metric="accuracy",n_jobs=1,cv=3,verbosity=1,random_state=None,warm_start=False,memory=True,scatter_init=False,eps=1,t_rate=0.98)StochasticTunnelingOptimizer(search_config,n_iter,metric="accuracy",n_jobs=1,cv=3,verbosity=1,random_state=None,warm_start=False,memory=True,scatter_init=False,eps=1,t_rate=0.98,n_neighbours=1,gamma=1)ParallelTemperingOptimizer(search_config,n_iter,metric="accuracy",n_jobs=1,cv=3,verbosity=1,random_state=None,warm_start=False,memory=True,scatter_init=False,eps=1,t_rate=0.98,n_neighbours=1,system_temps=[0.1,0.2,0.01],n_swaps=10)ParticleSwarmOptimizer(search_config,n_iter,metric="accuracy",n_jobs=1,cv=3,verbosity=1,random_state=None,warm_start=False,memory=True,scatter_init=False,n_part=4,w=0.5,c_k=0.5,c_s=0.9)EvolutionStrategyOptimizer(search_config,n_iter,metric="accuracy",n_jobs=1,cv=3,verbosity=1,random_state=None,warm_start=False,memory=True,scatter_init=False,individuals=10,mutation_rate=0.7,crossover_rate=0.3)BayesianOptimizer(search_config,n_iter,metric="accuracy",n_jobs=1,cv=3,verbosity=1,random_state=None,warm_start=False,memory=True,scatter_init=False)

一般位置参数:

ArgumentTypeDescription
search_configdicthyperparameter search space to explore by the optimizer
n_iterintnumber of iterations to perform

一般关键字参数:

ArgumentTypeDefaultDescription
metricstr"accuracy"metric for model evaluation
n_jobsint1number of jobs to run in parallel (-1 for maximum)
cvint3if cv > 1: cross-validation / if cv < 1: train/validation split, where cv-float marks the relative size of the train data
verbosityint1Shows model and metric information
random_stateintNoneThe seed for random number generator
warm_startdictNoneHyperparameter configuration to start from
memoryboolTrueStores explored evaluations in a dictionary to save computing time
scatter_initintFalseChooses better initial position by training on multiple random positions with smaller training dataset (split into int subsets)

特定关键字参数:

Hill Climbing

ArgumentTypeDefaultDescription
epsint1epsilon

Stochastic Hill Climbing

ArgumentTypeDefaultDescription
epsint1epsilon
rfloat1e-6acceptance factor

Tabu Search

ArgumentTypeDefaultDescription
epsint1epsilon
tabu_memorylist[3, 6, 9]length of short/mid/long-term memory

Random Restart Hill Climbing

ArgumentTypeDefaultDescription
epsint1epsilon
n_restartsint10number of restarts

Random Annealing

ArgumentTypeDefaultDescription
epsint100epsilon
t_ratefloat0.98cooling rate

Simulated Annealing

ArgumentTypeDefaultDescription
epsint1epsilon
t_ratefloat0.98cooling rate

Stochastic Tunneling

ArgumentTypeDefaultDescription
epsint1epsilon
t_ratefloat0.98cooling rate
gammafloat1tunneling factor

Parallel Tempering

ArgumentTypeDefaultDescription
epsint1epsilon
t_ratefloat0.98cooling rate
system_tempslist[0.1, 0.2, 0.01]initial temperatures (number of elements defines number of systems)
n_swapsint10number of swaps

Particle Swarm Optimization

ArgumentTypeDefaultDescription
n_partint1number of particles
wfloat0.5intertia factor
c_kfloat0.8cognitive factor
c_sfloat0.9social factor

Evolution Strategy

ArgumentTypeDefaultDescription
individualsint10number of individuals
mutation_ratefloat0.7mutation rate
crossover_ratefloat0.3crossover rate

Bayesian Optimization

ArgumentTypeDefaultDescription
kernelclassMaternKernel used for the gaussian process

一般方法:

fit(self, X_train, y_train)
ArgumentTypeDescription
X_trainarray-liketraining input features
y_trainarray-liketraining target
predict(self, X_test)
ArgumentTypeDescription
X_testarray-liketesting input features
score(self, X_test, y_test)
ArgumentTypeDescription
X_testarray-liketesting input features
y_testarray-liketrue values
export(self, filename)
ArgumentTypeDescription
filenamestrfile name and path for model export

可用指标:

机器学习
ScoresLosses
accuracy_scorebrier_score_loss
balanced_accuracy_scorelog_loss
average_precision_scoremax_error
f1_scoremean_absolute_error
recall_scoremean_squared_error
jaccard_scoremean_squared_log_error
roc_auc_scoremedian_absolute_error
explained_variance_score

深入学习
ScoresLosses
accuracymean_squared_error
binary_accuracymean_absolute_error
categorical_accuracymean_absolute_percentage_error
sparse_categorical_accuracymean_squared_logarithmic_error
top_k_categorical_accuracysquared_hinge
sparse_top_k_categorical_accuracyhinge
categorical_hinge
logcosh
categorical_crossentropy
sparse_categorical_crossentropy
binary_crossentropy
kullback_leibler_divergence
poisson
cosine_proximity

许可证

LICENSE

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java使用split函数分割字符串,但没有得到期望的结果   未找到包含derby数据库嵌入架构的sql Java桌面应用程序错误   java elasticsearch vs solr用于定制全文搜索系统   java Android:创建没有startOffset的动画延迟?   java如何查看其他应用程序接收的数据?   java如何在Linux中使用D和classpath选项运行jar文件   java和域设计最佳实践   具有相同内存位置的java数组,将显示为输出   连接到java中的elasticsearch?   Java Playframework重定向到带有Json负载的外部url   java无法在Android平台上使用InputStream为蓝牙socket创建ObjectInputStream   使用POI将Excel日期转换为Java日期,年份未正确显示   oracle从数据库层还是Java层调用webservice?