python3机器学习——sklearn0.19.1版本——数据处理(一)(数据标准化、tfidf、独热编码)

一、数据预处理基础知识点

链接:https://www.zhihu.com/question/29316149/answer/110159647

通过特征提取,我们能得到未经处理的特征,这时的特征可能有以下问题:

  • 不属于同一量纲:即特征的规格不一样,不能够放在一起比较。无量纲化可以解决这一问题。
  • 信息冗余:对于某些定量特征,其包含的有效信息为区间划分,例如学习成绩,假若只关心“及格”或不“及格”,那么需要将定量的考分,转换成“1”和“0”表示及格和未及格。二值化可以解决这一问题。
  • 定性特征不能直接使用:某些机器学习算法和模型只能接受定量特征的输入,那么需要将定性特征转换为定量特征。最简单的方式是为每一种定性值指定一个定量值,但是这种方式过于灵活,增加了调参的工作。通常使用哑编码的方式将定性特征转换为定量特征:假设有N种定性值,则将这一个特征扩展为N种特征,当原始特征值为第i种定性值时,第i个扩展特征赋值为1,其他扩展特征赋值为0。哑编码的方式相比直接指定的方式,不用增加调参的工作,对于线性模型来说,使用哑编码后的特征可达到非线性的效果
  • 存在缺失值:缺失值需要补充。
  • 信息利用率低:不同的机器学习算法和模型对数据中信息的利用是不同的,之前提到在线性模型中,使用对定性特征哑编码可以达到非线性的效果。类似地,对定量变量多项式化,或者进行其他的转换,都能达到非线性的效果。

  我们使用sklearn中的preproccessing库来进行数据预处理,可以覆盖以上问题的解决方案。


二、无量钢化——数据标准化

无量纲化使不同规格的数据转换到同一规格。常见的无量纲化方法标准化区间缩放法

标准化的前提特征值服从正态分布,标准化后,其转换成标准正态分布。

区间缩放法利用了边界值信息,特征的取值区间缩放到某个特点的范围,例如[0, 1]等。

Standardization即标准化,尽量将数据转化为均值为零,方差为一的数据,形如标准正态分布(高斯分布)

关于高斯分布,文章链接为:http://blog.csdn.net/u010182633/article/details/45694437

实际中我们会忽略数据的分布情况,仅仅是通过改变均值来集中数据,然后将非连续特征除以他们的标准差。

sklearn中 scale函数提供了简单快速的singlearray-like数据集操作。

Standardization, or mean removal and variance scaling:标准化,均值去除和按方差比例缩放。

数据集的标准化:当个体特征太过或明显不遵从高斯正态分布时,标准化表现的效果较差。

实际操作中,经常忽略特征数据的分布形状,移除每个特征均值,划分离散特征的标准差,从而等级化,进而实现数据中心化。scale函数可实现数据的均值为0,方差为1,代码如下:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:ZhengzhengLiu

from sklearn import preprocessing
import numpy as np

X = np.array([[1.,-1.,2.],[2.,0.,0.],[0.,1.,-1.]])
X_scaled = preprocessing.scale(X)

print("========X==========")
print(X)
print("========X_scaled==========")
print(X_scaled)
print("========mean==========")
#scale函数可实现数据的均值为0,方差为1
print(X_scaled.mean(axis=0))    #按列计算均值
print("========var==========")
print(X_scaled.var(axis=0))     #按列计算方差

#运行结果:
========X==========
[[ 1. -1.  2.]
 [ 2.  0.  0.]
 [ 0.  1. -1.]]
========X_scaled==========
[[ 0.         -1.22474487  1.33630621]
 [ 1.22474487  0.         -0.26726124]
 [-1.22474487  1.22474487 -1.06904497]]
========mean==========
[ 0.  0.  0.]
========var==========
[ 1.  1.  1.]



1、StandardScaler

标准化需要计算特征的均值和标准差,公式表达为:,使用preproccessing库的

