对于这个项目——(谷歌 Colab 笔记本在后面公开)——我使用 NIFTY 指数(印度),我们正在查看每分钟的数据。我们根据开盘价对每个时间序列进行标准化,因此每个点只是它与开盘价之间的差值。...那么问题就变成了——我们需要多少历史窗口来预测股票的最终走势?你能在第一个小时之后说出来吗?或者机器可以在 6.25 小时中的 3 小时后学习模式吗?...我将在这里重点介绍的是 ROCKET transform 和时间序列分类器。这里实际上有大量有趣的时间序列分类器,其中许多属于符号表示类型(将时间序列表示为字母或符号序列,如 DNA)。...然后,通过除以 100 来缩放数字,以获得大致在 [0,1] 范围内的数字。要创建二进制目标变量,只需将收盘价与开盘价进行比较,如果收盘价更高,我们编码为 1,否则为 0。...Sktime 分类器要求数据以一种奇怪的格式存储——一个 Pandas DataFrame,除了每个时间戳的一列(239 个特征,一个形状数组 (N, 239),你有 1 列,其中每一行或每个元素 该列本身就是一个
上一节我们完成了 KNN 算法理论的学习,同时还手动写了一个简易版的 KNN 分类器。今天我们来进行 KNN 的实战,看看如何通过 KNN 算法来解决生活中的问题。...在实战之前,我们先来介绍一个概念-超参数。 还记得我们上一节讲到的选择 K 值吗,这里的 K 就是超参。 所谓超参数,就是在机器学习算法模型执行之前需要指定的参数。...原来是有两个并不太正常的点,看起来更加接近动作类别,但是实际上却是爱情类别的电影。...不过还是可以得出,当 K 值取7时,基本已经是最优的 K 值了。 手写数字识别分类 使用 sklearn 自带的手写数字数据集,它包括了1797幅数字图像,每幅图像大小是8*8像素。...我们把第一幅图像以图片的形式展示了出来,可以依稀的看出是一个0,同时该分类的标注(target)也是0。
例如:如果一个向量包含高斯分布的随机值,你可能会通过除以标准偏差来减少均值,然后获得零均值单位方差的“标准正态”随机变量。 那么问题是,当我们在训练模型的时候,一定要对数据进行变换吗?这得视情况而定。...很多人对多层感知机有个误解,认为输入的数据必须在[0,1]这个范围内。虽然标准化后在训练模型效果会更好,但实际上并没有这个要求。...但是我们可以对稀疏数据的输入进行标准化,尤其是特征在不同的标准时。MaxAbsScaler 和 maxabs_scale是专门为稀疏数据设计的,也是常用的方法。...从结果中来看,第一个数字代表性别([0,1]代表男性,女性),第二个数字代表地名([0,1,2]代表欧洲、美国、亚洲),最后一个数字代表浏览器([3,0,1,2]代表四种浏览器) 此外,字典格式也可以编码...告诉你怎么用: 如果你在做一个分类任务时,发现第一主成分与这个不相关,你可以用FunctionTransformer把第一列除去,剩下的列用PCA: ? ? ? 结果: ?
因为数据集里面可能的国家地区取值有3种,所以就转换成了0(法国)、1(德国)、2(西班牙)。问题是,这三者之间真的有序列(大小)关系吗? 答案自然是否定的。我们其实还是打算用数值描述分类而已。...它也是Scikit-learn提供的一个类,可以帮助我们把类别的取值转变为多个变量组合表示。 咱们这个数据集里,可以把3个国家分别用3个数字组合来表示。...这样,再也不会出现0和1之外的数字来描述类别,从而避免机器产生误会,错把类别数字当成大小来计算了。 特征矩阵里面,我们只需要转换国别这一列。...因为本例中,OneHotEncoder转换出来的3列数字,实际上是不独立的。给定其中两列的信息,你自己都可以计算出其中的第3列取值。 好比说,某一行的前两列数字是(0, 0),那么第三列肯定是1。...我们需要把数据进行标准化处理。因为原先每一列数字的取值范围都各不相同,因此有的列方差要远远大于其他列。这样对机器来说,也是很困扰的。
以下是我在过去两年里在区块链和分类账上学到的9件事。对于那些着手区块链的人来说,这是一个入门读物。 区块链是散列 组成区块链的块碰巧大部分都是散列(所以你可以说我们都是在处理哈希链而不是块链)。...梅克尔树 许多区块链或散列链的基础实际上是一个叫做“梅克尔树”的结构。与相对较新的区块链相反,默克尔树实际上在1979年被拉尔夫·默克尔(Ralph Merkle)授予专利。...如果你眯起眼睛,你可以把区块链想象成一列火车,每列火车是一个梅克尔根,实际上代表了大量的数字资产(又名乘客)。 这个火车隐喻唯一的问题是,在区块链中,每个新区块是基于前一个区块。...输入总账 好吧,现在我们已经有一堆由一堆散列组成的梅克尔树,而什么是分类账,与这有什么不同吗?简单回答:当然,它的一部分是散列和梅克尔树(有点像“寂静的绿色”就是人!)。...我们之前谈到了支持分类帐的共享代码,通常这个共享代码被称为智能合同。这不一定是一个合同,尽管它可以体现一个合同,而且确实是要确保同意和落实分类账交易的逻辑是安全的,并且在所有参与方中都是相同的代码。
我们可以采取下面三种常见策略: 一对一 (One vs One, OvO):一个分类器用来处理数字 0 和数字 1,一个用来处理数字 0 和数字 2,一个用来处理数字 1 和 2,以此类推。...,那么 Pipeline 是预测器 如果最后一个估计器是转换器,那么 Pipeline 是转换器 下面用一个简单例子来说明如果用 Pipeline 来做「先填补缺失值-再标准化」这两步的。...由于最后一个估计器是转换器,因此 pipe 也是个转换器。写好了就可以那它来做「先填补缺失值-再标准化」的重复工作了。 看看运行结果,值都被填满了,而且两列也被标准化了。...下例首先建立一个 DataFrame, 前两列智力 IQ 和脾气 temper 都是分类型变量 后两列收入 income 和身高 height 都是数值型变量 每列中都有缺失值 我们现在按下列步骤来清洗数据...首先我们自己定义一个从 DataFrame 里面获取每列的类,起名叫 DataFrameSelector。
下面是一大波栗子。 栗子1:客户价值分类 用数据分别对两个维度分类,可以使用分位数或者固定数据范围 第1象限:高价值客户,注重维护关系 第2象限:重点客户,为什么合作次数少?跟竞争对手合作多吗?...还记得2X2矩阵的第一个栗子么? 在矩阵基础上再增加一个维度R(Recently,意为最近一次消费时间),这就是我们今天要讲的RFM模型,上图给你看。...填表的规则是这样,拿每一行两两对比每一列,如果砖家判断行比列的重要性由右上图,就填相应的数字,反过来就填相应数字的倒数,什么意思呢举个栗子 砖家认为F值比M值重要,在3行4列填5,那么4行3列填1/5...鬼知道砖家填表有没有逻辑错误,比如A>B,B>C,那么A肯定>C啊,但是砖家填C>A,很明显不符合逻辑,所以要做一致性验证 计算矩阵最大特征根 用矩阵A乘以权重列W%,得到一个列向量,然后用列向量中每一个元素除以矩阵阶数和相对应的权重乘积...老王说的是个问题,所以我们要做顾客价值评分,聚类前做了数据标准化和加权,所以每类顾客的价值评分只需要把RFM三个指标的均值相加就可以啦~~~ 对每一类做价值评分可以量化各类客户的价值差别,弥补客户分类的不足
且数据量小的时候更多用朴素贝叶斯 因为它假定所有的特征在数据集中的作用是同样重要和独立的。正如我们所知,这个假设在现实世界中是很不真实的,因此,说朴素贝叶斯真的很“朴素” 5. 什么是梯度下降?...在Pandas库,有两种很有用的函数用于处理缺失值:isnull()和dropna()函数能帮助我们找到数据中的缺失值并且删除它们。如果你想用其他值去填充这些缺失值,则可以是用fillna()函数。...7.什么是数据标准化,为什么要进行数据标准化? 要点:数据标准化是预处理步骤,将数据标准化到一个特定的范围。 (将该值将去平均值后再除以标准差)。 要点:数据标准化可以使得每个特征的重要性更加均衡。...此时我们就叫这个假设出现了overfit的现象。 过拟合产生的原因:出现这种现象的主要原因是训练数据中存在噪音或者训练数据太少。...要点:TFIDF实际上是:TF * IDF,一个TF,一个IDF 词频(term frequency,TF)指的是某一个给定的词语在该文件中出现的频率(一词语出现的次数除以该文件的总词语数)。
首先,Gorner 给出了一个非常简单的可以分类数字的模型:softmax 分类。对于一张 28×28 像素的数字图像,其共有 784 个像素(MNIST 的情况)。...为了将数字分为 10 类(0 到 9),需要设计一个具有 10 个输出神经元的单层神经网络。对于分类问题,softmax 是一个不错的激活函数。...然后,当进行向量的标准化时,支配范数(norm)的最大的元素将会被标准化为一个接近 1 的数字,其他的元素将会被一个较大的值分割并被标准化为一个接近 0 的数字。...下面是所有代码: ? 这个简单的模型已经能识别 92% 的数字了。但这个准确度还不够好,但是你现在要显著地改善它。怎么做呢?深度学习就是要深,要更多的层! ? 让我们来试试 5 个全连接层。 ?...这说明你的神经网络在它当前的形态下已经无法从你提供的数据中抽取到更多的信息了,就像我们这个例子这样。 还记得我们如何使用我们的图像吗?是所有的像素都展平到一个向量里么?这是一个很糟糕的想法。
下面是一个归一化数量为10的人为序列的例子。 缩放对象需要将数据作为矩阵的行和列提供。加载的时间序列数据以Pandas序列的形式加载。...然而,有多种实际的原因使标准化输入可以加快训练的速度,并减少陷入局部最优的可能性。 - 我应该归一化/标准化/重新缩放数据吗?神经网络常见问题 缩放输出变量 输出变量是由神经网络预测得到的。...神经网络常见问题 以下的启发式问题,应该能涵盖大部分序列预测问题: 二元分类问题 如果你的问题是二元分类问题,那么输出将会是0和1,你最好在神经网络输出层上使用S形激励函数进行建模。...输出值将是0到1之间的实际值,并且可以得到准确的值。 多类分类问题 如果你的问题是一个多类分类问题,那么输出将是0到1之间的二进制值的向量,每个类值有一个输出。...在把你的问题转换成一个监督学习问题之后,再对这个序列进行缩放是不正确的,因为对每一列的处理都是不同的。 若缩放有疑问。你可能确实需要重新调整你的输入和输出变量。如果有疑问,至少要归一化你的数据。
标准化 Standarization 数据的标准化是将数据按比例缩放,使之落入一个小的特定区间,把数据转换为统⼀的标准。...了解了上面的类型后,我们开始进行特征编码的介绍: 独热编码(ONE HOT) 我们有一个包含3个分类变量的列,那么将在一个热编码中为一个分类变量创建每个热量编码3列。 独热编码又称一位有效编码。...所以上面的例子中,我们可以跳过任何列我们这里选择跳过第一列“red” 独热编码虽然简单,但是页有非常明显的缺点: 假设一列有100个分类变量。现在如果试着把分类变量转换成哑变量,我们会得到99列。...这将增加整个数据集的维度,从而导致维度诅咒。 所以基本上,如果一列中有很多分类变量我们就不应该用这种方法。...,但是它编码后的数字并不包含序列的含义。
但是事实情况是这样吗?不一定,在飞机上长时间待着的也有可能是机长。所以,为了消除主观感觉上的错误我们应该把三个特征看作同等重要。而把特征同等化,就是归一化的本质。...中文的提取道理类似,举一个例子。对下面一句话进行特征提取: “人生苦短,我喜欢 python”,“人生漫长,我不喜欢 python” 运行结果 但是这是我们想要的结果吗?...很显然不是,我们需要的是词语,而它对中文的处理默认为把逗号、空格等作为一个分隔。...2、我们都是阴沟里的虫子,但总还是得有人仰望星空。 3、要知道,一个文学人物十分钟的行为,可能是她十年的经历的反映。...TF-IDF实际上是表示的词的重要程度,计算方式为:TF×IDF 某一特定文件内的高词语频率,以及该词语在整个文件集合中的低文件频率,可以产生出高权重的TF-IDF。
数据集是从印度安德拉·普拉德什东北部收集的。标签列是用于分为组(患肝病或不患肝病)的类标签label。此数据集包含441名男性患者记录和142名女性患者记录。...Sgpt和Sgot、TB和DB的最大值都是均值的数十倍,这说明这几个特征的分布较为分散 1.3 数字编码 Gender列为字符串,为了在后续模型中方便引入进行处理,我们对Gender进行数字编码。...构建分类模型 患者是否患病是一个二分类问题,我们将使用逻辑回归、决策树以及随机森林方法对数据进行建模。 3.1 训练集测试集划分 我们根据计算出的label_cal来对数据集进行划分。...(label_cal=1)的召回率(Recall)达到0.93,且精确度(Precision)达到0.71,总体的平均F1_score达到0.45,是一个分类水平一般的模型。...主成分分析的变量也可以是无量纲的数据,例如标准化或对数转化后的数据。因此在构建模型之前,我们需要进行数据标准化。常用的标准化方法有 min-max 标准化和 z-score 标准化等。
从经验上说,归一化是让不同维度之间的特征在数值上有一定比较性,可以大大提高分类器的准确性。...同样是逐列进行操作,每一条数据都减去当前列的均值再除以当前列的标准差,在这种标准化操作下,如果原数据服从正态分布,处理之后的数据服从标准正态分布。...,Z-Score标准化并不会将数据放缩在0-1之间,而是均匀地分布在0的两侧 特征编码 我们拿到的数据通常比较脏乱,特征变量除了数值外可能还会包括带有各种非数字特殊符号等特征值,比如中文。...例如对于上述极简数据集而言,Gender的取值是能是M或者F,独热编码转化后,某行Gender_F取值为1、则Gender_M取值必然为0,反之亦然。...因此很多时候我们在进行独热编码转化的时候会考虑只对多分类离散变量进行转化,而保留二分类离散变量的原始取值。
二、sklearn中的数据无量化处理方法 数据的无量纲化是将不同规格的数据转换为同一规格,或不同分布的数据转换为特定分布的过程。...在sklearn中我们可以使用preprocessing.StandardScaler方法来实现数据的标准化处理。...✨ 注意:StandardScaler默认的是对列操作,我们可以通过下面的命令查看需要标准化数据的列均值与列方差: print("标准化的列平均值:", scaler.mean_) print("\n标准化的列方差值...() # 实例化一个标签编码对象 le = le.fit(y) # 导入需要处理的标签 label = le.transform(y) # 获取编码后的数值分类标签 # 查看转换后的数值分类标签...label结果 print("转换后的数值分类标签结果为:\n{}\n".format(label)) # 我们可以通过标签编码对象le的classes_属性查看标签中具有多少类别 print("原始标签中具有的类别
例如对于性别一列,现在存在男、女和未知(空值)三个状态,我们就可以把该列转换为性别_男(0),性别_女(1)和性别_未知(2)。 4.不处理 对于缺失值,不做任何处理,也是一种处理缺失值的思路。...而将非数值型数据转换为数值型数据的最佳方法是:将所有分类或顺序变量的值域从一列多值的形态转换为多列只包含真值的形态,其中国真值可以用 True、False 或0、1的方式来表示。...比如: 用户 性别 01 男 02 女 转换后: 用户 性别-男 性别-女 01 1 0 02 0 1 而之所以不能直接用数字来表示不同的分类和顺序数据,是因为我们无法准确还原不同类别信息之间的信息差异和相互关联性...基于特征组合的降维 基于特征组合的降维,实际上是将输入特征与目标预测变量做拟合的过程,它将输入特征经过运算,并得出能对目标变量做出很好解释的复合特征,这些特征不是原有的单一特征,而是经过组合和变换后的新特征...06 标准化数据 数据标准化是一个常用的数据预处理操作,目的是处理不同规模和量纲的数据,使其缩放到相同的数据区间和范围,以减少规模、特征、分布差异等对模型的影响。 1.
相信你已经被绕晕了,我们先从熟悉的 MNIST 手写数字分类问题下手,来介绍和元标签相关的各种概念。弄懂基本概念后再回到金融资产数据打标签的问题。...看看从 0 到 9 的十类数字标签的个数,分布还蛮平均。 sns.countplot(y_test); 首先将 0-255 的像素值标准化到 0-1 之间。...其次我们考虑一个二分类问题,只识别数字 3 和 5,因此从原数据集中选取子集。...以二分类任务 (识别一个数字是 3 还是 5) 为例 N = 2 的混淆矩阵的一般形式和具体例子如下: 真负类:预测是 5 (负类),而且分类正确。 假正类:预测是 3 (正类),但是分类错误。...首先用 predict_proba() 函数获取模型的预测正类负的概率,该模型有两列,第一列是预测负类的概率,第二列是预测正类的概率,我们需要第二列,因此在下面代码中,用 [:,1] 获取第二列作为 y_score
它通常被称为“max-min”归一化,它允许分析人员获取集合中最大 x 值和最小 x 值之间的差值,并建立一个基数。 这是一个很好的开始策略,实际上,线性归一化可以将数据点归一化为任何基数。...下是线性归一化的公式: 假设“x”值为 20,最大数字为 55,最小数字为 5。为了归一化这个数字,让我们从分母开始,结果为50 (55-5) 。...现在用同样的想法计算分子:x - min=15 (20–5)。所以我们标准化的 x 或 x ' 是 15/50 = 0.3。...数字 95 是一个很大的异常值。我们可以通过重新分配新的最大值将其从数据中剔除。由于删除95后,数据集的范围是 11-19,因此可以将最大值重新分配为 19。...我们在下面的计算中使用记录 E 作为示例。其余行以相同方式进行标准化。
领取专属 10元无门槛券
手把手带您无忧上云