zoukankan      html  css  js  c++  java
  • sklearn.model_selection

    一、交叉验证

    1.from sklearn.model_selection import train_test_split

    该功能可以快速将数据随机分为训练集和测试集

    #官方示例,使用鸢尾花的数据集
    import numpy as np
    from sklearn.datasets  import load_iris
    from sklearn import svm #支持向量机
    from sklearn.model_selection import train_test_split
    
    x,y=load_iris(return_X_y=True)
    x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.4,random_state=0)
    x_train.shape,y_train.shape
    clf=svm.SVC(kernel='linear',C=1).fit(x_train,y_train)
    clf.score(x_test,y_test)

    2.from sklearn.model_selection import cross_val_score

    交叉验证的方法

    #拟合模型并连续5次计算分数(每次都有不同的分割)
    from sklearn.model_selection import cross_val_score
    clf=svm.SVC(kernel='linear',C=1)
    scores=cross_val_score(clf,x,y,cv=5)
    scores # array([0.96666667, 1.        , 0.96666667, 0.96666667, 1.        ])

    平均得分和得分估计值的95%置信区间由下式给出:

    print("Accuracy: %0.2f (+/- %0.2f)" % (scores.mean(), scores.std() * 2)) #Accuracy: 0.98 (+/- 0.03)

    交叉验证过程:

    即是将数据集分为n份,n-1份为训练集,1份为测试集,这样循环计算n次,最后将n次结果求平均值

    3.from sklearn.model_selection import GridSearchCV 网格搜索

    sklearn.model_selection.GridSearchCV(estimator, param_grid, scoring=None, fit_params=None, n_jobs=1, iid=True, refit=True, cv=None, verbose=0, pre_dispatch=‘2*n_jobs’, error_score=’raise’, return_train_score=’warn’)

    参数:

    1.estimator:可认为是模型

    2.param_grid :指定参数

    属性:

    1.cv_results_:交叉验证结果

    2.best_estimator_:最佳模型

    3.best_score_:最佳模型的分数

    4.best_params_ :最佳参数设置

    5.scorer_:分数

    6.利用最佳模型来进行预测:

    best_model=grid.best_estimator_

    predict_y=best_model.predict(Test_X)

    metrics.f1_score(y, predict_y)

  • 相关阅读:
    2021.5.16 Android聊天功能
    2021.5.15 Android Gestures示例
    2021.5.14 程序员修炼之路:从小工到专家阅读笔记02
    KL 散度和交叉熵
    UBOOT学习
    UCOSII学习
    cortex-M3/M4体系学习
    一步步写RTOS
    38 操作系统-中断处理与特权级转移
    MDK、IAR将变量定义到指定位置
  • 原文地址:https://www.cnblogs.com/cgmcoding/p/13274112.html
Copyright © 2011-2022 走看看