美文网首页Scikit-Learn机器学习与数据挖掘我爱编程
Python3入门机器学习(四)(补)- sklearn 中使用

Python3入门机器学习(四)(补)- sklearn 中使用

作者: 9c0ddf06559c | 来源:发表于2018-04-15 21:23 被阅读76次

    由于简书不支持目录结构。文章备份了一份在gitbook,结构更清晰,地址:https://book.markgao.me/


    机器学习流程回顾

    回顾

    1.将数据集分成训练数据集合测试数据集
    2.将训练数据集进行归一化
    3.使用训练数据集的均值和方差将测试数据集归一化
    4.使用训练数集训练处模型
    5.使用归一化后的测试数据集测试分类的准确度(accuracy)
    6.使用网格搜索寻找最好的超参数,然后回到1-5

    机器学习总过程

    1

    数据归一化总过程

    2

    1.将数据集分割成测试数据集合训练数据集

    from sklearn.model_selection import train_test_split
    X_train,X_test,y_train,y_test = train_test_split(X,y)
    

    2.将数据集进行归一化处理

    from sklearn.preprocessing import StandardScaler
    standardScaler = StandardScaler()
    # 存放了均值方差归一化所对应的信息
    standardScaler.fit(X_train)
    X_train = standardScaler.transform(X_train)
    X_test = standardScaler.transform(X_test)
    

    3.创建一个KNeighborsClassifier 对象

    from sklearn.neighbors import KNeighborsClassifier
    sklearn_knn_clf = KNeighborsClassifier(n_neighbors=6)
    

    4.使用KNeighborsClassifier 对象进行fit创建出模型

    sklearn_knn_clf.fit(X_train,y_train)
    

    5.使用训练数据集得出分类准确度

    sklearn_knn_clf.score(X_test,y_test)
    

    6.使用我们的模型预测新的数据

    y_predict = sklearn_knn_clf.predict(X_test)
    

    7.探索超参数

    # array<dict<参数名:参数可能的取值>>
    param_grid =[
        {
            'weights':['uniform'],
            'n_neighbors': [i for i in range(1,11)]
        },
        {
            'weights':['distance'],
            'n_neighbors': [i for i in range(1,11)],
            'p': [i for i in range(1,6)]
        }
    ]
    
    # 先new一个默认的Classifier对象
    knn_clf = KNeighborsClassifier()
    
    # 调用GridSearchCV创建网格搜索对象,传入参数为Classifier对象以及参数列表
    from sklearn.model_selection import GridSearchCV
    
    grid_search = GridSearchCV(knn_clf,param_grid)
    
    # 调用fit方法执行网格搜索
    %%time
    grid_search.fit(X_train,y_train)
    
    # 获得最好的评估结果,返回的是KNeighborsClassifier对象,可以直接拿来做机器学习预测了
    grid_search.best_estimator_
    
    # 最好的分数
    grid_search.best_score_
    
    # 最好的参数
    grid_search.best_params_
    

    相关文章

      网友评论

        本文标题:Python3入门机器学习(四)(补)- sklearn 中使用

        本文链接:https://www.haomeiwen.com/subject/ansjkftx.html