数值数据的特征预处理|ML基础

transforms图像增强(一) 数据增强(Data Augmentation)是一种常用的数据预处理技术,通过对训练集进行各种变换和扩增操作,可以增加训练数据的多样性和丰富性,从而提高模型的泛化能力。数据增强的目的是通过对训练集中的图像进行随机变换,生成更多样的图像样本,以模拟真实世界中的各种场景和变化。这样可以帮助模型学习到更多不同的特征和模式,提高模型对于不同样本的适应能力,减少过拟合的风险。常见的数据增强操作包括图像翻转、旋转、缩放、裁剪、平移、变换色彩空间、添加噪声等。 阅读详情

模型的好坏取决于数据的好坏

640?wx_fmt=jpeg
译者|Arno
来源|Medium

特征预处理是数据挖掘中最重要的步骤。在这篇文章中,我将向你介绍特征预处理的概念,它的重要性,不同的机器学习模型下的数值特征的不同特征预处理技术。

模型的质量在很大程度上取决于输入模型的数据。当从数据挖掘过程中收集数据时,会丢失一些数据(我们将其称为丢失值)。此外,它很容易受到噪音的影响。这都导致低质量数据的结果,正如你可能已经听说过的,模型的好坏取决于它所训练的数据。

这就是特征预处理的由来,特征预处理将原始数据转换为机器学习模型可用的数据。

不同类型的机器学习模型

首先,让我们看看机器学习模型的不同类别。这里,我们将模型分为两种类型:

  1. 基于树的模型:基于树的模型是一种监督学习模型,能够在捕捉复杂非线性关系的同时提供高精度和稳定性。基于树的决策树模型有随机森林模型和梯度增强决策树模型。

  2. 非树模型:所有其他监督学习模型都属于非树模型的范畴。线性模型、K近邻模型和神经网络是基于非树模型的一些例子。

不同的数据类型或特征

一个数据集可以包含各种数据类型或特征。以下是一些最常见的数据类型:

  1. 数值特征

  2. 分类特征和顺序特征

  3. 日期和时间

  4. 文本

  5. 图像

不同的数据类型和不同的机器学习模型需要不同类型的特征预处理。一些预处理方法对于所有数据类型都是通用的。

数值数据的特征预处理

640?wx_fmt=jpeg

数值数据有测量或计数的意义。数值数据的例子包括雇员的工资、年龄和拥有的房屋数量。数值数据可以进一步分为两种类型:离散型和连续型。在上面的例子中,一个员工的工资是连续的数据,一个人的年龄和拥有的房屋数量是离散的数据。

让我们研究一下来自Kaggle的SF salary数据集中旧金山市的员工工资数据。

640?wx_fmt=png

在这个数据集中,特征BasePay, OvertimePay, OtherPay, TotalPay, TotalPayBenefits和Year是数值特征。

让我们选择一个特征并对其进行探索性数据分析。

这里是TotalPay特征的直方图。

640?wx_fmt=png

从上图中我们可以看出,数据的分布是巨大的。值的范围从0到50,000左右。

如果我们使用panda中的describe()函数看数据分布,我们得到:

count    148654.000000
mean      74768.321972
std       50517.005274
min        -618.130000
25%       36168.995000
50%       71426.610000
75%      105839.135000
max      567595.430000
Name: TotalPay, dtype: float64

为了有效地使用该特征,我们需要使用以下任何一种方法对该特征进行预处理。

1. 特征缩放(归一化)

特征缩放是一种对数据的自变量或特征范围进行归一化的方法。它通常被称为标准化。与基于树的模型相比,特征缩放对非树模型的影响更大。因此,如果你想使用非基于树的模型获得良好的结果,你应该考虑规范化你的数值特征。

有不同的方法来归一化特征。以下是一些常见的例子:

  • Rescaling (Min-Max归一化):这是一种最简单的归一化,将特征重新划分为[0,1]范围。

640?wx_fmt=png

下面是使用sklearn库中的MinMaxScaler函数在python中执行Min-Max归一化的代码片段。

from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
TotalPayReshaped = df.TotalPay.as_matrix().reshape(-1, 1)
df.TotalPay = scaler.fit_transform(TotalPayReshaped)
df.hist(figsize=(15,6), column=[‘TotalPay’])
640?wx_fmt=png

