美文网首页Python语言
python机器学习从入门到精通(第1天)

python机器学习从入门到精通(第1天)

作者: 晓满未满 | 来源:发表于2018-08-06 09:41 被阅读33次

    今天开始100天的machine learning精通专栏了,搬砖搬砖,大家也可以去作者的https://github.com/Avik-Jain/100-Days-Of-ML-Code上看英文原版哈,我会整理,并且会介绍算法原理。

    开始学习了!第一天是关于数据处理工作。
    机器学习中的数据处理实践流程主要如下:

    第一步:python库导入。
    Numpy:数组处理
    Pandas:数据框,序列数据处理

    import numpy as np
    import pandas as pd
    

    第二步:数据集导入。
    数据集格式常包括:csv、txt等。
    pandas中的read_csv,read_table方法读取并将其作为dataframe处理。
    随后,我们可以将 dataframe 中的矩阵、向量和标量分离开来单独处理。

    dataset = pd.read_csv('Data.csv')
    X = dataset.iloc[ : , :-1].values
    Y = dataset.iloc[ : , 3].values
    

    第三步:缺失数据处理。
    数据通常会因为一些原因而缺失,处理缺失数据有很多方法,比如直接剔除,对整列数据进行平均化或中值化来填补缺失数据,通过分布拟合,还可以通过构造模型填充。

    对整列数据进醒平均化或中值化通过 sklearn.preprocessing 中的 Imputer 类方法来解决这个问题。

    from sklearn.preprocessing import Imputer
    imputer = Imputer(missing_values = "NaN", strategy = "mean", axis = 0)
    imputer = imputer.fit(X[ : , 1:3])
    X[ : , 1:3] = imputer.transform(X[ : , 1:3])
    

    第四步:编码类数据。
    类数据是一个包含标签值的变量,通常它们被限制在一个固定的集合中。例如,‘Yes’ 或 ‘No’ 是无法用于模型中的数学表达式,因此我们需要对这些类数据进行编码,将其转化为数值。

    编码方法中比较常用的是onehot编码,One-Hot编码是分类变量作为二进制向量的表示。这首先要求将分类值映射到整数值。然后,每个整数值被表示为二进制向量,除了整数的索引之外,它都是零值,它被标记为1。

    sklearn.preprocessing 中的 LabelEncoder 类方法来解决这个问题。

    from sklearn.preprocessing import LabelEncoder, OneHotEncoder
    labelencoder_X = LabelEncoder()
    X[ : , 0] = labelencoder_X.fit_transform(X[ : , 0])
    
    onehotencoder = OneHotEncoder(categorical_features = [0])
    X = onehotencoder.fit_transform(X).toarray()
    labelencoder_Y = LabelEncoder()
    Y =  labelencoder_Y.fit_transform(Y)
    

    第五步:数据集分割,训练集和测试集。
    在机器学习中,我们通常需要对源数据集进行处理,以便分离出训练集和测试集,分别用于模型的训练和测试。通常所使用的分离比为7:3或8:2。

    sklearn.crossvalidation 库的 train_test_split() 方法来解决这个问题。

    from sklearn.cross_validation import train_test_split
    X_train, X_test, Y_train, Y_test = train_test_split( X , Y , test_size = 0.2, random_state = 0)
    

    第六步:特征缩放(标准化)。
    绝大多数机器学习算法会采用欧式距离,来衡量两个数据点特征变化情况。
    这就会产生一个问题:相比于低量级的特征,高量级的特征会在距离计算中占更大的权重。对于数据的量级处理是在做算法之前经常需要做的工作。

    导入 sklearn.preprocessing 库的 StandardScalar 方法引入特征标准化或 Z 分数正则化进行解决这类问题。

    from sklearn.preprocessing import StandardScaler
    sc_X = StandardScaler()
    X_train = sc_X.fit_transform(X_train)
    X_test = sc_X.fit_transform(X_test)
    

    哈,第一天的内容到此结束了,关于python的一些操作可参考https://www.pythonsheets.com/

    相关文章

      网友评论

        本文标题:python机器学习从入门到精通(第1天)

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