zoukankan      html  css  js  c++  java
  • 标准化、正则化阅读记录

    处理和转换数据

    1)过滤掉或删除非规整数或有缺陷的数据

    2)填充非规整或有缺陷的数据(零值,全局期望,中值)

    3)对异常值做鲁棒处理 (鲁棒回归)

    4)对可能的异常值进行转换

       利用如对数或高斯核对其转换,有助于降低变量存在的值跳跃的影响,并将非线性关系变为线性的。

    -----------------------------------------------

    矩阵分解:协同过滤

    最小二乘法ALS

    ------------------------------------------------

    1、派生特征

    eg:mean,median,方差,和,差,max,min,count等等。

    2、文本特征

    自然语言处理便是专注于文本内容的处理、表示和建模的一个领域。

    词袋法,处理过程:

              分词 -》 删除停用词 -》 提取词干(eg:复数变为单数……)-》向量化

    3、正则化特征

    1)正则化特征:这实际上是对数据集中的单个特征进行转换。比如减去平均值(特征对齐)或是进行标准的正则转换(以便使该特征的平均值和标准差分别为0和1)

    2)正则化特征向量 Normalizer

    用spark时,大部分情况下Normalizer所需的输入为一个RDD。

    from Pyspark.mllib.feature import Normalizer

    normalizer = Normalizer()

    Vector = sc.parallelize([x])

    normalized_x_mllib = normalizer.transform(vector.first().toArray())

    ------------------------------------------------

    朴素贝叶斯模型要求特征值非负。

    注:模型预测的值并不是恰好为1或0,预测的输出通常是实数,然后必须转换为预测类别。这是通过在分类器决策函数或打分函数中使用阈值来实现的。在一些模型中,阈值本身其实也可以作为模型参数进行调优。

    决策树的预测阈值需要明确给出:

    val dtTotalCorrect = data.map{point =>

       val score = dtmodel.predict(point.features)

       val predicted = if(score > 0.5) 1 else 0

       if(predicted==point.label) 1 else 0

    }.sum

    ------------------------------------------------

    准确率:用于评价结果的质量。

    召回率:评价结果的完整性。

    ------------------------------------------------

    改进模型性能以及参数调优

    1)特征标准化

    许多模型,其中最常见的假设形式是特征满足正态分布。

    RowMatrix是一个向量组成的RDD,每个向量是分布矩阵的一行。

    ComputeColumnSummaryStatics()  统计特征

    观察均值与方差,若不符合标准高斯分布,可以对每个特征进行标准化。

    StandardScaler、Normalizer

    原始特征是稀疏的(大部分维度是0),但对每个项减去均值后,将会得到一个非稀疏的。

    若数据规模大,不建议丢失数据的稀疏性,这因为相应的稠密表示需要的内存和计算量为爆炸性增长,可将StandardScaler的withmean设置为false来避免该问题。

    2)正则化

    避免过拟合

    若正则化太高,也会导致模型欠拟合。

    MLlib中可用的正则化形式:

    SimpleUpdater:相当于没有正则化,是逻辑回归的默认配置。

    SquaredL2Updater:基于权重向量的L2正则化,是SVM模型的默认值。

    L1Updater:基于权重向量的L1正则化,会导致得到一个稀疏的权重向量(不重要的权重的值接近于0)

    注意:决策树通常不需要特征的标准化和归一化。

    lamda参数对NaiveBayes的影响:

      该参数可控制相加或平滑。解决数据中某个类别和某个特征值的组合没有同时出现的问题。

    当训练集与测试集相同时,通常在正则化参数比较小时的情况下可得到较高的性能,反之成立。   trainwithParams(…)

    若分布不符合正态分布,方法:

                  一种是对目标变量进行变换,即对数变换。

                  另一种是取平方根,适用于目标变量不为负数并且值域很大的情况。

    分类模型处理表示类别的离散变量。

    回归模型处理可以取任意实数的目标变量。

  • 相关阅读:
    使用Python画ROC曲线以及AUC值
    Machine Learning : Pre-processing features
    资源 | 数十种TensorFlow实现案例汇集:代码+笔记
    在 Mac OS X 终端里使用 Solarized 配色方案
    编译安装GCC 4.7.2
    Office -Word 公式插件Aurora的使用 ——在 Word 中插入 LaTex 公式
    LaTeX 写中文论文而中文显示不出来
    LaTeX 公式编辑之 把符号放在正下方
    Python 判断字符串是否含有指定字符or字符串
    Python 中使用 pandas Dataframe 删除重复的行
  • 原文地址:https://www.cnblogs.com/llphhl/p/5772860.html
Copyright © 2011-2022 走看看