2019-10-25

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)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 92. JS的三种输出 1、行间事件(主要用于事件) 2、页面script标签嵌入 var a ...
    柴永旺阅读 1,063评论 0 0
  • 每日检视346/365 起床:7:20 就寝:11:30 天气:晴 心情:平静 纪念日: 叫我起床的不是闹钟是梦想...
    洒脱转身阅读 1,229评论 0 0
  • 一元运算符:只需一个操作数 +正号:不会对数字产生影响 -负号:对数字进行符号取反 对非Number类型值,会先转...
    王林1907阅读 1,000评论 0 0
  • 清澈透亮的人间,看见水底的石头图案, 设计了五色斑斓,知道都是值得的实践。 不在是烈士暮年,自以为聪明奋战, 那些...
    废柴长短句阅读 1,346评论 1 5
  • 爱美是女人的天性,这句话是万万千千实践出来的真理。我也不例外,喜欢一切美的东西,也希望自己每天都是美美的。 随着年...
    暮晓日记阅读 4,734评论 0 1

友情链接更多精彩内容