【机器学习100天】Day1-数据预处理

1.导入需要的库

import numpy as np
import pandas as pd

2.导入数据集

数据集(点击下载)

dataset = pd.read_csv('Data.csv')
X = dataset.iloc[ : , :-1].values  # 该values()方法返回一个视图对象,该对象显示字典中所有值的列表。
Y = dataset.iloc[ : , 3].values

loc是根据dataframe的具体标签选取列,而iloc是根据标签所在的位置,从0开始计数。
dataset.iloc[行,列]
[a] 第a+1行 or 列
[:] 表示选取整行或整列
[0 : 2] 表示选取第0行到第二行,这里的0:2相当于[0,2)左闭右开,2是不在范围之内的。

# 行
data.iloc[0] # 数据第一行
data.iloc[1] # 数据第二行
data.iloc[-1] # 数据最后一行
# 列
data.iloc[:,0] # 数据第一列
data.iloc[:,1] # 数据第二列
data.iloc[:,-1] # 数据最后一列
# 同时选择多行多列
data.iloc[0:5] # 数据前五行 data.iloc[0:5]等同于data.iloc[:5]
data.iloc[:, 0:2] # 数据前两列
data.iloc[[0,3,6,24], [0,5,6]] # 第1、4、7、25行+第1、6、7列
data.iloc[0:5, 5:8] # 数据前5行和第6、7、8列

3.处理丢失的数据

from sklearn.impute import SimpleImputer
imputer = SimpleImputer(missing_values=np.nan, strategy="mean")
imputer = imputer.fit(X[:, 1:3])
X[:, 1:3] = imputer.transform(X[:, 1:3])

函数用法:
SimpleImputer用法
函数输入参数:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

SimpleImputer 例子:
在这里插入图片描述

sklearn.impute.SimpleImputer

4.解析分类数据

from sklearn.preprocessing import LabelEncoder, OneHotEncoder
labelencoder_X = LabelEncoder()
X[:, 0] = labelencoder_X.fit_transform(X[:, 0])
# 创建虚拟变量
from sklearn.compose import ColumnTransformer
ct = ColumnTransformer([('encoder', OneHotEncoder(), [0])], remainder='passthrough')
# 默认情况下,从数据集中删除任何未在“转换器”列表中指定的列;这可以通过设置“remainder”参数来改变。
# 设置remainder='passthrough'将意味着所有未在“转换器”列表中指定的列将不经转换直接通过,而不是被丢弃。
X = ct.fit_transform(X)
labelencoder_Y = LabelEncoder()
Y = labelencoder_Y.fit_transform(Y)

sklearn.preprocessing.LabelEncoder
在这里插入图片描述
inverse_transform(y) 将标签转换回原始编码。

ColumnTransformer
在这里插入图片描述
在这里插入图片描述

使用 SciKit 中的 ColumnTransformer 代替 LabelEncoding 和 OneHotEncoding 进行机器学习中的数据预处理
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
例子
在这里插入图片描述

5.拆分数据集为训练集合和测试集合

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)

https://stackoverflow.com/questions/54179312/what-is-the-difference-between-from-sklearn-model-selection-import-train-test-sp
sklearn.model_selection.train_test_split
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
可以使用shuffle=False命令关闭数据混洗和随机拆分

6.特征缩放

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

sklearn.preprocessing.StandardScaler
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述





机器学习100天(https://github.com/Avik-Jain/100-Days-Of-ML-Code)

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值