博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sklearn.discriminant_analysis.LinearDiscriminantAnalysis 笔记
阅读量:4556 次
发布时间:2019-06-08

本文共 3425 字,大约阅读时间需要 11 分钟。

(2018第一篇随笔)

承接上个,这次来读sklearnpython代码说明以及源码

/*******************************************************代码说明*************************************************************/

   

class sklearn.discriminant_analysis.LinearDiscriminantAnalysis(solver='svd', shrinkage=None, priors=None, n_components=None, store_covariance=False, tol=0.0001)

   

  • 类的参数

       

    Solver:string,可选

    有三种参数值:

    'svd':奇异值分解(默认设置)。不计算协方差矩阵,推荐在数据维数较大时使用

    'lsqr':最小平方解,可以进行shrinkage

    'eigen':特征值分解,可以进行shrinkage

       

    Shrinkage:string/float,可选

    收缩参数,有三种可能:

    None:不进行收缩(默认设置)

    'auto':根据Ledoit-Wolf lemma自动选择收缩

    0-1之间的浮点数:固定的收缩参数

    (注意收缩只在'lsqr''eigen'时才有效)

       

    Priors:array数组(大小为类别数),可选。类先验概率

       

    n_components:整形,可选

    维数约减的维数(<类别数-1)

       

    Store_covariance:bool,可选

    计算类协方差矩阵(默认为false),只用于'svd'的情况

       

    Tol:浮点数,可选(默认1.0e-4)

    秩估计的阈值在'svd'

       

  • 类的属性

       

    Coef_:array数组,大小为(#features)或(#classes,#features)

    (多个)权值向量

       

    Intercept:array数组,大小(#features

    截距

       

    Covariance_:array-like? 大小(#features*#features

    所有类的协方差矩阵

       

    Explained_variance_ratio_:array数组,大小(n_components,

    每个选定components解释的方差比。若n_components未设定,那么所有的components组件被存储而且被解释的方差之和为1。只在'svd'or'eigen'时可用

       

    Means_:arrray-like,大小(#类别,#特征)

    类均值

       

    Priors_:array-like,大小(#类别)

    类的先验,和为1

       

    Scalings_:array-like,大小(rank秩,类别数-1

    由类质心张成空间中特征的规模scaling?

    (Scaling of the features in the space spanned by the class centroids.)

       

    Xbar_:array-like,大小(#features

    所有样本的均值

       

    Classes_:array-like,大小(#classes

    唯一的类标

       

       

    Examples:

     

    1 >>> import numpy as np 2 >>> from sklearn.discriminant_analysis import LinearDiscriminantAnalysis 3 >>> X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]]) 4 >>> y = np.array([1, 1, 1, 2, 2, 2]) 5 >>> clf = LinearDiscriminantAnalysis() 6 >>> clf.fit(X, y) 7 LinearDiscriminantAnalysis(n_components=None, priors=None, shrinkage=None, 8 solver='svd', store_covariance=False, tol=0.0001) 9 >>> print(clf.predict([[-0.8, -1]]))10 [1]

     

     

       

       

  • 类的方法

       

(X)

预测样本的置信度分数

(X, y)

根据给定的训练数据和参数拟合线性判别分析模型

(X[, y])

拟合数据,然后转换

([deep])

得到该估计器的参数

(X)

预测X的类标

(X)

估计对数概率值

(X)

估计概率

(X, y[, sample_weight])

返回对于训练集的平均分类准确率(给定类标)

(**params)

给该估计器设置参数

(X)

投影数据使得最大化类间隔

   

__init__(solver='svd', shrinkage=None, priors=None, n_components=None, store_covariance=False, tol=0.0001)

该类的析构函数。设定参数的默认值

   

decision_function(X)

样本的置信度分数是该样本到(分类)超平面的有符号距离

参数

X{array-like数组,稀疏矩阵},大小=(样本数,特征维数)

样本

返回值

数组;在两类的情况下大小=(样本数,)否则(样本数,类别数)

返回的数组是对于每一个(样本,类别)的置信度分数。在两类的情况下,self.classes_[1]的置信度分数>0意味着这个类将被预测

  

   

fit(X, y)

参数

Xarray-like数组,大小(样本数,特征数)

训练数据

Y:数组,大小(样本数,)

目标值

   

fit_transform(X, y=None, **fit_params)

Xy拟合转换模型(可选参数fit_para),返回X的转换后的版本

参数

X:ndarray,大小[样本数,特征数]

训练集

y:ndarray,大小[样本数]

目标值

返回值

X_new:ndarray大小[样本数,新的特征数]

转换后的数组

   

get_params(deep=True)

   

参数

Deep:布尔型,可选

若为真,将会返回该估计器的参数,而且包含子对象,子对象是估计器

返回值

Params:字符串到任何事的映射

对应于他们的值的参数名

   

   

predict(X)

参数

X{array-like数组,稀疏矩阵},大小=[样本数,特征数]

样本

返回值

C:数组,大小=[样本数]

每个样本的类标

   

predict_log_proba(X)

参数

Xarray-like数组,大小=(样本数,特征数)

输入的数据

返回值

C:数组,大小=(样本数,类别数)

估计的对数概率

   

predict_proba(X)

   

参数

Xarray-like数组,大小=(样本数,特征数)

输入的数据

返回值

C:数组,大小=(样本数,类别数)

估计的概率

   

score(X, y, sample_weight=None)

在多类标分类问题中,这是一个苛刻度量标准的子集准确率,因为对于每个样本你都要求标签集被正确预测

参数

Xarray-like,大小=(样本数,特征数)

测试样本

yarray-like,大小=(样本数)或(样本数,n_outputs)

X的真实类标

Sample_weight:array-like,大小=[样本数],该参数可选

样本的权值?

返回值

Score:浮点型

预测函数self.predict(X) wrt. y.的平均准确率

   

set_params(**params)

该方法既工作于简单的估计器,也在嵌套的对象(比如pipelines)。后者有参数,其形式:

<component>__<parameter>。他可能会更新嵌套对象的每个component

返回:self:

   

transform(X)

参数值

Xarray-like,大小(样本数,特征数)

输入数据

返回值

X_new:array,大小(样本数,n_components

转换后的数据

   

   

下面是四个该算法的实例

1

2

3

4

 

转载于:https://www.cnblogs.com/Jerry-Dong/p/8177094.html

你可能感兴趣的文章
数据模型
查看>>
[LeetCode&Python] Problem 371. Sum of Two Integers
查看>>
HDU-4288 Coder 线段树
查看>>
HDU-1878 欧拉回路 判定是否存在欧拉回路
查看>>
大道至简读后感
查看>>
[New Portal]Windows Azure Virtual Machine (22) 使用Azure PowerShell,设置Virtual Machine Endpoint...
查看>>
hdu 1404
查看>>
ACM/ICPC 之 欧拉回路两道(POJ1300-POJ1386)
查看>>
避免死锁的银行家算法
查看>>
resultMap自定义某个javaBean的封装规则代码
查看>>
oracle tkprof 工具详解
查看>>
[Django实战] 第3篇 - 用户认证(初始配置)
查看>>
简单逆向分析修改软件标题
查看>>
20180607jquery实现切换变色
查看>>
框架大集合
查看>>
Centos7单网卡带VLAN多IP配置
查看>>
element-ui radio 再次点击取消选中
查看>>
hibernate9
查看>>
一大波放鄙视接近中
查看>>
任意类型转换为IntPtr
查看>>