欢迎光临散文网 会员登陆 & 注册

python机器学习-乳腺癌细胞挖掘(四)

2020-07-27 08:20 作者:python_biology  | 我要投稿

 python机器学习-sklearn挖掘乳腺癌细胞( 博主亲自录制):http://dwz.date/bwey

up主录制


模型调参

调参是一门黑箱技术,需要经验丰富的机器学习工程师才能做到。幸运的是sklearn有调参的包,入门级学者也可尝试调参。

如果参数不多,可以手动写函数调参,如果参数太多可以用GridSearchCV调参,如果参数多的占用时间太长,可以用randomSizeCV调参,节约调参时间

GridSearchCV

如果参数太多可以用GridSearchCV调参

(1)单参数调参


(2)多参数调参

因为有n_neighbors和weights两个参数,因此诞生了60个结果

因为有两个参数,所以得到最佳模型:weight=distance,n_neighbor=12

 RandomSizeSearchCV

randomSizeCV调参类似于GridSearchCV的抽样

如果参数多的占用时间太长,可以用randomSizeCV调参,节约调参时间。

randomSizeCV调参准确率会略低于GridSearchCV,但可以节约大量时间。

randomSizeCV是随机调参方法,精确度没有gridsearchcv高,但可以节约大量时间,其调参代码如下:

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

"""

Created on Sat Jun 16 19:54:25 2018

微信公众号:pythonEducation  

@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_)


模型调参知识为大家讲解到这里,欢迎各位同学报名我的python机器学习生物信息学系列课,网址如下:http://dwz.date/b9vw

up主录制


python机器学习-乳腺癌细胞挖掘(四)的评论 (共 条)

分享到微博请遵守国家法律