SparkML机器学习之特征工程(二)特征转化(Binarizer、StandardScaler、MaxAbsScaler、Normalizer、N

  • 时间:
  • 浏览:4
  • 来源:大发快三代理—大发大发彩票app

现在淘宝的需求变了,一帮人人太好把人分为3000以上和3000以下太不精准了,应该分为20岁以下,20-300岁,300-40岁,36-3000岁,3000以上,那么就得用到数值离散化的处置土法子了。离散化我希望把底部形态进行适当的离散处置,比如底下所说的年龄是个连续的底部形态,许多我把它分为不同的年龄阶段我希望把它离散化了,另另2个 更利于一帮人分析用户行为进行精准推荐。Bucketizer能方便的将一堆数据分成不同的区间。

运行结果为:

输出结果为:

输出结果:

有事先要对底部形态值进行许多多项式的转化,比如平方啊,三次方啊等等,那就用到了PolynomialExpansion。

为哪些数据需要归一化?以房价预测为案例,房价(y)通常与离市中心距离(x1)、面积(x2)、楼层(x3)有关,设y=ax1+bx2+cx3,那么abc我希望一帮人需要重点处置的参数。许多有个难题,面积一般数值是比较大的,3000平甚至更多,而距离一般总要几公里而已,b参数我希望许多变化都能对房价产生巨大影响,而a的变化对房价的影响相对就小那么来越多那么来越多那么来越多那么来越多了。显然这会影响最终的准确性,毕竟距离另另2个 个非常大的影响因素啊。 那么来越多那么来越多那么来越多那么来越多, 需要使用底部形态的归一化, 取值跨度大的底部形态数据, 一帮人浓缩一下, 跨度小的括展一下, 使得一帮人的跨度尽量统一

归一化我希望将所有底部形态值都等比地缩小到0-1许多-1到1之间的区间内。其目的是为了使底部形态总要相同的规模中。

输出结果为:

N-Gram认为语言中每个单词只与其前面长度 N-1 的上下文有关。主要分为bigram和trigram,bigram假设下另另2个 词的跳出 依赖它前面的另另2个 词,trigram假设下另另2个 词的跳出 依赖它前面的另另2个 词。在SparkML中用NGram类实现,setN(2)为bigram,setN(3)为trigram。

当一帮人的输入数据为文本(一句话)的事先,一帮人会想把一帮人切分为单词再进行数据处置,这事先就要用到Tokenizer类了。

为哪些要有正则化?我希望为了处置过拟合。来看一下正则化是为什么我么我计算的:

输出结果为:

输出结果:

有事先一帮人本来给定分类标准,需要让spark自动给一帮人分箱。

一帮人都很喜欢sql一句话,简单好用又熟悉,那么Spark ML很人性化的为一帮人提供了SQLTransformer类,使得一帮人能用一帮人熟悉的SQL来做底部形态转化。它支持SparkSql中的所有select确定 一句话,sum(),count(),group by,order by等等需要用!形如"SELECT ...FROM __THIS__"。'__THIS__'代表输入数据的基础表。

运行结果:

输出结果为:

输出结果为:

假设淘宝现在有个需求,我得根据年龄来进行物品推荐,把3000以上的人分为老年,3000以下分为非老年人,那么一帮人根据二值化需要很简单的把3000以上的定为1,3000以下的定为0。另另2个 就方便一帮人后续的推荐了。Binarizer我希望根据阈值进行二值化,大于阈值的为1.0,小于等于阈值的为0.0

为哪些要转化数据呢,我希望要让它成为有效的底部形态,许多原始数据是那么来越多那么来越多那么来越多那么来越多脏数据无用数据的。常用的土法子是标准化,归一化,底部形态的离散化等等。比如我输入的数据是一句话,我得把它切分为另另2个 个单词进行分析,这我希望四种 转化。

对于同另另2个 底部形态,不同的样本中的取值许多会相差非常大,许多异常小或异常大的数据会误导模型的正确训练;另外,许多数据的分布很分散也会影响训练结果。以上四种 土法子都体现在方差会非常大。此时,一帮人需要将底部形态中的值进行标准差标准化,即转换为均值为0,方差为1的正态分布。许多底部形态非常稀疏,许多有少量的0(现实应用中那么来越多那么来越多那么来越多那么来越多底部形态都具有这些特点),Z-score 标准化的过程几乎我希望另另2个 除0的过程,结果不可预料。那么来越多那么来越多那么来越多那么来越多在训练模型事先,一定要对底部形态的数据分布进行探索,并考虑是是是否是必要将数据进行标准化。基于底部形态值的均值(mean)和标准差(standard deviation)进行数据的标准化。它的计算公式为:标准化数据=(原数据-均值)/标准差。标准化后的变量值围绕0上下波动,大于0说明高于平均水平,小于0说明低于平均水平。