StandardScaler类对数据进行标准化。

Python: sklearn库中数据预处理函数fit_transform()和transform()的区别详见博客链接:


http://blog.csdn.net/quiet_girl/article/details/72517053




#2.StandardScaler
from sklearn.preprocessing import StandardScaler

X1 = [[1,2,3,2],
      [4,5,7,9],
      [8,7,4,3],
      [5,9,4,2],
      [1,4,7,8]]

ss = StandardScaler()   #引入标准化的方法,要有数据的均值和方差
ss.fit(X1)    #用标准化的方法进行训练数据集X1(fit),得到标准化方法中的参数
#ss = StandardScaler.fit(X1)   等价于上面两句
print(ss)
print("========mean_==========")
print(ss.mean_)
print("========var_==========")
print(ss.var_)

print("===transform实现标准化转换===")
print(ss.transform(X1))

#fit与transform结合成一句
print("===fit_transform训练并标准化转换===")
X1_train = ss.fit_transform(X1)
print(X1_train)

#运行结果:
StandardScaler(copy=True, with_mean=True, with_std=True)
========mean_==========
[ 3.8  5.4  5.   4.8]
========var_==========
[ 6.96  5.84  2.8   9.36]
===transform实现标准化转换===
[[-1.06133726 -1.40693001 -1.19522861 -0.91520863]
 [ 0.0758098  -0.16552118  1.19522861  1.37281295]
 [ 1.59200589  0.66208471 -0.5976143  -0.58834841]
 [ 0.45485883  1.4896906  -0.5976143  -0.91520863]
 [-1.06133726 -0.57932412  1.19522861  1.04595272]]
===fit_transform训练并标准化转换===
[[-1.06133726 -1.40693001 -1.19522861 -0.91520863]
 [ 0.0758098  -0.16552118  1.19522861  1.37281295]
 [ 1.59200589  0.66208471 -0.5976143  -0.58834841]
 [ 0.45485883  1.4896906  -0.5976143  -0.91520863]
 [-1.06133726 -0.57932412  1.19522861  1.04595272]]

注:1)若设置with_mean=False 或者 with_std=False,则不做centering 或者scaling处理。

2)scale和StandardScaler可以用于回归模型中的目标值处理


2、MinMaxScaler


将数据特征缩放至某一范围(scalingfeatures to a range),被称为“区间缩放法”,常见的一种为利用两个最值进行缩放。即:另一种标准化方法是将数据缩放至给定的最小值与最大值之间,通常是0与1之间,可用MinMaxScaler实现者将最大的绝对值缩放至单位大小,可用MaxAbsScaler实现。公式表达为:

使用这种标准化方法的原因是,有时数据集的标准差非常非常小,有时数据中有很多很多零(稀疏数据),

需要保存住0元素。


from sklearn.preprocessing import MinMaxScaler

X = [[1,2,3,2],
      [4,5,7,9],
      [8,7,4,3],
      [5,9,4,2],
      [1,4,7,8]]

mms = MinMaxScaler()
mms.fit(X)
print(mms)
print("最大值",mms.data_max_)
print("最小值",mms.data_min_)

print("===区间缩放,返回值为缩放到[0, 1]区间的数据===")
print(mms.transform(X))

#与上面最后一句等价
# mms_fit = mms.fit_transform(X)
# print(mms_fit)

#运行结果:
MinMaxScaler(copy=True, feature_range=(0, 1))
最大值 [ 8.  9.  7.  9.]
最小值 [ 1.  2.  3.  2.]
===区间缩放,返回值为缩放到[0, 1]区间的数据===
[[ 0.          0.          0.          0.        ]
 [ 0.42857143  0.42857143  1.          1.        ]
 [ 1.          0.71428571  0.25        0.14285714]
 [ 0.57142857  1.          0.25        0.        ]
 [ 0.          0.28571429  1.          0.85714286]]

3、Normalizer——归一化

标准化与归一化的区别:

