一、前言
在机器学习中,模型的训练需要花费大量的时间。而每一个算法在训练前都需要配置数量不一的超参数,参数对训练结果的影响相当大。
因此,超参数的优化是一件相当重要,却又费时费力的事。
Hyperopt提供了一个优化接口,这个接口接收一个评估函数和参数空间,能计算出空间内的一个点的损失函数值,简化了调参过程。
二、实战
通过使用感知机判别鸢尾花数据的例子,熟悉一下hyper库的用法。
1、数据读取及标准化
from sklearn import datasets
import numpy as np
from sklearn.cross_validation import train_test_split
from sklearn.metrics import accuracy_score
iris = datasets.load_iris()
X = iris.data
y = iris.target
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0)
from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
sc.fit(X_train)
X_train_std = sc.transform(X_train)
X_test_std = sc.transform(X_test)
上述代码将数据集划分为训练集和测试集,并进行预处理。
2、正常的感知机
from sklearn.linear_model import Perceptron
ppn