python 贝叶斯分类器sklearn_Python:sklearn机器学习库:2-线性及二分分类器

Linear Discriminant Analysis and Quadratic Discriminant

Analysis are two classic classifiers(经典的分类模型), with, as their

names suggest, a linear and a quadratic decision surface,

respectively.

These classifiers(分类模型) are attractive because they have

closed-form (闭合)solutions that can be easily computed, are

inherently multiclass, have proven to work well in practice, and

have no hyperparameters to tune.

这里的介绍两种分类算法, 他们吸引的地方是易于计算,支持多类别,实际效果良好,无需调整超参数

1、Linear Discriminant

Analysis(线性判决分析)

import numpy

as np

from

sklearn.discriminant_analysis import

LinearDiscriminantAnalysis

X =

np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3,

2]]) #training

data

y =

np.array([1, 1, 1, 2, 2, 2]) #training

target

clf =

LinearDiscriminantAnalysis() #引入模型

clf.fit(X,

y) #训练

LinearDiscriminantAnalysis(n_components=None,

priors=None, shrinkage=None,

solver='svd',

store_covariance=False, tol=0.0001)

>>>

print(clf.predict([[-0.8, -1]])) #分类识别

[1]

这个和之前的线性回归分类算法使用方法差不多,先引入模型,fit, 然后再预测

2、Quadratic Discriminant

Analysis

A classifier

with a quadratic decision boundary, generated by fitting class

conditional densities to the data and using Bayes’

rule.The model fits a

Gaussian density to each class.

from

sklearn.discriminant_analysis import

QuadraticDiscriminantAnalysis

import numpy

as np

X =

np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3,

2]])

y =

np.array([1, 1, 1, 2, 2, 2])

clf =

QuadraticDiscriminantAnalysis()

clf.fit(X,

y)

...

QuadraticDiscriminantAnalysis(priors=None,

reg_param=0.0,

store_covariance=False,

store_covariances=None,

tol=0.0001)

>>>

print(clf.predict([[-0.8, -1]]))

[1]

这个分类算法并不是使用线性模型,而是使用贝叶斯规则,所以没有coef_,

intercept_等属性。

* 注:

LDA除了分类外,还可以降维reduce

dimension/decompose。在分类样本中有很多的feature实际意义不大,例如侦探小说、言情小说的封面颜色对于分类就很少意义,就可以降维处理。

from sklearn

import datasets

from

sklearn.decomposition import PCA #pca是专门降维的函数

from

sklearn.discriminant_analysis import

LinearDiscriminantAnalysis

iris =

datasets.load_iris()

X =

iris.data

y =

iris.target

target_names

= iris.target_names

pca =

PCA(n_components=2) #使用pca进行降维

X_r =

pca.fit(X).transform(X)

lda =

LinearDiscriminantAnalysis(n_components=2) #使用LDA的降维功能

X_r2 =

lda.fit(X, y).transform(X)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值