前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >五、分类模型_大五模型包括

五、分类模型_大五模型包括

作者头像
全栈程序员站长
发布2022-11-10 19:48:23
3470
发布2022-11-10 19:48:23
举报

大家好,又见面了,我是你们的朋友全栈君。

一、分类模型的定义

文章目录

在机器学习中,我们把机器学习分为监督学习和非监督学习,监督学习就是在一组有标签(有目标)属性的数据集中,我们将数据教给机器学习,让他根据数据中的属性和目标,去看题目答案一样把答案记住。之后再给类似的题目去作一样。

我们把数据集中的标签,一般都标为属性,而我们又把属性分为离散属性和连续属性,每一个标签都是可以这样分的。像如果我们预测的属性值的特性是连续属性的话,我们把这种模型称为是回归模型。

最为典型的就是: y = w ∗ x + b y=w*x+b y=w∗x+b 这样的一元回归(也就是一次函数,推广一下就是多元回归)

我们预测是连续的属性,我们可以称为是回归模型,那么如果我们预测的是离散属性呢,属性值只有1/0或者多个类别,我们把预测这种的模型就叫做分类模型

二、分类模型类型

在分类模型中,我们有:

  • 逻辑回归(名字带有回归可不一定是回归啊)
  • 决策树
  • 支持向量机(最为经典一种)
  • 朴素贝叶斯

在机器学习中,我们基本上都可以将都可以监督学习算法分为回归与分类的

2.1、逻辑回归

再说逻辑回归之前我们需要先了解sigmold函数:

f ( x ) = 1 / ( 1 + e y ) f(x)=1/(1+e^y) f(x)=1/(1+ey)

此函数和线性回归方程联合一起即可,得到逻辑回归方程

代码语言:javascript
复制
import numpy as np
import math
import matplotlib.pyplot as plt
%matplotlib inline
代码语言:javascript
复制
X=np.linspace(-5,5,200)
代码语言:javascript
复制
X=np.linspace(-5,5,200)
y=[1/(1+math.e**(-x)) for x in X]
plt.plot(X,y)
plt.show()
在这里插入图片描述
在这里插入图片描述

在这里我们先通过线性回归将数据分类,分类之后可以通过sigmold函数取离散化

在现实生活中逻辑回归模型一般是不够好的,所以我们很少用到逻辑回归,

2.2、决策树

对于分类树来说,给定一个观测值,因变量的预测值为它所属的终端结点内训练集的最常出现的类。分类树的构造过程与回归树也很类似,与回归树一样,分类树也是采用递归二叉分裂。但是在分类树中,均方误差无法作为确定分裂节点的准则,一个很自然的替代指标是分类错误率。分类错误率就是:此区域内的训练集中非常见类所占的类别,即: 上式中的代表第m个区域的训练集中第k类所占的比例。但是在大量的事实证明:分类错误率在构建决策树时不够敏感,一般在实际中用如下两个指标代替: (1) 基尼系数

(2) 交叉熵:

代码语言:javascript
复制
# 使用决策树算法对iris分类:
''' criterion:{“gini”, “entropy”}, default=”gini” max_depth:树的最大深度。 min_samples_split:拆分内部节点所需的最少样本数 min_samples_leaf :在叶节点处需要的最小样本数。 '''
from sklearn.tree import DecisionTreeClassifier
from sklearn import datasets
tree_iris = DecisionTreeClassifier(min_samples_leaf=5)
import pandas as pd
 
iris = datasets.load_iris()
X = iris.data
y = iris.target
feature = iris.feature_names
data = pd.DataFrame(X,columns=feature)
data['target'] = y
data.head()

sepal length (cm)

sepal width (cm)

petal length (cm)

petal width (cm)

target

0

5.1

3.5

1.4

0.2

0

1

4.9

3.0

1.4

0.2

0

2

4.7

3.2

1.3

0.2

0

3

4.6

3.1

1.5

0.2

0

4

5.0

3.6

1.4

0.2

0

代码语言:javascript
复制
tree_iris.fit(X,y)
tree_iris.score(X,y)
代码语言:javascript
复制
0.9733333333333334

2.3、支持向量机

支持向量机SVM是20世纪90年代在计算机界发展起来的一种分类算法,在许多问题中都被证明有较好的效果,被认为是适应性最广的算法之一。

支持向量机是一类按监督学习(supervised learning)方式对数据进行二元分类的广义线性分类器(generalized linear classifier),其决策边界是对学习样本求解的最大边距超平面(maximum-margin hyperplane)求解方法很多,可以参考李航的<<统计学习>>学习

代码语言:javascript
复制
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)
代码语言:javascript
复制
0.9733333333333334

2.4、朴素贝叶斯

贝叶斯方法是以贝叶斯原理为基础,使用概率统计的知识对样本数据集进行分类。由于其有着坚实的数学基础,贝叶斯分类算法的误判率是很低的。贝叶斯方法的特点是结合先验概率和后验概率,即避免了只使用先验概率的主观偏见,也避免了单独使用样本信息的过拟合现象。贝叶斯分类算法在数据集较大的情况下表现出较高的准确率,同时算法本身也比较简单

有的涉及公式推导和具体算法实现在这里就不在陈诉了,具体可以参考以下文章 优化理论之无约束优化基本结构及其python应用 最优化理论之负梯度方法与Newton型方法

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022年9月28日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、分类模型的定义
    • 文章目录
    • 二、分类模型类型
      • 2.1、逻辑回归
        • 2.2、决策树
          • 2.3、支持向量机
            • 2.4、朴素贝叶斯
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档