机器学习实战4-数据预处理

这篇具有很好参考价值的文章主要介绍了机器学习实战4-数据预处理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

数据无量纲化

机器学习实战4-数据预处理,机器学习,人工智能

preprocessing.MinMaxScaler(归一化)

机器学习实战4-数据预处理,机器学习,人工智能

导库

from sklearn.preprocessing import MinMaxScaler
data = [[-1, 2], [-0.5, 6], [0, 10], [1, 18]]

归一化

# 实现归一化
scaler = MinMaxScaler() #实例化
scaler = scaler.fit(data) #在这里本质是生成min(x), 和max(x)
result = scaler.transform(data) # 通过接口导出结果
result

另一种写法

scaler = MinMaxScaler() #实例化
result_ = scaler.fit_transform(data) # 训练和导出结果一步达成
result_

机器学习实战4-数据预处理,机器学习,人工智能
机器学习实战4-数据预处理,机器学习,人工智能

将归一化的结果逆转

scaler.inverse_transform(result) # 将归一化后的结果逆转

机器学习实战4-数据预处理,机器学习,人工智能
机器学习实战4-数据预处理,机器学习,人工智能
用numpy实现归一化

import numpy as np
X = np.array([[-1, 2], [-0.5, 6], [0, 10], [1, 18]])
# 归一化
X_nor = (X - X.min(axis=0)) / (X.max(axis=0) - X.min(axis=0))
X_nor

机器学习实战4-数据预处理,机器学习,人工智能
逆转

X_returned = X_nor * (X.max(axis=0) - X.min(axis=0)) + X.min(axis=0)
X_returned

机器学习实战4-数据预处理,机器学习,人工智能

preprocessing.StandardScaler(标准化)

机器学习实战4-数据预处理,机器学习,人工智能

导库

from sklearn.preprocessing import StandardScaler
data = [[-1, 2], [-0.5, 6], [0, 10], [1, 18]]

实例化

scaler = StandardScaler() # 实例化
scaler.fit(data) # 本质是生成均值和方差

查看属性

scaler.mean_ #查看均值的属性mean_
scaler.var_ # 查看方差的属性var_

机器学习实战4-数据预处理,机器学习,人工智能

查看结果

x_std = scaler.fit_transform(data)
x_std

机器学习实战4-数据预处理,机器学习,人工智能

机器学习实战4-数据预处理,机器学习,人工智能

逆标准化

return_x = scaler.inverse_transform(x_std)
return_x

机器学习实战4-数据预处理,机器学习,人工智能
机器学习实战4-数据预处理,机器学习,人工智能

关于如何选择这两种无量纲化的方式要具体问题具体分析,但是我们一般在机器学习算法中选择标准化,这就好比我们能让他符合标准正态分布为什么不呢?而且MinMaxScaler对异常值很敏感,如果有一个很大的值会把其他值压缩到一个很小的区间内

机器学习实战4-数据预处理,机器学习,人工智能

缺失值

机器学习实战4-数据预处理,机器学习,人工智能

impute.SimpleImputer

机器学习实战4-数据预处理,机器学习,人工智能
导库

import pandas as pd
data = pd.read_csv(r"C:\Users\cxy\OneDrive\桌面\【机器学习】菜菜的sklearn课堂(1-12全课)\03数据预处理和特征工程\Narrativedata.csv"
                  ,index_col=0 # 告诉python第0列是索引不是属性
                  )
data.info()

提取出我们要填补的列

Age = data.loc[:, 'Age'].values.reshape(-1, 1) # reshape()能够将数据升维的方法

建模

from sklearn.impute import SimpleImputer
imp_mean = SimpleImputer() #实例化默认均值填补
imp_median = SimpleImputer(strategy='median') # 用中位数填补
imp_0 = SimpleImputer(strategy='constant', fill_value=0) # 用0填补
imp_mean = imp_mean.fit_transform(Age)
imp_median = imp_median.fit_transform(Age)
imp_0 = imp_0.fit_transform(Age)

机器学习实战4-数据预处理,机器学习,人工智能
机器学习实战4-数据预处理,机器学习,人工智能
用均值填补的结果
机器学习实战4-数据预处理,机器学习,人工智能
用中位数填补的结果
机器学习实战4-数据预处理,机器学习,人工智能
用0填补的结果
机器学习实战4-数据预处理,机器学习,人工智能
在实际中我们会直接把那两个缺失的数据直接删除