对TotalPay特征进行Min-Max归一化后使用describe()查看的结果如下。我们可以看到TotalPay的最小值是0,最大值是1。

count    148654.000000
mean          0.132673
std           0.088905
min           0.000000
25%           0.064742
50%           0.126792
75%           0.187354
max           1.000000
Name: TotalPay, dtype: float64
  • Standardization (Z-score归一化):在这种归一化中,对一个特征进行缩放,使其均值为零,方差为1。

640?wx_fmt=png

让我们对原始的TotalPay特征执行Z-score归一化。下面是使用sklearn库中的StandardScaler函数在python中执行此类归一化的代码片段。

from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
TotalPayReshaped = df.TotalPay.as_matrix().reshape(-1, 1)
df.TotalPay = scaler.fit_transform(TotalPayReshaped)
df.hist(figsize=(15,6), column=[‘TotalPay’])
640?wx_fmt=png

对TotalPay特征进行Z-score归一化后的结果如下。我们可以看到,TotalPay的均值接近于0,标准差为1。

count    1.486540e+05
mean    -2.707706e-15
std      1.000003e+00
min     -1.492304e+00
25%     -7.640884e-01
50%     -6.615046e-02
75%      6.150586e-01
max      9.755700e+00
Name: TotalPay, dtype: float64

2. 离群值删除

在统计学中,离群点是一个与其他观测值距离较远的观测点。--维基百科

640?wx_fmt=jpeg

有时,通过从数据中删除离群值,可以显著提高机器学习模型的性能。对于非基于树的模型也是如此。另一方面,基于树的模型对离群值具有较强的鲁棒性。

下面的代码片段将从TotalPay特征中删除1%的数据。

x = df.TotalPay
UPPERBOUND, LOWERBOUND = np.percentile(x, [1,99])
y = np.clip(x, UPPERBOUND, LOWERBOUND)
pd.DataFrame(y).hist()
640?wx_fmt=png

去除离群值后使用describe()查看TotalPay特征的结果如下。

count    148654.000000
mean      74502.923277
std       49644.336571
min         286.971000
25%       36168.995000
50%       71426.610000
75%      105839.135000
max      207015.797400
Name: TotalPay, dtype: float64

3. 排序变换

基于非树的模型可以从秩变换中获益。如果你没有时间手动处理离群值,这是一种非常方便的技术。当变量是标称变量时,排序变换特别有用,在标称变量中,不同值之间的顺序比值更重要。

可以使用scipy库中的rankdata方法将特征值转换为对应排序后的索引。

4. 对数变换

当你希望降低数据的可变性时,对数变换是另一种常用的技术。对数变换的另一个流行用法是当数据分布高度倾斜时。

下面是用Python执行对数变换的代码片段。

df['LogTotalPay'] = np.log(1+df.TotalPay)
640?wx_fmt=png

对TotalPay特征执行对数变换后使用describe()的结果如下。值的范围从最小值-618.130和最大值567595.43更改为最小值0.00和最大值13.25。通过对这个特征执行对数变换,我们已经减少了数据中的方差,即原始特征的标准差约为50,500,而对数变换特征的标准差为1.41。

count    148653.000000
mean         10.739295
std           1.413888
min           0.000000
25%          10.495993
50%          11.176446
75%          11.569692
max          13.249166
Name: LogTotalPay, dtype: float64

在本文中,我讨论了为什么特征预处理被认为是数据挖掘过程中的一个重要步骤。我列出了数据集中不同类型的特征,并简要讨论了基于树和非基于树的模型。然后,通过代码示例和直方图图,详细阐述了数值特征常用的特征预处理技术,包括归一化、离群点去除和对数变换等。

你最常用什么预处理技术来处理数值特征?为什么?请在下面的评论中留下你的想法。

欢迎扫码关注:

640?wx_fmt=other

《特征工程入门与实践》--特征构建 特征构建检查数据集自定义分类填充器编码分类变量定序等级的编码将连续特征分箱扩展数值特征针对文本的特征构建词袋法CountVectorizerTF-IDF向量化器 我们会探讨如下主题: 检查数据集; 填充分类特征; 编码分类变量; 扩展数值特征; 针对文本的特征构建。 检查数据集 为了进行演示,本章会使用我们自己创建的数据集,以便展示不同的数据等级和类型。我们先设置数据的DataFrame。 用Pandas创建要使用的DataFrame,这也是Pandas的主要数据结构。这样做的优点是可以用很多属性和方法 阅读详情

