python机器学习-sklearn挖掘乳腺癌细胞( 博主亲自录制)
网易云观看地址
模型调参
调参是一门黑箱技术,需要经验丰富的机器学习工程师才能做到。幸运的是sklearn有调参的包,入门级学者也可尝试调参。
如果参数不多,可以手动写函数调参,如果参数太多可以用GridSearchCV调参,如果参数多的占用时间太长,可以用randomSizeCV调参,节约调参时间
GridSearchCV
如果参数太多可以用GridSearchCV调参
(1)单参数调参
(2)多参数调参
因为有n_neighbors和weights两个参数,因此诞生了60个结果
因为有两个参数,所以得到最佳模型:weight=distance,n_neighbor=12
RandomSizeSearchCV
randomSizeCV调参类似于GridSearchCV的抽样
如果参数多的占用时间太长,可以用randomSizeCV调参,节约调参时间。
randomSizeCV调参准确率会略低于GridSearchCV,但可以节约大量时间。
randomSizeCV调参代码
# -*- coding: utf-8 -*-
"""
Created on Sat Jun 16 19:54:25 2018 @author: 231469242@qq.com
"""
from sklearn.grid_search import RandomizedSearchCV
import matplotlib.pyplot as plt
#交叉验证
from sklearn.cross_validation import cross_val_score
from sklearn.datasets import load_breast_cancer
from sklearn.neighbors import KNeighborsClassifier #导入数据
cancer=load_breast_cancer()
x=cancer.data
y=cancer.target #调参knn的邻近指数n
k_range=list(range(1,31))
weight_options=['uniform','distance']
param_dist=dict(n_neighbors=k_range,weights=weight_options) knn=KNeighborsClassifier()
#n_iter为随机生成个数
rand=RandomizedSearchCV(knn,param_dist,cv=10,scoring='accuracy',
n_iter=10,random_state=5) rand.fit(x,y)
rand.grid_scores_
print('best score:',rand.best_score_)
print('best params:',rand.best_params_)
https://study.163.com/provider/400000000398149/index.htm?share=2&shareId=400000000398149( 欢迎关注博主主页,学习python视频资源,还有大量免费python经典文章)
项目合作QQ:231469242