python svm超参数_grid search 超参数寻优

http://scikit-learn.org/stable/modules/grid_search.html

1. 超参数寻优方法 gridsearchCV 和  RandomizedSearchCV

2. 参数寻优的技巧进阶

2.1. Specifying an objective metric

By default, parameter search uses the score function of the estimator to evaluate a parameter setting. These are thesklearn.metrics.accuracy_score for classification and sklearn.metrics.r2_score for regression.

2.2 Specifying multiple metrics for evaluation

Multimetric scoring can either be specified as a list of strings of predefined scores names or a dict mapping the scorer name to the scorer function and/or the predefined scorer name(s).

http://scikit-learn.org/stable/modules/model_evaluation.html#multimetric-scoring

2.3 Composite estimators and parameter spaces  。pipeline 方法

http://scikit-learn.org/stable/modules/pipeline.html#pipeline

>>> from sklearn.pipeline import Pipeline

>>> from sklearn.svm import SVC

>>> from sklearn.decomposition import PCA

>>> estimators = [('reduce_dim', PCA()), ('clf', SVC())]

>>> pipe = Pipeline(estimators)

>>> pipe # check pipe

Pipeline(memory=None,

steps=[('reduce_dim', PCA(copy=True,...)),

('clf', SVC(C=1.0,...))])

>>> from sklearn.pipeline import make_pipeline

>>> from sklearn.naive_bayes import MultinomialNB

>>> from sklearn.preprocessing import Binarizer

>>> make_pipeline(Binarizer(), MultinomialNB())

Pipeline(memory=None,

steps=[('binarizer', Binarizer(copy=True, threshold=0.0)),

('multinomialnb', MultinomialNB(alpha=1.0,

class_prior=None,

fit_prior=True))])

>>> pipe.set_params(clf__C=10) # 给clf 设定参数

>>> from sklearn.model_selection import GridSearchCV

>>> param_grid = dict(reduce_dim__n_components=[2, 5, 10],

... clf__C=[0.1, 10, 100])

>>> grid_search = GridSearchCV(pipe, param_grid=param_grid)

#!/usr/bin/env python2

# -*- coding: utf-8 -*-

"""

Created on Tue Sep 5 10:22:07 2017

@author: xinpingbao

"""

import numpy as np

from sklearn import datasets

from sklearn.linear_model import Ridge

from sklearn.model_selection import GridSearchCV

from sklearn.metrics import make_scorer

# load the diabetes datasets

dataset = datasets.load_diabetes()

X = dataset.data

y = dataset.target

# prepare a range of alpha values to test

alphas = np.array([1,0.1,0.01,0.001,0.0001,0])

# create and fit a ridge regression model, testing each alpha

model = Ridge()

grid = GridSearchCV(estimator=model, param_grid=dict(alpha=alphas)) # defaulting: sklearn.metrics.r2_score

# grid = GridSearchCV(estimator=model, param_grid=dict(alpha=alphas), scoring = 'metrics.mean_squared_error') # defaulting: sklearn.metrics.r2_score

grid.fit(X, y)

print(grid)

# summarize the results of the grid search

print(grid.best_score_)

print(grid.best_estimator_.alpha)

############################ 自定义error score函数 ############################

model = Ridge()

alphas = np.array([1,0.1,0.01,0.001,0.0001,0])

param_grid1 = dict(alpha=alphas)

def my_mse_error(real, pred):

w_high = 1.0

w_low = 1.0

weight = w_high * (real - pred < 0.0) + w_low * (real - pred >= 0.0)

mse = (np.sum((real - pred)**2 * weight) / float(len(real)))

return mse

def my_r2_score(y_true, y_pred):

nume = sum((y_true - y_pred) ** 2)

deno= sum((y_true - np.average(y_true, axis=0)) ** 2)

r2_score = 1 - (nume/deno)

return r2_score

error_score1 = make_scorer(my_mse_error, greater_is_better=False) # error less is better.

error_score2 = make_scorer(my_r2_score, greater_is_better=True) # error less is better.

#custom_scoring = {'weighted_MSE' : salesError}

grid_search = GridSearchCV(model, param_grid = param_grid1, scoring= error_score2, n_jobs=-1) #neg_mean_absolute_error

grid_result = grid_search.fit(X,y)

# summarize results

print("Best: %f using %s" % (grid_result.best_score_, grid_result.best_params_)) # learning_rate = 0.1

paper 36 :[教程] 基于GridSearch的svm参数寻优

尊重原创~~~ 转载出处:http://www.matlabsky.com/thread-12411-1-1.html 交叉验证(Cross Validation)方法思想简介http://www.m ...

【深度学习篇】--神经网络中的调优一,超参数调优和Early_Stopping