标准化是依照特征矩阵的列处理数据,其通过求z-score的方法,将样本的特征值转换到同一量纲下。

归一化是依照特征矩阵的行处理数据,其目的在于样本向量在点乘运算或其他核函数计算相似性时,

拥有统一的标准,也就是说都转化为“单位向量”。使用preproccessing库的Normalizer类对数据进行归一化


官方文档翻译:

sklearn.preprocessing.Normalizer(norm=’l2’, copy=True)

norm:可以为l1、l2或max,默认为l2

若为l1时,样本各个特征值除以各个特征值的绝对值之和

若为l2时,样本各个特征值除以各个特征值的平方之和

若为max时,样本各个特征值除以样本中特征值最大的值


归一化的过程是将每个样本缩放到单位范数(每个样本的范数为1),如果后面要使用如二次型(点积)或者其它核方法计算两个样本之间的相似性这个方法会很有用。

Normalization主要思想是对每个样本计算其p-范数,然后对该样本中每个元素除以该范数,这样处理的结果是使得每个处理后样本的p-范数(l1-norm,l2-norm)等于1。

        p-范数的计算公式:||X||p=(|x1|^p+|x2|^p+...+|xn|^p)^1/p

该方法主要应用于文本分类和聚类中。例如,对于两个TF-IDF向量的l2-norm进行点积,就可以得到这两个向量的余弦相似性。TF-IDF(term frequency–inverse document frequency)是一种用于信息检索与数据挖掘的常用加权技术TF意思是词频(Term Frequency),IDF意思是逆向文件频率(Inverse Document Frequency)。



#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:ZhengzhengLiu

from sklearn.preprocessing import Normalizer

X = [[1,2,3,2],
      [4,5,7,9],
      [8,7,4,3],
      [5,9,4,2],
      [1,4,7,8]]

nm = Normalizer()
nm.fit(X)
#nm = Normalizer().fit(X)     #等价于上面两句
print(nm)
print("norm",nm.norm)

nm1 = nm.fit_transform(X)
print("=======fit_transform=======")
print(nm1)

#print(nm.transform(X))       #等价于上面两句

#运行结果:
Normalizer(copy=True, norm='l2')
norm l2
=======fit_transform=======
[[ 0.23570226  0.47140452  0.70710678  0.47140452]
 [ 0.30588765  0.38235956  0.53530338  0.6882472 ]
 [ 0.68100522  0.59587957  0.34050261  0.25537696]
 [ 0.4454354   0.80178373  0.35634832  0.17817416]
 [ 0.0877058   0.35082321  0.61394061  0.70164642]]

总结:数据标准化的意义

(1)消除量纲的影响

(2)对于数据分布不均匀的影响(比如:某列数据跟其他差距很大)

(3)数据标准化用哪个方法没有评价标准,一般数值类型的数据用StandardScalerMinMaxScaler,

对文本数据类型用Normalizer(归一化)。


三、sigmoid函数


Logistic函数的表示形式如下:


它的函数图像如下,由于函数图像很像一个“S”型,所以该函数又叫 sigmoid 函数。


满足的性质:

1.对称性,关于(0,0.5)中心对称

在逻辑回归logistic中,将大于0.5的值映射为1,小于0.5映射为0,成为一个分类的问题。


四、文本数据的处理——TF-IDF

TF-IDF(term frequency–inverse document frequency)是一种用于信息检索与数据挖掘的常用加权技术

TF意思是词频(Term Frequency),即:某个词条在文本中出现的次数。

如果某个词很重要,它应该在这篇文章中多次出现。于是,我们进行"词频"(Term Frequency,缩写为TF)统计。

IDF意思是逆向文件频率(Inverse Document Frequency),即:一个词条的重要性。

用统计学语言表达,就是在词频的基础上,要对每个词分配一个"重要性"权重。最常见的词("的"、"是"、"在")给予最小的权重,较常见的词("中国")给予较小的权重,较少见的词("蜜蜂"、"养殖")给予较大的权重。