相关推荐

文本处理与特征工程:从词干提取到随机森林

本文深入探讨了文本处理和特征工程的关键概念,包括词干提取、词形还原以及如何使用Python进行文本向量化。通过实际案例和代码示例,我们了解了如何将文本数据转化为机器学习算法可以处理的格式,并介绍了袋装技术在自然语言处理中的应用。

weixin_32445049的博客 861

Transform:数据的预处理/数据增强

让PyTorch读取自己的数据

Major_S的博客 4649

怎么在豆包里做生成式引擎优化(GEO)

本文系统介绍了豆包平台生成式引擎优化(GEO)的全套方法体系。文章首先解析了豆包与传统搜索引擎的核心差异,强调其多模态理解和上下文感知特性,并指出GEO需从关键词匹配转向用户意图动态解析。随后详细阐述了GEO优化的三大核心策略:用户意图解析技术、实时内容适配框架和权威信号强化方法,配以技术实现路径和案例说明。最后提出GEO与SEO融合的未来趋势,建议企业构建统一知识库,实现全渠道声誉管理。全文包含大量实操代码和工具链指导,为企业在AI时代的内容优化提供系统解决方案。

解锁AI流量新红利!🚀 GEO优化(生成引擎优化)助您掌控AI搜索,让AI成为您的品牌最佳代言人! 2387

python_归一化

python_归一化 最大最小值 MinMaxScaler 4.1 Rescaling a feature¶ Use scikit-learn's MinMaxScaler to rescale a feature array # 数据缩放 归一化 最大最小值 import numpy as np from sklearn import preprocessing ​ # create a...

wj1298250240的博客 736

Ubuntu22.04+PX4+Gazebo:从零到一构建无人机仿真开发环境

本文详细介绍了在Ubuntu22.04系统下搭建PX4+Gazebo无人机仿真开发环境的完整流程。从基础环境配置、PX4固件安装到Gazebo仿真环境搭建,提供了实用命令和常见问题解决方案,帮助开发者快速构建高效的无人机开发环境。

weixin_29243279的博客 437

SAP_SD模块销售开票计划预收款系统配置及前台操作说明

在 SAP SD 中,开票计划(Billing Plan)是一种允许根据时间节点或里程碑对销售订单进行分期开票的功能。其中最常见的一种应用就是预收款(Down Payment Billing),即在销售订单中直接定义某个百分比或金额作为预收款,系统在开票时自动生成预收账单。大额合同或长期项目型销售(先收 20%,交货前收 30%,交货后收 50%)。分期付款模式(分阶段收款)。必须预收款才能安排生产或交货的业务。后台路径:SPRO—销售与分享—销售—销售凭证—销售凭证项目—定义项目类别。

我小时候很黑的博客 1409

transform数据增强的方法详解

数据增强是在机器学习和深度学习中常用的技术,其主要目的是通过对训练数据进行一系列变换,生成具有多样性的数据,以改善模型的泛化性能和鲁棒性。以下是为什么有时候要进行数据增强的一些主要原因:1.增加数据多样性: 数据增强可以生成具有多样性的数据,模拟不同角度、尺度、光照和噪声条件下的样本。这有助于训练模型更好地适应现实世界中的各种变化。2.减少过拟合: 过拟合是指模型在训练数据上表现良好,但在未见过的数据上表现差。数据增强引入了更多的数据变化,有助于减少过拟合风险,提高模型的泛化性能。

AI_dataloads的博客 658

【思考模型框架】前景理论(Prospect Theory),认为人们并不是完全理性的决策者,而是根据一些心理上的偏差来评估选项的价值

前景理论,是一种行为经济学理论。前景理论,描述了人们在不确定条件下如何作出决策。前景理论,认为人们并不是完全理性的决策者,而是根据一些心理上的偏差来评估选项的价值。

奶爸的编程之路,也就一周冷个三天 1644

​特征工程系列:特征预处理(上)