一.前述 调优对于模型训练速度,准确率方面至关重要,所以本文对神经网络中的调优做一个总结. 二.神经网络超参数调优 1.适当调整隐藏层数对于许多问题,你可以开始只用一个隐藏层,就可以获得不错的结果,比 ...

评价指标的局限性、ROC曲线、余弦距离、A/B测试、模型评估的方法、超参数调优、过拟合与欠拟合

1.评价指标的局限性 问题1 准确性的局限性 准确率是分类问题中最简单也是最直观的评价指标,但存在明显的缺陷.比如,当负样本占99%时,分类器把所有样本都预测为负样本也可以获得99%的准确率.所以,当 ...

Spark2.0机器学习系列之2:基于Pipeline、交叉验证、ParamMap的模型选择和超参数调优

Spark中的CrossValidation Spark中采用是k折交叉验证 (k-fold cross validation).举个例子,例如10折交叉验证(10-fold cross valida ...

网格搜索与K近邻中更多的超参数

目录 网格搜索与K近邻中更多的超参数 一.knn网格搜索超参寻优 二.更多距离的定义 1.向量空间余弦相似度 2.调整余弦相似度 3.皮尔森相关系数 4.杰卡德相似系数 网格搜索与K近邻中更多的超参数 ...

【转载】AutoML--超参数调优之Bayesian Optimization

原文:Auto Machine Learning笔记 - Bayesian Optimization 优化器是机器学习中很重要的一个环节.当确定损失函数时,你需要一个优化器使损失函数的参数能够快速有效 ...

[DeeplearningAI笔记]02_3.1-3.2超参数搜索技巧与对数标尺

Hyperparameter search 超参数搜索 觉得有用的话,欢迎一起讨论相互学习~Follow Me 3.1 调试处理 需要调节的参数 级别一:\(\alpha\)学习率是最重要的需要调节的 ...

Deep Learning.ai学习笔记_第二门课_改善深层神经网络:超参数调试、正则化以及优化

目录 第一周(深度学习的实践层面) 第二周(优化算法) 第三周(超参数调试.Batch正则化和程序框架) 目标: 如何有效运作神经网络,内容涉及超参数调优,如何构建数据,以及如何确保优化算法快速运行, ...

DeepMind提出新型超参数最优化方法:性能超越手动调参和贝叶斯优化

DeepMind提出新型超参数最优化方法:性能超越手动调参和贝叶斯优化 2017年11月29日 06:40:37 机器之心V 阅读数 2183   版权声明:本文为博主原创文章,遵循CC 4.0 BY ...

随机推荐

OpenStack云计算快速入门之二:OpenStack安装与配置

原文:http://blog.chinaunix.net/uid-22414998-id-3265685.html OpenStack云计算----快速入门(2) 该教程基于Ubuntu12.04版, ...

Codeforces Round #136 (Div. 2)

A. Little Elephant and Function 逆推. B. Little Elephant and Numbers \(O(\sqrt n)\)枚举约数. C. Little Ele ...

如何在ios 系统 中抓包??

为了实现在ios系统上抓包,如下步骤: 1,设备越狱 2,在cydia-软件源-设置中改为开发者,否则有些deb搜索不到 安装如下软件:OpenSSH,OpenSSL,wget (下载工具) Apti ...

Android 怎么使用Bitmap+Canvas 自适应屏幕

我们可以使用Matrix 来放缩我们得到的Bitmap 从而使我们的BItmap适应我们的手机屏幕 首先我们得先获取我们的手机屏幕的大小 WindowManager wm = (WindowManag ...

Python基础:数据类型-字符串(7)

1.字符串基本操作 字符串是由字符组成的一串字符序列,字符串是有顺序的,从左到右,索引从0开始,依次递增. Python中字符串类型:str. Python中字符串的三种表示方式: (1)普通字符串: ...

Python代码分行问题

可以用“\”符号把一行过长的Python代码分解成几行,多个语句也可以写在同一行,语句之间要用“;”隔开.

[UE4]name slot一个种应用技巧

如图所示“MouseOver”是一个Child Widget,是一个按钮. “Image_0”跟“MouseOver”是重叠在一起的,这样“Image_0”就会挡住“MouseOver”按钮的事件响应 ...

linux 命令行选项

命令行选项风格 1.原始unix风格     a.命令行选项以连字符'-'开头,后跟单个字符表示选项,选项后面跟着取值,如:mysql -hlocalhost b.选项不带取值的,可以组合在一起,如: ...

Linux 基础教程 31-tcpdump命令-3

经过前面的学习,tcpdump的用法相信应该都掌握了,今天我们来学习对tcpdump输出内容的学习和了解.我们以第一个示例进行讲解如下所示: IP协议包分析 [root@localhost ~ ...

你可能感兴趣的:(python,svm超参数)