# 使用众数填补空缺值
Embarked = data.loc[:, 'Embarked'].values.reshape(-1, 1) # reshape()能够将数据升维的方法
imp_mode = SimpleImputer(strategy='most_frequent')
imp_mode = imp_mode.fit_transform(Embarked)
data.loc[:, "Embarked"] = imp_mode

另一种填充写法

导库

import pandas as pd
data_ = pd.read_csv(r"C:\Users\cxy\OneDrive\桌面\【机器学习】菜菜的sklearn课堂(1-12全课)\03数据预处理和特征工程\Narrativedata.csv"
                  ,index_col=0 # 告诉python第0列是索引不是属性
                  )
data_.head()

填补

data_.loc[:, 'Age'] = data_.loc[:, 'Age'].fillna(data_.loc[:, 'Age'].median()) # fillna()在DataFrame里面直接进行填补

机器学习实战4-数据预处理,机器学习,人工智能
删除缺失值

data_.dropna(axis=0, inplace=True)
#axis=0表示删除所有有缺失值的行。inplace表示覆盖原数据,即在原数据上进行修改,当inplace = False时,表示会产生一个复制的数据

机器学习实战4-数据预处理,机器学习,人工智能

处理分类型特征:编码与哑变量

机器学习实战4-数据预处理,机器学习,人工智能

preprocessing.LabelEncoder:标签专用,能够将分类转换为分类数值

from sklearn.preprocessing import LabelEncoder
y = data.iloc[:, -1] # 要输入的时标签不是特征矩阵,允许一维
le = LabelEncoder()
le = le.fit_transform(y)
data.iloc[:,-1] = label

preprocessing.OrdinalEncoder:特征专用,能够将分类特征转换为分类数值

from sklearn.preprocessing import OrdinalEncoder
data_ = data.copy()
OrdinalEncoder().fit(data.iloc[:, 1:-1]).categories_
data.iloc[:, 1:-1] = OrdinalEncoder().fit_transform(data.iloc[:, 1:-1])
data.head()

机器学习实战4-数据预处理,机器学习,人工智能

preprocessing.OneHotEncoder:独热编码,创建哑变量

机器学习实战4-数据预处理,机器学习,人工智能
机器学习实战4-数据预处理,机器学习,人工智能

from sklearn.preprocessing import OneHotEncoder
X = data.iloc[:1:-1]
result = OneHotEncoder(categories='auto').fit_transform(X).toarray() # 使用autopython会自己帮我们确定这个参数应该填什么
result

机器学习实战4-数据预处理,机器学习,人工智能
机器学习实战4-数据预处理,机器学习,人工智能
机器学习实战4-数据预处理,机器学习,人工智能
我们如何把我们新生成的哑变量放回去?
先将哑变量直接连在表的右边

newdata = pd.concat([data, pd.DataFrame(result)], axis=1)

机器学习实战4-数据预处理,机器学习,人工智能
将不需要的列删除

newdata.drop(["Sex", "Embarked"], axis=1, inplace=True)
newdata.columns = ["Age", "Survived", "Female", "Male", "Embarked_C", "Embarked_Q", "Embarked_S"]
newdata.head()

机器学习实战4-数据预处理,机器学习,人工智能
机器学习实战4-数据预处理,机器学习,人工智能
机器学习实战4-数据预处理,机器学习,人工智能
机器学习实战4-数据预处理,机器学习,人工智能

处理连续性特征:二值化与分段

sklearn.preprocessing.Binarizer

机器学习实战4-数据预处理,机器学习,人工智能

from sklearn.preprocessing import Binarizer
X = data_2.iloc[:,0].values.reshape(-1,1)
transformer = Binarizer(threshold=30).fit_transform(X)

preprocessing.KBinsDiscretizer

机器学习实战4-数据预处理,机器学习,人工智能文章来源地址https://www.toymoban.com/news/detail-646687.html

from sklearn.preprocessing import KBinsDiscretizer
X = data.iloc[:, 0].values.reshape(-1, 1)
est = KBinsDiscretizer(n_bins=3, encode='ordinal', strategy='uniform')
est.fit_transform(X)

