机器学习-------算法(七)

模型的选择与调优:

主要方法:1.交叉验证

                  2.网格搜索

交叉选择和网格搜索的结合是为了能够寻找一个合适的超参数。

交叉验证:

数据分为:训练集与测试集。现在我们撇开测试集,只是对训练集进行操作,将训练集分为训练集与验证集。

网格搜索:

调参数   K-近邻的超参数K值的选择。

通常情况下,有很多参数是需要手动指定的(如k-近邻算法中的K值),

这种叫超参数。但是手动过程繁杂,所以需要对模型预设几种超参数组

合。每组超参数都采用交叉验证来进行评估。最后选出最优参数组合建

立模型。

API:

sklearn.model_selection. GridSearchCV

API解释:

sklearn.model_selection.GridSearchCV ( estimator,  param_grid = None , cv =None )
对估计器的指定参数值进行详尽搜索
 
estimator :估计器对象,也就是需要参数的实例化对象
param_grid :估计器参数 ( dict ){“ n_neighbors ”:[1,3,5]}。需要用字典格式,可提前编辑好!!!
cv :指定几折交叉验证
fit :输入训练数据
score :准确率
结果分析:
best_score _: 在交叉验证中测试的最好结果
best_estimator _ :最好的参数 模型
cv_results _: 每次交叉验证后的测试集准确率结果和训练集 准确率 结果

 

算法:

"""
    # 进行算法流程
    knn = KNeighborsClassifier(n_neighbors=5)
    # fit, predict, ````
    knn.fit(train_x, train_y)
    # 得出预测结果
    y_predict = knn.predict(test_x)
    print("预测结果", y_predict)
    # 预测准确率
    print("准确率:", knn.score(test_x, test_y))
    """
    # K值选择
    dict = {"n_neighbors": [1,2,3,5,10]}
    # 进行算法流程交叉验证和网格搜索进行K值的选择
    knn = KNeighborsClassifier()
    gv = GridSearchCV(knn, param_grid=dict, cv= 10)
    # fit, predict, ````
    gv.fit(train_x, train_y)
    # 得出预测结果
    y_predict = gv.predict(test_x)
    print("预测结果", y_predict)
    # 预测准确率
    print("准确率:", gv.score(test_x, test_y))

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值