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