【集成学习(上)】 My Task05_掌握基本的分类模型 笔记

使用sklearn构建完整的分类任务

(1)用鸢尾花数据集来作为实例实践

import pandas as pd 
from sklearn import datasets
iris = datasets.load_iris()
X = iris.data
y = iris.target
feature = iris.feature_names
data = pd.DataFrame(X,columns=feature)

各个特征的相关解释:

  • sepal length (cm):花萼长度(厘米)
  • sepal width (cm):花萼宽度(厘米)
  • petal length (cm):花瓣长度(厘米)
  • petal width (cm):花瓣宽度(厘米)

(2)分类评估指标

  • 分类模型的评估指标与回归模型的评估指标不一样,因为分类问题的因变量是离散变量,
    无法像回归模型一样用MSE等的方法来进行评估模型的好坏,所以分类模型的评估指标与
    回归模型的评估指标不同,一般可以用混洗矩阵来进行
    在这里插入图片描述

(3) 选择具体的模型并进行训练

1 逻辑回归

  • 逻辑回归是假设数据服从伯努利分布,通过极大似然的方法,运用梯度下降来求解参数,来达到将数据二分类的目的
  • 把线性回归模型的输出作为sigmoid函数的输入.于是最后就变成了逻辑回归模型:
'''
penalty       {‘l1’, ‘l2’, ‘elasticnet’, ‘none’}, default=’l2’正则化方式
dual      bool, default=False   是否使用对偶形式,当n_samples> n_features时,默认dual = False。   
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)
D:\Ljc\Aacon\Anaconda3\lib\site-packages\sklearn\linear_model\_logistic.py:763: ConvergenceWarning: lbfgs failed to converge (status=1):
STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.

Increase the number of iterations (max_iter) or scale the data as shown in:
    https://scikit-learn.org/stable/modules/preprocessing.html
Please also refer to the documentation for alternative solver options:
    https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression
  n_iter_i = _check_optimize_result(





0.9733333333333334

2 基于概率的分类模型

2.1 线性判别分析

'''
参数:
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)
0.98

2.2 朴素贝叶斯

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

3 使用决策树算法对iris分类:

决策树的三要素是:
1 特征节点的选择
有3种选择方式,sklearn默认的是基尼指数
- ID3 信息增益
- C4.5 信息增益率
- Geni 基尼系数
2 是决策树的生成
3 是剪枝,有预剪枝和后剪枝

'''
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)
0.9733333333333334

4 支持向量机SVM

from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import StandardScaler 
from sklearn.svm import SVC

'''
C:正则化参数 正则化的强度与C成反比, 必须严格为正 , 惩罚是平房的12蹭饭
kernel:{'linear','poly','rbf','sigmoid','precomputed'}, 默认='rbf'
degree : 多项式和阶数
gamma : "rbf","poly" 和"Sigmiod"的内核系数
shrinking:是否软间隔分类, 默认true

'''
svc_iris = make_pipeline(StandardScaler(),SVC(gamma = 'auto'))
svc_iris.fit(X,y)
svc_iris.score(X,y)
0.9733333333333334

参考链接
参考 : GitHub开源集成学习(上) Datawhale

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据闲逛人

谢谢大嘎喔~ 开心就好

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值