特征工程系列:特征预处理(上) 关于作者:JunLiang,一个热爱挖掘的数据从业者,勤学好问、动手达人,期待与大家一起交流探讨机器学习相关内容~ 0x00 前言 数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。由此可见,特征工程在机器学习中占有相当重要的地位。在实际应用当中,可以说特征工程是机器学习成功的关键。 那特征工程是什么? 特征工程是利用数据领域...

weixin_30736301的博客 362

CARAFE轻量级上采样算子详解:从原理到YOLOv5/YOLOv8实战魔改全攻略

摘要: 本文探讨了CARAFE(内容感知特征重组)上采样算子在YOLOv5/YOLOv8目标检测模型中的应用。传统上采样方法(如最近邻插值)易丢失细节信息,而CARAFE通过内容自适应机制和大感受野特性,动态生成上采样核,显著提升小目标检测性能。文章详细解析了CARAFE的算法原理(核生成与特征重组两步),并提供了在YOLOv5/YOLOv8中集成的代码实现与配置修改方案。实验表明,引入CARAFE后模型mAP提升约0.6%,且保持轻量级优势。此外,文中还总结了训练调优技巧、部署优化方案及常见问题解决方法,

FJN110的博客 920

MyBatis-Plus 实战:敏感字段自动加解密支持模糊查询

本文基于MyBatis-Plus框架提出了一种全链路敏感字段加密方案。通过自定义TypeHandler实现数据入库自动加密和查询自动解密,结合重写LambdaQueryWrapper处理查询条件加密,并适配多种查询方式。方案核心包括:1)AESUtil工具类提供加解密基础能力;2)EncryptTypeHandler实现字段类型转换;3)实体类通过注解配置加密字段。该方案在保证数据安全的同时,对业务代码侵入性小,支持姓名、手机号等敏感信息的全流程加密处理,满足系统开发的安全需求。

蔡定努 596

99数据集预处理_数值数据的特征预处理ML基础

模型的好坏取决于数据的好坏译者|Arno来源|Medium特征预处理是数据挖掘中最重要的步骤。在这篇文章中,我将向你介绍特征预处理的概念,它的重要性,不同的机器学习模型下的数值特征的不同特征预处理技术。模型的质量在很大程度上取决于输入模型的数据。当从数据挖掘过程中收集数据时,会丢失一些数据(我们将其称为丢失值)。此外,它很容易受到噪音的影响。这都导致低质量数据的结果,正如你可能已经听说过...

weixin_28744613的博客 365

华为OD机试新系统真题 【简单表达式计算】

华为OD机试 新系统真题【简单表达式计算】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【简单表达式计算】题解

qq_45776114的博客 678

miniimagenet的图像预处理代码_数值数据的特征预处理ML基础

模型的好坏取决于数据的好坏译者|Arno来源|Medium特征预处理是数据挖掘中最重要的步骤。在这篇文章中,我将向你介绍特征预处理的概念,它的重要性,不同的机器学习模型下的数值特征的不同特征预处理技术。模型的质量在很大程度上取决于输入模型的数据。当从数据挖掘过程中收集数据时,会丢失一些数据(我们将其称为丢失值)。此外,它很容易受到噪音的影响。这都导致低质量数据的结果,正如你可能已经听说过...

weixin_39758494的博客 419

【DRAM存储器六十七】DDR5介绍--训练相关之write leveling

详述DDR5 write leveling细节

highman110的博客 295

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

数据增强 transform_数值数据的特征预处理|ML基础

特征预处理是数据挖掘中最重要的步骤。在这篇文章中,我将向你介绍特征预处理的概念,它的重要性,不同的机器学习模型下的数值特征的不同特征预处理技术。模型的质量在很大程度上取决于输入模型的数据。当从数据挖掘过程中收集数据时,会丢失一些数据(我们将其称为丢失值)。此外,它很容易受到噪音的影响。这都导致低质量数据的结果,正如你可能已经听说过的,模型的好坏取决于它所训练的数据。这就是特征预处理的由来,特征预处...

weixin_39968436的博客 240

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

数值数据的特征预处理

特征预处理是数据挖掘中最重要的步骤。在这篇文章中,我将向你介绍特征预处理的概念,它的重要性,不同的机器学习模型下的数值特征的不同特征预处理技术。 模型的质量在很大程度上取决于输入模型的数据。当从数据挖掘过程中收集数据时,会丢失一些数据(我们将其称为丢失值)。此外,它很容易受到噪音的影响。这都导致低质量数据的结果,正如你可能已经听说过的,模型的好坏取决于它所训练的数据。 这就是特征预处理的由来,特...

