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

五、分类模型_大五模型包括一、分类模型的定义文章目录一、分类模型的定义二、分类模型类型2.1、逻辑回归2.2、决策树2.3、支持向量机2.4、朴素贝叶斯在机器学习中,我们把机器学习分为监督学习和非监督学习,监督学习就是在一组有标签(有目标)属性的数据集中,我们将数据教给机器学习,让他根据数据中的属性和目标,去看题目答案一样把答案记住。之后再给类似的题目去作一样。我们把数据集中的标签,一般都标为属性,而我们又把属性分为离散属性和连续属性,每一个标签都是可以这样分的。像如果我们预测的属性值的特性是连续属性的话,我们把这种模型称为是

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

一、分类模型的定义

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

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

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

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

二、分类模型类型

在分类模型中,我们有:

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

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

2.1、逻辑回归

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

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

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

import numpy as np
import math
import matplotlib.pyplot as plt
%matplotlib inline
X=np.linspace(-5,5,200)
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) 交叉熵:

# 使用决策树算法对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
tree_iris.fit(X,y)
tree_iris.score(X,y)
0.9733333333333334

2.3、支持向量机

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

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

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

2.4、朴素贝叶斯

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

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

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

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/188167.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 关于我妈的一切_networkmanager是什么服务

    关于我妈的一切_networkmanager是什么服务NetworkManager(NetworManager)是检测网络、自动连接网络的程序。无论是无线还是有线连接,它都可以令您轻松管理。对于无线网络,网络管理器可以自动切换到最可靠的无线网络。利用网络管理器的程序可以自由切换在线和离线模式。网络管理器可以优先选择有线网络,支持VPN。网络管理器最初由Redhat公司开发,现在由GNOME管理。1.查看NetworkManager…

  • Ubuntu上Github下载慢的问题解决方法记录

    1.参考了这篇博客https://www.jianshu.com/p/0493dcc15d6f2.追加域名的IP地址我们可以利用https://www.ipaddress.com/来获得以下两个GitHub域名的IP地址:(1)github.com(2)github.global.ssl.fastly.net打开网页:得到的github.com的ip为:140…

  • 手机APP测试(测试点、测试流程、功能测试)

    手机APP测试(测试点、测试流程、功能测试)1、功能测试1.1启动APP安装完成后,是否可以正常打开,稳定运行APP的速度是可以让人接受,切换是否流畅网络异常时,应用是否会崩溃:在请求超时的情况下,如果程序逻辑处理的不好,就有可能发生

  • TDD和FDD之间的区别(详细)「建议收藏」

    TDD和FDD之间的区别(详细)「建议收藏」本文转载自:https://www.cnblogs.com/chinamcs/archive/2010/04/27/1722156.html作者:chinamcs转载请注明该声明。我们知道FDD和区别+详细+.html’target=’_self’>TDD分别是频分双工和时分双工的英文缩写。FDD系统是指系统的发送和接收数据使用不同的频率,在上行和下行频率之间有双工间隔…

  • QT QMap 使用方法实例

    QT QMap 使用方法实例QTQMap使用方法,直接上例子,请仔细体会。

  • springboot的单元测试(junit单元测试实例)

    转载 原文:https://www.codenong.com/cs106212170/文章目录一.Junit测试二.集成测试1.SpringBoot测试-测试其中的Bean2.SpringBootWeb测试-启动tomcat3.SpringBootWeb测试-不启动tomcat(模拟环境)三.单元测试1.web层测试2.mybtismapper测试3.测试任意的bean4.Mock操作四.相关注解的汇总五.参考网站一.Junit测试当你的单元测试代码不需要用到..

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号