• 快速入门Sklearn


    主要确定sklearn的基本流程,然后把sklearn当做螺丝刀来用就行了,需要什么查什么。

    基本流程

    首先我们回顾一下机器学习的基本流程:

    1. 特征工程,包括了数据清洗,数据标准版化,特征选取,特征降维
    2. 选取模型,这里还包括了,超参数确定
    3. 模型验证,利用各种不同指标对模型性能进行检验

    这里有一个利用KNN进行分类的例子。

    from sklearn import neighbors, datasets, preprocessing
    from sklearn.cross_validation import train_test_split
    from sklearn.metrics import accuracy_score
    iris = datasets.load_iris() # 数据集加载
    X, y = iris.data[:, :2], iris.target 
    X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=33) # 训练集测试集切分
    scaler = preprocessing.StandardScaler().fit(X_train) # 数据标准化处理
    X_train = scaler.transform(X_train)
    X_test = scaler.transform(X_test)
    knn = neighbors.KNeighborsClassifier(n_neighbors=5) # 初始化一个空的模型
    knn.fit(X_train, y_train) # 模型训练
    y_pred = knn.predict(X_test) 
    accuracy_score(y_test, y_pred) # 计算准确率
    

    特征工程

    列举了一些数据预处理的用法。详细的特征工程处理请翻阅参考。
    其他用法翻阅速查表。

    归一化:

    from sklearn.preprocessing import StandardScaler
    scaler = StandardScaler().fit(X_train)
    standardized_X = scaler.transform(X_train)
    standardized_X_test = scaler.transform(X_test)
    

    正则化:

    from sklearn.preprocessing import Normalizer
    scaler = Normalizer().fit(X_train)
    normalized_X = scaler.transform(X_train)
    normalized_X_test = scaler.transform(X_test)
    

    模型选择


    模型选择这里有一张速查表可以使用。

    超参数

    对于那些可以学习得到参数我们很好处理,那么那些不能通过学习的到参数的正确选择是非常困难的,也是确定模型最难的一步。
    一种方法是使用超参数搜索:

    import numpy as np
    from sklearn.linear_model import Ridge
    from sklearn.grid_search import GridSearchCV
    # 设定不同超参数值
    alphas = np.array([1,0.1,0.01,0.001,0.0001,0])
    # 设定模型
    model = Ridge()
    grid = GridSearchCV(estimator=model, param_grid=dict(alpha=alphas))
    grid.fit(X, y)
    print(grid)
    # 对超参数进行遍历,查看其表现
    print(grid.best_score_)
    print(grid.best_estimator_.alpha)
    

    评估方法

    对模型的评估基本都在sklearn.metrics包里面。

    准确率:

    # 模型自带
    knn.score(X_test, y_test)
    
    # 导入metrics包
    from sklearn.metrics import accuracy_score
    accuracy_score(y_test, y_pred)
    

    回归的f1等其他值。

    from sklearn.metrics import classification_report
    print(classification_report(y_test, y_pred))
    

    速查表

    参考

    特征工程待完成

  • 相关阅读:
    456. 132 Pattern
    496. Next Greater Element I
    503. Next Greater Element II
    341. Flatten Nested List Iterator
    232. Implement Queue using Stacks
    225. Implement Stack using Queues
    208. Implement Trie (Prefix Tree)
    思考--为何早晨型人更容易成功
    Listary的使用
    【运维】虚拟机如何安装CentOS
  • 原文地址:https://www.cnblogs.com/nevermoes/p/sklearn.html
Copyright © 2020-2023  润新知