美文网首页
2019-10-25

2019-10-25

作者: 仰累了 | 来源:发表于2019-10-28 11:58 被阅读0次

    pandas多次尝试始终安装失败 安装了完整版的python3.8依然安装失败
    找了个集成版 Anaconda

    找了张流程图


    机器学习过程

    找了个学习资源 https://github.com/Avik-Jain/100-Days-Of-ML-Code / 中文版
    跟着他走两步 运行代码发现他的部分内容已经过期 下面笔记中已修改

    Day1 数据预处理

    导入 numpy => 包含大量基础函数(数学 矩阵 多维数组)
    导入 pandas => 基于numpy的数据分析处理库

    import numpy as np
    import pandas as pd
    
    从csv读数据
    dataset = pd.read_csv('Data.csv')
    

    dataset 的数据结构叫 DataFrame 简单直观理解为csv表格 下面的操作就是对表格行和列的操作
    表格顶上那行叫标签 最左边一列也可以有标签

    Country Age Salary Purchased
    France 44.0 72000.0 No
    Spain 27.0 48000.0 Yes
    Germany 30.0 54000.0 No
    Spain 38.0 61000.0 No
    Germany 40.0 NaN Yes
    France 35.0 58000.0 Yes
    Spain NaN 52000.0 No
    France 48.0 79000.0 Yes
    Germany 50.0 83000.0 No
    France 37.0 67000.0 Yes

    这个例子是分析 国家,年龄,收入(自变量) 和 是否已购买(因变量) 关系

    下面的操作是把表格分成了两份 X是前3列(自变量) Y是最后一列(因变量)
    切片(冒号是切片 ) 简单理解为 数组[从索引x(空就是0) : 切到索引y-1(例如y是3就切到2不包括3 空就是切到最后) ]
    iloc逗号前面的切片是切行 逗号后面的切片是切列 values是只要数据不要标签(label)

    X = dataset.iloc[ : , : -1].values #0到max行(所有行)  的   0到-1索引列(不含-1  就是除了最后一列的所有列)
    Y = dataset.iloc[ : , 3].values #所有行  的  索引为3的列
    

    sklearn => 数据挖掘和数据分析工具

    处理丢失数据
    sklearn 工具包里的 Imputer 类 => 通过策略来补齐缺失数据(缺失数据处理器 处理DataFrame)

    from sklearn.impute import SimpleImputer
    

    创建策略并补齐(只能处理数字 所以指定了处理1-3索引列)
    策略 取平均值mean 中值(1-3-9 3是中)median 众值(出现频率最高的)most_frequent

    imputer = SimpleImputer(np.nan, "mean")
    X[ : , 1:3] = imputer.fit_transform(X[ : , 1:3])
    

    把所有非数字的数据 编码为数字 LabelEncoder 标签编码 OneHotEncoder 独热编码    参考二

    LabelEncoder 标签编码 简单理解就是用0代表a 用1代表b 转换成数值

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

    OneHotEncoder 对数据进行独热编码 简单理解就是把每一类属性编码然后拼接
    如性别 男,女 编码为 男:1,0 女:0,1 再举例 男,女,人妖 男1,0,0 女0,1,0 人妖0,0,1 其它属性类推然后拼接在一起

    from sklearn.preprocessing import OneHotEncoder
    onehotencoder = OneHotEncoder(categories='auto')
    X = onehotencoder.fit_transform(X).toarray()
    

    拆分数据集为 训练集合 和 测试集合
    train_test_split(样本特征集(国家,年龄,收入 独热编码), 样本标签(是否已购买)), test_size(抽取多少条样本做测试 0.2->20%), random_state随机数种子)

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

    特征量化
    from sklearn.preprocessing import StandardScaler
    sc_X = StandardScaler()
    X_train = sc_X.fit_transform(X_train)
    X_test = sc_X.fit_transform(X_test)

    相关文章

      网友评论

          本文标题:2019-10-25

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