• sklearn learn preprocessing


    train_test_split

    sklearn.model_selection.train_test_split(*arrays,
        test_size(float,int/None),#default:0.25
        train_size(float,int/None),#default:None
        random_state(int/None),#default:None
        shuffle(boolean),#default:true,是否
        stratify(array-like/None)#default:None
        )
    

    stratify:测试集和训练集中的类标签比例同原始的样本中类标签的比例相同,都为2:3

    import numpy as np
    from sklearn.model_selection import train_test_split
    X = np.arange(20)
    y = ['A','A','A','A','A','A','A','A','A','A','B','B','B','B','B','B','B','B','B','B']
    X_train , X_test , y_train,y_test = train_test_split(X,y,test_size=0.2
                                                         ,stratify=y)
    X_test ,y_test
    

    随机算子

    在学习机器学习的过程中,常常遇到random_state这个参数,下面来简单叙述一下它的作用。

    为什么需要用到这样一个参数random_state(随机状态)?

    Ans:构建模型、切分数据集、生成数据集时,其都是一个随机的过程,但每次的随机数不同。如果希望结果可以重现,固定random_state是非常重要的。固定random_state后,每次构建的模型是相同的、生成的数据集是相同的、每次的拆分结果也是相同的。

    import random
    for i in range(10):
        print random.randint(1,100)
    
    #固定随机算子每次运行数据一样,但随机
    #用处是控制每次的随机
    import random
    random.seed(111)
    for i in range(10):
        print random.randint(1,100)
    

    LabelEncoder和OneHotEncoder

    ML的特征类别分为连续型特征离散型特征

    LabelEncoder

    利用LabelEncoder() 将转换成连续的数值型变量。即是对不连续的数字或者文本进行编号

    from sklearn.preprocessing import LabelEncoder
    
    X = df.loc[:,2:].values
    Y = df.loc[:,1].values
    le = LabelEncoder()
    y = le.fit_transform(Y)
    le.classes_#classes_得到几个类别
    le.transform(['M','B'])#transform将数据转化为连续的数值型变量
    

    OneHotEncoder

    离散特征有多少取值,就用多少维来表示该特征

    from sklearn import preprocessing
    enc = preprocessing.OneHotEncoder()
    enc.fit([[0, 0, 3], [1, 1, 0], [0, 2, 1], [1, 0, 2]])    #fit来学习编码
    enc.transform([[0, 1, 3]]).toarray()    #进行编码
    #array([[ 1.,  0.,  0.,  1.,  0.,  0.,  0.,  0.,  1.]])
    

    未完待续。。。。。。

  • 相关阅读:
    【LeetCode】链表 linked list(共34题)
    Construct Binary Tree from Preorder and Inorder Traversal<leetcode>
    Triangle <leetcode>
    Jump Game <leetcode>
    C++学习笔记 <const限定词>
    Search for a Range <leetcode>
    Subsets <leetcode>
    各种排序算法总结
    Unique Paths II <leetcode>
    C++学习笔记 <hash_map> <散列映射>
  • 原文地址:https://www.cnblogs.com/tillnight1996/p/10657779.html
Copyright © 2020-2023  润新知