zoukankan      html  css  js  c++  java
  • [Python] sklearn

    1、skleran中包的命名规律

    API帮助中每个大标题对应skleran源码文件夹下的一个文件夹(如preprocessing)

    再下一级的是类(如Imputer),定义在文件夹中的py文件里,一般每个py文件中会定义多个类

     

    2、sklearn中的主要对象(类)

    估算器(estimator):能够根据数据集对某些参数进行估算,通过fit()方法实现

    转换器(transformer):依赖通过fit()学习到的参数对数据进行转换,上面的例子中,Imputer既是估算器又是转换器

    预测器(predictor):根据给定数据集进行预测,如LinearRegression,通过predict()方法实现

     

    3、skleran中对象包含的通用方法

    fit():对数据进行初步处理,求均值、方差等(一般用于训练集)

    transform():对数据进行进一步加工,如在SimpleImputer类中是根据每列的均值补上空缺元素(一般用于测试集)

    fit_transform():先fit(),再transform()(一般用于训练集)

    pridict():对数据进行分类、拟合等,得到最后结果

     

    注意通用方法不是多态,只是定义了同样名字的方法而已,不同的方法定义在不同类中,命名空间互不冲突。sklearn这样设计的目的也是方便编程人员记忆

     

    4、sklearn常用包使用说明

    sklearn.datasets

    fetch_mnist:获取MNIST数据集

     

    sklearn.preprocessing

    Imputer:处理缺失数据(最新版的sklearn中此类被命名为SimpleImputer,放到了sklearn.imputer中)

    LabelEncoder:将文本标签转换为数字

    StandardScaler:标准化数据,保证每个维度的数据方差为1,均值为0

    sklearn.model_selection

    StratifiedKFold:分层抽样

    cross_val_score:折叠交叉验证

    sklearn.linear_model

    SGDClassifier:随机梯度下降分类器

     

    sklearn.pipeline

    pipeline

    sklearn.cross_validation

    train_test_split:将数据集打乱并划分为测试集合训练集

    sklearn.metrics

    confusion_matrix:得到真实集和预测集的混淆矩阵

    precison_score:精度

    recall_score:召回

    f1_score:f1值

    roc_curve:roc曲线

    5、代码实例

    例1:

    >>> import numpy as np
    >>> from sklearn.impute import SimpleImputer
    >>> imp = SimpleImputer(missing_values=np.nan, strategy='mean')
    >>> imp.fit([[1, 2], [np.nan, 3], [7, 6]])       
    SimpleImputer(copy=True, fill_value=None, missing_values=nan, strategy='mean', verbose=0)
    >>> X = [[np.nan, 2], [6, np.nan], [7, 6]]
    >>> print(imp.transform(X))           
    [[4.          2.        ]
     [6.          3.666...]
     [7.          6.        ]]

    例2:

    from sklearn.preprocessing import StandardScaler
    data = [[0,0],[0,0],[1,1],[1,1]]
    scaler = StandardScaler()
    print(scaler.fit(data))
    print(scaler.mean_)
    print(scaler.transform(data))
    print(scaler.transform([[2,2]]))

    例3:

    >>> import numpy as np
    >>> from sklearn.linear_model import LinearRegression
    >>> X = np.array([[1, 1], [1, 2], [2, 2], [2, 3]])
    >>> # y = 1 * x_0 + 2 * x_1 + 3
    >>> y = np.dot(X, np.array([1, 2])) + 3
    >>> reg = LinearRegression().fit(X, y)
    >>> reg.score(X, y)
    1.0
    >>> reg.coef_
    array([1., 2.])
    >>> reg.intercept_ 
    3.0000...
    >>> reg.predict(np.array([[3, 5]]))
    array([16.])

     

    6、参考书

    《Scikit-Learn与TensorFlow机器学习实用指南》

    https://www.jianshu.com/p/9efbae6dbf8e

    https://github.com/ageron/handson-ml

    《利用Python进行数据分析》

     

  • 相关阅读:
    随记
    bzoj3551 [ONTAK2010]Peaks加强版
    bzoj2763 [JLOI2011]飞行路线
    bzoj1758 [Wc2010]重建计划
    bzoj1857 [Scoi2010]传送带
    bzoj4519 [Cqoi2016]不同的最小割
    bzoj2229 [Zjoi2011]最小割
    bzoj4129 Haruna’s Breakfast
    bzoj1835 [ZJOI2010] 基站选址
    bzoj2160 拉拉队排练
  • 原文地址:https://www.cnblogs.com/cxc1357/p/10474086.html
Copyright © 2011-2022 走看看