栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

【机器学习100天】数据预处理 | 第1天

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【机器学习100天】数据预处理 | 第1天

跟这个项目的初衷是想学习一下机器学习,然后偶然发现了这个项目,准备跟下来,为自己研究生的学习做一下准备,以后每次写完会更新一下csdn,权当是做笔记了。

第一天:数据预处理实现

下面是完整的代码:

#Step 1: Importing the libraries 导入库
import numpy as np
import pandas as pd

#Step 2: Importing dataset 导入数据集
dataset = pd.read_csv('C:\Users\Amanda\Desktop\python\ML-Learning\datasets\Data.csv')
X = dataset.iloc[:,:-1].values
Y = dataset.iloc[:, 3].values

#Step 3: Handling the missing data 处理缺失值
# 遇到报错 cannot import name 'Imputer' from 'sklearn.preprocessing' 项目是4年前的了,所以有很多包都换位置了,也很正常。
# 解决方案:https://blog.csdn.net/xiaohutong1991/article/details/107812258
from sklearn.impute import SimpleImputer
imp_mean = SimpleImputer(missing_values = np.nan, strategy = "mean")
imp_mean = imp_mean.fit(X[ : , 1:3])
X[ : , 1:3] = imp_mean.transform(X[ : , 1:3])

#Step 4: Encoding categorical data 编码分类数据
from sklearn.preprocessing import LabelEncoder,OneHotEncoder
labelencoder_X = LabelEncoder()
X[:,0] = labelencoder_X.fit_transform(X[:,0])

# 遇到报错:TypeError: __init__() got an unexpected keyword argument 'categorical_features'
# https://blog.csdn.net/qq_44635691/article/details/104374481
# https://blog.csdn.net/qq_43201403/article/details/109552348
from sklearn.compose import ColumnTransformer
ct = ColumnTransformer(transformers=[('Country', OneHotEncoder(), [0, 1])])
X = ct.fit_transform(X).toarray()
labelencoder_Y = LabelEncoder()
Y = labelencoder_Y.fit_transform(Y)

#Step 5: Splitting the datasets into training sets and Test sets 将数据集分为训练集和测试集
# 遇到报错:ModuleNotFoundError: No module named 'sklearn.cross_validation'
# from sklearn.cross_validation import train_test_split
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)

#Step 6: Feature Scaling
from sklearn.preprocessing import StandardScaler
sc_X = StandardScaler()
X_train = sc_X.fit_transform(X_train)
X_test = sc_X.fit_transform(X_test)

最后的结果是这样的,虽然暂时我也没看懂到底是什么意思,我自己学习新东西是需要一个过程,刚开始不懂,但是先慢慢做着,做着做着吧,也就逐渐理解最开始的一些东西了,所以准备闷头干一段时间,到时候再回过头来看看究竟是干什么的。

第一天是用到了这几个类:SimpleImputer、OneHotEncoder、ColumnTransformer

SimpleImputer

这个类是在第3步里用到的,用于处理缺失值,不难理解。

imp_mean = SimpleImputer(missing_values = np.nan, strategy = "mean")

这里只使用了两个参数,一个是missing_values ,另一个是strategy 。
strategy包括了:mean,median和constant
此外,还有这些参数:fill_value(填充值),verbose,copy,add_indicator

OneHotEncoder

分类编码变量,将每一个类可能取值的特征变换为二进制特征向量,每一类的特征向量只有一个地方是1,其余位置都是0
具体可以看看这个:http://www.manongjc.com/article/45336.html
作用是用于处理离散型特征,阿,数学,开始了开始了,要开始补课了T0T

ColumnTransformer

允许将特定的转换或转换序列仅应用于数字列,而将单独的转换序列仅应用于类别列

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/929753.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号