到了这里,关于机器学习实战4-数据预处理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 【机器学习6】数据预处理(三)——处理类别数据(有序数据和标称数据)

    【机器学习6】数据预处理(三)——处理类别数据(有序数据和标称数据)

    在【机器学习4】构建良好的训练数据集——数据预处理(一)处理缺失值及异常值这一篇文章中,主要说明热数据预处理的重要性以及如何处理缺失值及异常值这些数值特征。然而,在现实生活中遇到的数据集往往不仅仅只会包含 数值型特征 ,还会包含一个或者多个 类别特征

    2024年02月12日
    浏览(13)
  • 机器学习流程—数据预处理 缩放和转换

    相信机器学习的从业者,一定听到到过“特征缩放”这个术语,它被认为是数据处理周期中不可跳过的部分,因进行相应的操作们可以实现 ML 算法的稳定和快速训练。在本文中,我们将了解在实践中用于执行特征缩放的不同技术。 不同评价指标往往具有不同的 量纲 和量纲单

    2024年03月11日
    浏览(12)
  • 【Python机器学习】SVM——预处理数据

    【Python机器学习】SVM——预处理数据

    为了解决特征特征数量级差异过大,导致的模型过拟合问题,有一种方法就是对每个特征进行缩放,使其大致处于同一范围。核SVM常用的缩放方法是将所有的特征缩放到0和1之间。 “人工”处理方法: 可以看到,最终的结果上训练集和测试集的精度都非常好,但还没有接近

    2024年01月17日
    浏览(18)
  • 【机器学习】数据预处理 - 归一化和标准化

    【机器学习】数据预处理 - 归一化和标准化

    「作者主页」: 士别三日wyx 「作者简介」: CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」: 对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 处理数据之前,通常会使用一些转换函数将 「特征数据」 转换成更适合 「

    2024年02月15日
    浏览(16)
  • 机器学习基础 数据集、特征工程、特征预处理、特征选择 7.27

    无量纲化 1.标准化 2.归一化 信息数据化 1.特征二值化 2. Ont-hot编码 3.缺失数据补全 1.方差选择法 2.相关系数法

    2024年02月14日
    浏览(19)
  • 【大厂AI课学习笔记】【2.2机器学习开发任务实例】(3)数据准备和数据预处理

    【大厂AI课学习笔记】【2.2机器学习开发任务实例】(3)数据准备和数据预处理

    项目开始,首先要进行数据准备和数据预处理。 数据准备的核心是找到这些数据,观察数据的问题。 数据预处理就是去掉脏数据。 缺失值的处理,格式转换等。 延伸学习: 在人工智能(AI)的众多工作流程中,数据准备与预处理占据着举足轻重的地位。这两个步骤不仅影响

    2024年02月19日
    浏览(22)
  • 深入理解机器学习——数据预处理:归一化 (Normalization)与标准化 (Standardization)

    分类目录:《深入理解机器学习》总目录 归一化 (Normalization)和标准化 (Standardization)都是特征缩放的方法。特征缩放是机器学习预处理数据中最重要的步骤之一,可以加快梯度下降,也可以消除不同量纲之间的差异并提升模型精度。 归一化(Normalization)是将一组数据变

    2024年02月08日
    浏览(13)
  • 机器学习05-数据准备(利用 scikit-learn基于Pima Indian数据集作数据预处理)

    机器学习的数据准备是指在将数据用于机器学习算法之前,对原始数据进行预处理、清洗和转换的过程。数据准备是机器学习中非常重要的一步,它直接影响了模型的性能和预测结果的准确性 以下是机器学习数据准备的一些常见步骤: 数据收集:首先需要收集原始数据,可

    2024年02月14日
    浏览(17)
  • GPT-4科研实践:数据可视化、统计分析、编程、机器学习数据挖掘、数据预处理、代码优化、科研方法论

    GPT-4科研实践:数据可视化、统计分析、编程、机器学习数据挖掘、数据预处理、代码优化、科研方法论

    查看原文GPT4科研实践技术与AI绘图 GPT对于每个科研人员已经成为不可或缺的辅助工具,不同的研究领域和项目具有不同的需求。 例如在科研编程、绘图领域 : 1、编程建议和示例代码:  无论你使用的编程语言是Python、R、MATLAB还是其他语言,都可以为你提供相关的代码示例。

    2024年02月07日
    浏览(51)
  • 人工智能:数据分析之数据预处理、分析模型与可视化

    在人工智能和数据科学领域,数据分析是一种核心过程,它帮助我们从大量的数据中提取有价值的信息。数据分析的质量和结果直接影响到决策的效率和准确性。在这篇博客中,我们将详细探讨数据分析的关键步骤,包括数据预处理、分析模型和可视化,并通过实际应用案例

    2024年03月10日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包