这个权重叫做"逆文档频率"(Inverse Document Frequency,缩写为IDF),它的大小与一个词的常见程度成反比

知道了"词频"(TF)和"逆文档频率"(IDF)以后,将这两个值相乘,就得到了一个词的TF-IDF值

某个词对文章的重要性越高,它的TF-IDF值就越大。所以,排在最前面的几个词,就是这篇文章的关键词


该算法的步骤为:

第一步,计算词频


考虑到文章有长短之分,为了便于不同文章的比较,进行"词频"标准化。


或者


第二步,计算逆文档频率。

这时,需要一个语料库(corpus),用来模拟语言的使用环境。


如果一个词越常见,那么分母就越大,逆文档频率就越小越接近0。分母之所以要加1,是为了避免分母为0(即所有文档都不包含该词)。log表示对得到的值取对数(以e为底数)。

第三步,计算TF-IDF。


可以看到,TF-IDF与一个词在文档中的出现次数成正比,与该词在整个语言中的出现次数成反比。
所以,自动提取关键词的算法就很清楚了,就是计算出文档的每个词的TF-IDF值,然后按降序排列,取排在最前面的几个词。

TF-IDF算法的优点是简单快速,结果比较符合实际情况。缺点是,单纯以"词频"衡量一个词的重要性,不够全面,

有时重要的词可能出现次数并不多。而且,这种算法无法体现词的位置信息,出现位置靠前的词与出现位置靠后的词,都被视为重要性相同,这是不正确的。(一种解决方法是,对全文的第一段和每一段的第一句话,给予较大的权重。)还可以用TF-IDF结合余弦相似性,衡量文档之间的相似程度