TensorFlowNews 2405

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Machine Learning with Python Cookbook 学习笔记 第4章

Machine Learning with Python Cookbook 读后感系列(四)

weixin_51083297的博客 681

机器学习入门1

机器学习 (入门) 1.1 基本了解 1.2 算法分类 机器学习算法分类:目标值:类别 --------------分类问题 (有监督学习) 连续型数据-----------------------回归问题(有监督学习) 无 ----------------------------------无监督学习(聚类) 算法:监督学习:分类:k-邻近算法、贝叶斯算法、决策树与随机森林、逻辑回归 回归:线性回归,岭回归 无监督学习:k-means 2.1 数据集 可用数据集:sklearn , kaggle, UC

caspesjpe的博客 377

特征工程(文本特征提取CountVectorizer、TF-IDF 分词jieba、归一化、标准化 )、python示例

简单学习特征工程、中英文文本特征提取CountVectorizer、TF-IDF、jieba

weixin_45775970的博客 930

特征工程之数据预处理——哑变量处理

文章目录前言一、get_dummies1、导库,创建表格2、调用哑变量方法3、删除无用列4、修改列的名字二、OneHotEncoder1、导库2、调用OneHotEncoder函数总结 前言 机器学习在建模期间一般使用的是纯数值型数据,但是在实际生活中往往数据中会掺杂一些文本数据,例如人员信息中的性别等,这里的男,女,我们可以转化成为线性不相关的矩阵,如(1,0)、(0,1),在机器学习中这被称为哑变量。本节介绍两种方法来实现数值与非数值的转化,分别是pandas库中的get_dummies()和skl.

优快云 精品推荐 4610

使用scikit-learn进行预处理

文章目录PreProcessing using scikit-learn|Common importIntroduction to PreProcessing|预处理简介StandardScalerMinMaxScalerRobust Scaler|鲁棒的缩放器Normalizer归一化器Binarization|二进制化Encoding Categorical Values |编码分类值Enco...

平平淡淡,戒急用忍,一生学闭嘴。 1237

机器学习!

*为什么需要特征工程数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已什么是特征工程特征工程是使用专业背景知识和技巧处理数据,使得特征能在机器学习算法上发挥更好的作用的过程意义:会直接影响机器学习的效果特征工程的位置与数据处理的比较pandas:一个数据读取非常方便以及基本的处理格式的工具sklearn:对于特征的处理提供了强大的接口特征抽取/特征提取特征预处理特征降维特征提取**什么是特征提取1 将任意数据(如文本或图像)转换为可用于机器学习的数字特征。

MoSwwzc的博客 469

数据预处理:离散化

离散化(也称量化或分箱)是一种数据预处理技术,用于将连续的数值型的数据转换为离散的分类的标签。某些具有连续特征的数据集可能会从离散化中受益,因为离散化可以将连续属性的数据集转换为仅具有名义属性的数据集这种处理方式主要应用于一些需要转化为分类问题的数据集,如机器学习和数据挖掘中的输入变量。离散化的原理主要是通过将连续的数值属性转化为离散的数值属性来实现数据的转化这个过程通常会采用分箱(Binning)的方法。

Java/Python大数据随笔 2850

机器学习实战|第6周|第4章:特征工程|18:00~20:30

对于一个有N个不同取值的类别特征,独热编码将其转换为一个长度为N的二进制向量,只有对应类别的位置是1,其他位置是0。标签编码是针对定序变量的,也就是有顺序大小的类别变量,就好像案例中的变量ordinal_column的值(dislike、somewhat like 和like 可以分别用0、1和2来表示),同样地可以写一个自定义的标签编码器。常见的方法包括基于统计模型的方法(如正态分布、孤立森林等),基于距离的方法(如K近邻、LOF等),以及基于聚类的方法(如DBSCAN等)。

m0_57656758的博客 1350
上一篇: 干货 | 对数线性模型之 Logistic 回归、SoftMax 回归和最大熵模型
下一篇: 盘点今年秋招那些“送命”的算法面试题
机器学习算法那些事
博客等级 码龄9年 1633粉丝 62原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值