集成学习(上)--5

逻辑回归logistic regression:

  • 分类问题与回归问题的区别:在于回归问题与分类问题需要预测的因变量不一样。在回归问题中,因变量是连续性变量;但是在分类问题中,因变量往往是一个离散集合中的某个元素。
  • 逻辑回归在实际中不太用于多分类问题,因为实际效果不是很好。

基于概率的分类模型

线性判别分析

  1. 基于于贝叶斯公式
    在这里插入图片描述
    在这里插入图片描述

  2. 基于降维分类
    在这里插入图片描述

朴素贝叶斯

  • 朴素贝叶斯算法对线性判别分析作进一步的模型简化,它将线性判别分析中的协方差矩阵中的协方差全部变成0,只保留各自特征的方差,也就是朴素贝叶斯假设各个特征之间是不相关的。
# 逻辑回归
'''
penalty {‘l1’, ‘l2’, ‘elasticnet’, ‘none’}, default=’l2’正则化方式
dual bool, default=False 是否使用对偶形式,当n_samples> n_features时,默认dual = Fal
C float, default=1.0 
solver {‘newton-cg’, ‘lbfgs’, ‘liblinear’, ‘sag’, ‘saga’}, default=’lbfgs
l1_ratio float, default=None 
'''
from sklearn.linear_model import LogisticRegression
log_iris = LogisticRegression()
log_iris.fit(X,y)
log_iris.score(X,y)

# 线性判别分析
'''
参数:
solver:{'svd','lsqr','eigen'},默认='svd'
solver的使用,可能的值:
'svd':奇异值分解(默认)。不计算协方差矩阵,因此建议将此求解器用于具有大量特征的数据。
'lsqr':最小二乘解,可以与收缩结合使用。
'eigen':特征值分解,可以与收缩结合使用。
'''
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
lda_iris = LinearDiscriminantAnalysis()
lda_iris.fit(X,y)
lda_iris.score(X,y)

# 朴素贝叶斯 
from sklearn.naive_bayes import GaussianNB
NB_iris = GaussianNB()
NB_iris.fit(X, y)
NB_iris.score(X,y)

决策树

  • 在分类树中,均方误差无法作为确定分裂节点的准则,一个很自然的替代指标是分类错误率(此区域内的训练集中非常见类所占的类别)。
    E = 1 − m a x k ( p ^ m k ) E = 1- max_{k}(\hat{p}_{mk}) E=1maxk(p^mk)
  • 分类错误率在构建决策树时不够敏感,一般在实际中用如下两个指标代替.
  1. 基尼系数: G = ∑ k = 1 K p ^ m k ( 1 − p ^ m k ) G = \sum^{K}_{k=1}{\hat{p}_{mk}(1-\hat{p}_{mk})} G=k=1Kp^mk(1p^mk)
  2. 交叉熵: D = − ∑ k = 1 K p ^ m k l o g p ^ m k D = -\sum^{K}_{k=1}{\hat{p}_{mk}}log{\hat{p}_{mk}} D=k=1Kp^mklogp^mk
# 使用决策树算法对iris分类:
'''
criterion:{“gini”, “entropy”}, default=”gini”
max_depth:树的最大深度。
min_samples_split:拆分内部节点所需的最少样本数
min_samples_leaf :在叶节点处需要的最小样本数。
'''
from sklearn.tree import DecisionTreeClassifier
tree_iris = DecisionTreeClassifier(min_samples_leaf=5)
tree_iris.fit(X,y)
tree_iris.score(X,y)

支持向量机

在这里插入图片描述

非线性支持向量机

  • 使用支持向量机处理非线性问题的方法,将数据投影至更加高的维度。为了避免无穷维的情况,使用核函数。
    多项式核函数:

    高斯核函数:
    在这里插入图片描述
    sigmoid核函数:
    在这里插入图片描述
    余弦相似度核函数:
    在这里插入图片描述
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.svm import SVC
'''
C:正则化参数。正则化的强度与C成反比。必须严格为正。惩罚是平方的l2惩罚。
kernel:{'linear','poly','rbf','sigmoid','precomputed'},默认='rbf'
degree:多项式和的阶数
gamma:“ rbf”,“ poly”和“ Sigmoid”的内核系数。
shrinking:是否软间隔分类,默认true
'''
svc_iris = make_pipeline(StandardScaler(), SVC(gamma='auto'))
svc_iris.fit(X, y)
svc_iris.score(X,y)

参考资料:

https://github.com/datawhalechina/team-learning-data-mining/tree/master/EnsembleLearning

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值