(文章链接:http://www.ruanyifeng.com/blog/2013/03/cosine_similarity.html)。


sklearn.feature_extraction.text.TfidfVectorizer:可以把一大堆文档转换成TF-IDF特征的矩阵

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:ZhengzhengLiu

from sklearn.feature_extraction.text import TfidfVectorizer

text1 = [
    "this is python",
    "this is sample",
    "anaconda sklearn is good"
]

text2 = [
    "this is another",
    "today is sunny",
    "lr randomforest is model"
]

tfidf = TfidfVectorizer()
tf = tfidf.fit_transform(text2)     #训练并转换

print(tfidf.get_feature_names)
print(tfidf.get_stop_words)     #停止词
print("====TF-IDF特征的矩阵====")
print(tf.toarray())
print("====输出的各个文本各个词的TF-IDF值=====")
print(tf)

#运行结果:
<bound method CountVectorizer.get_feature_names of TfidfVectorizer(analyzer='word', binary=False, decode_error='strict',
        dtype=<class 'numpy.int64'>, encoding='utf-8', input='content',
        lowercase=True, max_df=1.0, max_features=None, min_df=1,
        ngram_range=(1, 1), norm='l2', preprocessor=None, smooth_idf=True,
        stop_words=None, strip_accents=None, sublinear_tf=False,
        token_pattern='(?u)\\b\\w\\w+\\b', tokenizer=None, use_idf=True,
        vocabulary=None)>
<bound method VectorizerMixin.get_stop_words of TfidfVectorizer(analyzer='word', binary=False, decode_error='strict',
        dtype=<class 'numpy.int64'>, encoding='utf-8', input='content',
        lowercase=True, max_df=1.0, max_features=None, min_df=1,
        ngram_range=(1, 1), norm='l2', preprocessor=None, smooth_idf=True,
        stop_words=None, strip_accents=None, sublinear_tf=False,
        token_pattern='(?u)\\b\\w\\w+\\b', tokenizer=None, use_idf=True,
        vocabulary=None)>
====TF-IDF特征的矩阵====
[[ 0.65249088  0.38537163  0.          0.          0.          0.
   0.65249088  0.        ]
 [ 0.          0.38537163  0.          0.          0.          0.65249088
   0.          0.65249088]
 [ 0.          0.32274454  0.54645401  0.54645401  0.54645401  0.          0.
   0.        ]]
====输出的各个文本各个词的TF-IDF值=====
  (0, 6)	0.652490884513
  (0, 1)	0.385371627466
  (0, 0)	0.652490884513
  (1, 1)	0.385371627466
  (1, 7)	0.652490884513
  (1, 5)	0.652490884513
  (2, 1)	0.32274454218
  (2, 2)	0.546454011634
  (2, 4)	0.546454011634
  (2, 3)	0.546454011634

五、离散的特征数据——独热编码(也称为:哑编码)

定性特征不能直接使用:

某些机器学习算法和模型只能接受定量特征的输入,那么需要将定性特征转换为定量特征。最简单的方式是为每一种定性值指定一个定量值,但是这种方式过于灵活,增加了调参的工作。通常使用哑编码的方式将定性特征转换为定量特征:假设有N种定性值,则将这一个特征扩展为N种特征,当原始特征值为第i种定性值时,第i个扩展特征赋值为1,其他扩展特征赋值为0。哑编码的方式相比直接指定的方式,不用增加调参的工作,对于线性模型来说,使用哑编码后的特征可达到非线性的效果

使用preproccessing库的OneHotEncoder类对数据进行独热编码/哑编码.


举个例子:

在机器学习任务中,对于如性别“male”和“female这样的特征,通常我们需要对其进行特征数字化。

有如下的三个特征属性:
  • 性别:["male","female"]
  • 国家:["US""China","England"]
  • 城市:["Beijing","London","NewYork","Shanghai"]
对于 某一个样本,如[" male ", " China " " Shanghai " ],我们需要将这个分类值的特征数字化,最直接的方法,我们可以采用 序列化的方式:[0,1,3] 。但是这样的特征处理并不能直接放入机器学习算法中。

可以采用One-Hot编码的方式对上述的样本“["male","China""Shanghai"]”编码,“male”则对应着[1,0],同理"China"对应着[0,1,0],"Shanghai"对应着[0,0,0,1]。则完整的特征数字化的结果为:[1,0,0,1,0,0,0,0,1]


代码实现如下:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:ZhengzhengLiu

#独热编码/哑编码
from sklearn.preprocessing import OneHotEncoder

#X为训练的数据,按列看,每列中的四个数字表示每个特征可能的取值范围,
# 即每个特征的可能的取值个数

X = [[0,0,3],
    [1,1,0],
    [0,2,1],
    [1,0,2]]

enc = OneHotEncoder()   #创建独热编码方法
enc.fit(X)            #训练
print(enc.n_values_)    #打印每一维数据可能的取值个数
print(enc.feature_indices_)

print("======独热编码=====")
enc1 = enc.transform(X).toarray()
enc2 = enc.transform([[0,1,3]]).toarray()

print(enc1)
print("===============================")
print(enc2)

#运行结果:
[2 3 4]
[0 2 5 9]
======独热编码=====
[[ 1.  0.  1.  0.  0.  0.  0.  0.  1.]
 [ 0.  1.  0.  1.  0.  1.  0.  0.  0.]
 [ 1.  0.  0.  0.  1.  0.  1.  0.  0.]
 [ 0.  1.  1.  0.  0.  0.  0.  1.  0.]]
===============================
[[ 1.  0.  0.  1.  0.  0.  0.  0.  1.]]




sklearn0.19文文档 PDF格式高清。 .1. 广义线性模型 1.1.1. 普通最小二乘法 1.1.1.1. 普通最小二乘法复杂度 1.1.2. 岭回归 1.1.2.1. 岭回归的复杂度 1.1.2.2. 设置正则化参数:广义交叉验证 1.1.3. Lasso 1.1.3.1. 设置正则化参数 1.1.3.1.1. 使用交叉验证 1.1.3.1.2. 基于信息标准的模型选择 1.1.3.1.3. 与 SVM 的正则化参数的比较 1.1.4. 多任务 Lasso 1.1.5. 弹性网络 1.1.6. 多任务弹性网络 1.1.7. 最小角回归 1.1.8. LARS Lasso 1.1.8.1. 数学表达式 1.1.9. 正交匹配追踪法(OMP) 1.1.10. 贝叶斯回归 1.1.10.1. 贝叶斯岭回归 1.1.10.2. 主动相关决策理论 - ARD 1.1.11. logistic 回归 1.1.12. 随机梯度下降, SGD 1.1.13. Perceptron(感知器) 1.1.14. Passive Aggressive Algorithms(被动攻击算法) 1.1.15. 稳健回归(Robustness regression): 处理离群点 (outliers)和模型错误 1.1.15.1. 各种使用场景与相关概念 1.1.15.2. RANSAC: 随机抽样一致性算法(RANdom SAmple Consensus) 1.1.15.2.1. 算法细节 1.1.15.3. Theil-Sen 预估器: 广义值估计 1.1.15.3.1. 算法理论细节 1.1.15.4. Huber 回归 1.1.15.5. 注意 1.1.16. 多项式回归:用基函数展开线性模型 1.2. 线性和二次判别分析 1.2.1. 使用线性判别分析来降维 1.2.2. LDA 和 QDA 分类器的数学公式 1.2.3. LDA 的降维数学公式 1.2.4. Shrinkage(收缩) 1.2.5. 预估算法 1.3. 内核岭回归 1.4. 支持向量机 1.4.1. 分类 1.4.1.1. 多元分类 1.4.1.2. 得分和概率 1.4.1.3. 非均衡问题 1.4.2. 回归 1.4.3. 密度估计, 异常(novelty)检测 1.4.4. 复杂度 1.4.5. 使用诀窍 1.4.6. 核函数 1.4.6.1. 自定义核 1.4.6.1.1. 使用 python 函数作为内核 1.4.6.1.2. 使用 Gram 矩阵 1.4.6.1.3. RBF 内核参数 1.4.7. 数学公式 1.4.7.1. SVC 1.4.7.2. NuSVC 1.4.7.3. SVR 1.4.8. 实现细节 1.5. 随机梯度下降 1.5.1. 分类 1.5.2. 回归 1.5.3. 稀疏数据的随机梯度下降 1.5.4. 复杂度 1.5.5. 实用小贴士 1.5.6. 数学描述 1.5.6.1. SGD 1.5.7. 实现细节 1.6. 最近邻 1.6.1. 无监督最近邻 1.6.1.1. 找到最近邻 1.6.1.2. KDTree 和 BallTree 类 1.6.2. 最近邻分类 1.6.3. 最近邻回归 1.6.4. 最近邻算法 1.6.4.1. 暴力计算 1.6.4.2. K-D 树 1.6.4.3. Ball 树 1.6.4.4. 最近邻算法的选择 1.6.4.5. leaf_size 的影响 1.6.5. 最近质心分类 1.6.5.1. 最近缩小质心 1.7. 高斯过程 1.7.1. 高斯过程回归(GPR) 1.7.2. GPR 示例 1.7.2.1. 具有噪声级的 GPR 估计 1.7.2.2. GPR 和内核岭回归(Kernel Ridge Regression)的比 较 1.7.2.3. Mauna Loa CO2 数据的 GRR 1.7.3. 高斯过程分类(GPC) 1.7.4. GPC 示例 1.7.4.1. GPC 概率预测 1.7.4.2. GPC 在 XOR 数据集上的举例说明 1.7.4.3. iris 数据集上的高斯过程分类(GPC) 1.7.5. 高斯过程内核 1.7.5.1. 高斯过程内核 API 1.7.5.2. 基础内核 1.7.5.3. 内核操作 1.7.5.4. 径向基函数内核 1.7.5.5. Matérn 内核 1.7.5.6. 有理二次内核 1.7.5.7. 正弦平方内核 1.7.5.8. 点乘内核 1.7.5.9. 参考文献 1.7.6. 传统高斯过程 1.7.6.1. 回归实例介绍 1.7.6.2. 噪声数据拟合 1.7.6.3. 数学形式 1.7.6.3.1. 初始假设 1.7.6.3.2. 最佳线性无偏预测(BLUP) 1.7.6.3.3. 经验最佳线性无偏估计(EBLUP) 1.7.6.4. 关联模型 1.7.6.5. 回归模型 1.7.6.6. 实现细节 1.8. 交叉分解 1.9. 朴素贝叶斯 1.9.1. 高斯朴素贝叶斯 1.9.2. 多项分布朴素贝叶斯 1.9.3. 伯努利朴素贝叶斯 1.9.4. 堆外朴素贝叶斯模型拟合 1.10. 决策树 1.10.1. 分类 1.10.2. 回归 1.10.3. 多值输出问题 1.10.4. 复杂度分析 1.10.5. 实际使用技巧 1.10.6. 决策树算法: ID3, C4.5, C5.0 和 CART 1.10.7. 数学表达 1.10.7.1. 分类标准 1.10.7.2. 回归标准 1.11. 集成方法 1.11.1. Bagging meta-estimator(Bagging 元估计器) 1.11.2. 由随机树组成的森林 1.11.2.1. 随机森林 1.11.2.2. 极限随机树 1.11.2.3. 参数 1.11.2.4. 并行化 1.11.2.5. 特征重要性评估 1.11.2.6. 完全随机树嵌入 1.11.3. AdaBoost 1.11.3.1. 使用方法 1.11.4. Gradient Tree Boosting(梯度树提升) 1.11.4.1. 分类 1.11.4.2. 回归 1.11.4.3. 训练额外的弱学习器 1.11.4.4. 控制树的大小 1.11.4.5. Mathematical formulation(数学公式) 1.11.4.5.1. Loss Functions(损失函数) 1.11.4.6. Regularization(正则化) 1.11.4.6.1. 收缩率 (Shrinkage) 1.11.4.6.2. 子采样 (Subsampling) 1.11.4.7. Interpretation(解释性) 1.11.4.7.1. Feature importance(特征重要性) 1.11.4.7.2. Partial dependence(部分依赖) 1.11.5. Voting Classifier(投票分类器) 1.11.5.1. 多数类标签 (又称为 多数/硬投票) 1.11.5.1.1. 用法 1.11.5.2. 加权平均概率 (软投票) 1.11.5.3. 投票分类器(VotingClassifier)在网格搜索 (GridSearch)应用 1.11.5.3.1. 用法 1.12. 多类和多标签算法 1.12.1. 多标签分类格式 1.12.2. 1对其余 1.12.2.1. 多类学习 1.12.2.2. 多标签学习 1.12.3. 1对1 1.12.3.1. 多类别学习 1.12.4. 误差校正输出代码 1.12.4.1. 多类别学习 1.12.5. 多输出回归 1.12.6. 多输出分类 1.12.7. 链式分类器 1.13. 特征选择 1.13.1. 移除低方差特征 1.13.2. 单变量特征选择 1.13.3. 递归式特征消除 1.13.4. 使用 SelectFromModel 选取特征 1.13.4.1. 基于 L1 的特征选取 1.13.4.2. 基于 Tree(树)的特征选取 1.13.5. 特征选取作为 pipeline(管道)的一部分 1.14. 半监督学习 1.14.1. 标签传播 1.15. 等式回归 1.16. 概率校准 1.17. 神经网络模型(有监督) 1.17.1. 多层感知器 1.17.2. 分类 1.17.3. 回归 1.17.4. 正则化 1.17.5. 算法 1.17.6. 复杂性 1.17.7. 数学公式 1.17.8. 实用技巧 1.17.9. 使用 warm_start 的更多控制
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值