自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(83)
  • 收藏
  • 关注

原创 lightGBM的介绍

AdaBoost(Adaptive Boosting)是一种集成学习算法,通过组合多个弱分类器来构建一个强分类器。它是由Freund和Schapire在1996年提出的,是集成学习中最早被广泛应用的算法之一。如何改变训练数据的权重或概率分布提高前一轮被弱分类器错误分类的样本的权重,降低前一轮被分对的权重。如何将弱分类器组合成一个强分类器,亦即,每个分类器,前面的权重如何设置采取“多数表决”的方法。

2023-06-10 18:35:41 4118

原创 XGBoost的介绍

XGBoost(eXtreme Gradient Boosting)是一种基于梯度提升树的机器学习算法,它在解决分类和回归问题上表现出色。它是由陈天奇在2014年开发的,如今已成为机器学习领域中最流行和强大的算法之一。XGBoost结合了梯度提升框架和决策树模型,通过迭代地训练一系列的决策树来逐步改进预测性能。它的目标是优化损失函数,使得预测值与实际值之间的误差最小化。

2023-06-08 00:23:53 6035

原创 EM算法和HMM模型的介绍

EM算法(Expectation-Maximization algorithm)是一种迭代算法,用于求解含有隐变量(latent variable)的概率模型参数估计问题。它是一个基础算法,是很多机器学习领域算法的基础,比如隐式马尔科夫算法(HMM)等等。它被广泛应用于统计学和机器学习中,特别是在无监督学习中,如聚类、混合高斯模型等问题。EM算法的目标是通过迭代优化的方式,最大化观测数据的似然函数(或最大化似然函数的对数),从而估计模型的参数。在这个过程中,存在隐变量,即一些无法直接观测到的变量。

2023-06-07 01:51:03 1252

原创 SVM算法的介绍

SVM(Support Vector Machine)是一种常见的监督学习算法,用于进行二分类或多分类任务。它的主要思想是找到一个最优的超平面,将不同类别的样本分隔开。超平面最大间隔介绍:上左图显示了三种可能的线性分类器的决策边界:虚线所代表的模型表现非常糟糕,甚至都无法正确实现分类。其余两个模型在这个训练集上表现堪称完美。但是它们的决策边界与实例过于接近,导致在面对新实例时,表现可能不会太好。右图中的实线代表SM分类器的决策边界,不仅分离了两个类别,且尽可能远离最近的训练实例。

2023-06-03 00:41:20 7812 1

原创 朴素贝叶斯算法的介绍

朴素贝叶斯算法(Naive Bayes Algorithm)是一种基于贝叶斯定理和特征独立性假设的概率分类算法。它被广泛应用于文本分类、垃圾邮件过滤、情感分析等任务。朴素贝叶斯算法的基本思想是基于训练数据中的特征和标签之间的概率关系,通过计算后验概率来进行分类预测。朴素贝叶斯分类算法alpha:拉普拉斯平滑系数。

2023-06-01 21:39:16 7009 2

原创 聚类算法以及聚类算法模型评估的介绍

聚类算法是一类无监督学习算法,用于将数据集中的对象分组(或聚类)成具有相似性的集合。聚类算法不依赖于预定义的类别标签,而是根据数据的内在特点将相似的数据点聚集在一起。聚类算法的目标是通过最大化组内的相似性和最小化组间的差异来实现聚类。聚类算法可以帮助我们发现数据中的潜在结构、识别相似的数据点、进行数据压缩和预处理等。

2023-05-28 18:39:00 2370

原创 Boosting以及代表算法(Adaboost、GBDT)介绍

Boosting(提升)是一种集成学习方法,通过组合多个弱学习器来构建一个强学习器。与Bagging不同,Boosting采用了序列化的方式构建模型,每个弱学习器都是在前一个弱学习器的基础上进行训练,通过逐步调整样本的权重或难易程度来提高模型的预测性能。简而言之:没新加入一个弱学习器,整体能力就会得到提升代表算法有:Adaboost,GBDT,XGBoost,LightGBM初始化样本权重:对于包含N个样本的训练集,初始时将每个样本的权重设置为1/N。

2023-05-27 23:53:31 2209 1

原创 集成学习以及随机森林介绍

集成学习(Ensemble Learning)是一种机器学习方法,通过将多个弱学习器(weak learner)组合在一起来构建一个更强大的学习器(strong learner)。在集成学习中,弱学习器通常是指在某种程度上性能较低的学习算法或模型,例如决策树的深度较浅、学习速度较快的版本。而强学习器则是指整个集成模型的性能更好、更具泛化能力的学习器。集成学习的核心思想是通过组合多个弱学习器的预测结果来获得更准确、稳定的预测结果。

2023-05-27 18:22:46 1101

原创 回归决策树的介绍

回归决策树(Regression Decision Tree)是一种决策树算法,用于解决回归问题。与传统的分类决策树不同,回归决策树的目标是预测连续数值型的输出,而不是离散的类别标签。数据集准备:首先,需要准备训练数据集,包括输入特征和对应的输出值。每个样本都有一组特征值和一个连续数值型的输出。特征选择:选择最佳的特征来划分数据集。常用的划分准则包括平方误差(Mean Squared Error, MSE)和平均绝对误差(Mean Absolute Error, MAE)等。

2023-05-27 16:01:13 3304

原创 决策树案例以及决策树可视化

1912年4月15日,在她的处女航中,泰坦尼克号在与冰山相撞后沉没,在2224名乘客和机组人员中造成1502人死亡。在这个案例中,我们要求完成对哪些人可能存活的分析。特别是,我们要求运用机器学习工具来预测哪些乘客幸免于悲剧。我们提取到的数据集中的特征包括票的类别,是否存活,乘坐班次,年龄,登录home.dest,房间,船和性别等。sklearn.tree.export_graphviz():该函数能够导出DOT文件。打开命令提示符,cd进入到存放.dot文件的路径。dot文件的内容如下。

2023-05-26 23:56:05 740

原创 决策树及决策树的划分依据(ID3、C4.5、CART)

然而,信息增益偏向于选择具有较多取值的特征,因此,在实际应用中,可以使用信息增益比等指标来对信息增益进行修正,以避免对具有较多取值的特征的过度偏好。在上面的介绍中,我们有意忽略了“编号”这一列,若把“编号”也作为一个候选划分属性,则根据信息增益公式可计算出它的信息增益率为0.9182,远大于其他候选划分属性。如果一个分割点可以将当前的所有节点分为两类,使得每一类都很“纯”,也就是同一类的记录较多,那么就是一个好分割点(简单来说,就是分割点的左右子树最好是叶子节点):以某特征划分数据集前后的熵的差值。

2023-05-24 19:04:48 2012

原创 逻辑回归及逻辑回归的评估指标

逻辑回归(Logistic Regression)是机器学习中的一种分类模型,逻辑回归是一种分类算法,虽然名字中带有回归,但是它与回归之间有一定的联系。由于算法的简单和高效,在实际中应用非常广泛。

2023-05-22 21:36:21 2903 1

原创 线性回归、正规方程和梯度下降法

线性回归是利用回归方程(函数)对一个或多个自变量(特征值)和因变量(目标值)之间关系进行建模的一种分析方式。特点:只有一个自变量的情况称为单变量回归,多余一个自变量情况的叫做多元回归yβ0β1x1β2x2βpxpεyβ0​β1​x1​β2​x2​...βp​xp​ε。

2023-05-21 21:21:07 1683

原创 归一化与标准化

特征预处理是指在应用机器学习算法之前对原始特征进行转换或处理的过程。它旨在改善数据的表示方式,使得特征更适合用于机器学习模型的训练和预测。将特征的值进行缩放,使得它们具有相似的数值范围。常见的特征缩放方法包括标准化(Standardization)和归一化标准化通过减去均值并除以标准差,使得特征具有均值为0、标准差为1的分布;归一化将特征缩放到一个特定的范围,例如[0, 1]。将一些非数值型的特征转换为数值型特征,以便机器学习算法能够处理。

2023-05-18 18:39:57 446

原创 什么是KD树?

KD树(K-Dimensional Tree)是一种用于高效处理多维数据的数据结构。它是二叉搜索树的一种变体,在每个节点上对数据进行分割,从而构建一个多维空间的层次结构。因为KD树是基于二叉搜索树的特性构建的,所以它保留了二叉搜索树的一些性质,例如在插入和搜索操作中的平均时间复杂度为O(log n)。但与传统的二叉搜索树不同的是,KD树的节点划分是基于多维空间的划分,而不仅仅是单个维度上的划分KD树主要用于解决最近邻搜索(Nearest Neighbor Search)等问题。

2023-05-18 12:34:18 1600

原创 什么是K-近邻算法?

K近邻算法(K-Nearest Neighbors,简称KNN)是一种基本的分类和回归算法。它的基本原理是通过测量样本之间的距离来对未知样本进行分类或预测。KNN算法被归类为一种“懒惰学习”(lazy learning)算法,因为它没有显式地从训练数据中学习模型,而是在需要进行分类或预测时才对训练数据进行计算。

2023-05-16 23:49:49 829

原创 机器学习概述

机器学习是一种人工智能技术,通过对数据的学习和分析,让计算机系统自动提高其性能。简而言之,机器学习是一种从数据中学习规律和模式的方法,通过数据来预测、分类或者决策。

2023-04-15 22:48:31 7984

原创 人工智能概述

在安川电机、Fanuc、ABB、库卡等公司的努力下,我们认为进入21世纪之后,机器人领域就已经进入了社会影响阶段,此时各种工业机器人已经主宰了装配生产线。​ 随着大数据、云计算、互联网、物联网等信息技术的发展,泛在感知数据和图形处理器等计算平台推动以深度神经网络为代表的人工智能技术飞速发展,大幅跨越了科学与应用之间的“技术鸿沟”,诸如图像分类、语音识别、知识问答、人机对弈、无人驾驶等人工智能技术实现了从“不能用、不好用“到”可以用”的技术突破,迎来爆发式增长的新高潮。】可能会妨碍机器人领域的发展。

2023-04-12 17:49:21 1277 2

原创 约瑟夫问题(单向循环链表经典例题)

1. 约瑟夫问题的简介及实现思路Josephu(约瑟夫、约瑟夫环)问题:设编号1,2,…,n 的 n 个人围坐一圈,约定编号为 k (1 <= k <= n)的人从 1 开始报数,数到 m 的那个人又出列,依次类推,直到所有人出列为止,由此产生一个出队编号的序列。大致实现思路:将所有人添加到循环链表中然后由k结点起从1开始计数,计到 m 时,对应结点从链表中删除,然...

2020-03-05 19:47:39 599

原创 Java数据结构-链表(单链表、双链表、单向循环链表)

1. 什么是链表?链表的定义:链表是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的指针链表的特点:使用链表结构可以克服数组链表需要预先知道数据大小的缺点链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理链表失去了数组随机读取的优点,同时链表由于增加了结点的指针域,空间开销比较大2. 链表的分...

2020-03-05 16:19:15 439

原创 Java数据结构-队列(顺序队列,循环队列)

1. 什么是队列?队列的定义:队列是一种操作受限的线性表,是指只允许在表的一端进行插入操作的数据结构队列的特点:队列是一种**先进先出(FIFO)**的顺序结构。先存入的数据先取出,后存入的数据后取出。在队尾插入元素,在队头删除元素[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pwJ95gFA-1582378987807)(C:\User...

2020-02-22 21:44:08 354

原创 Java数据结构-稀疏数组

1. 什么是稀疏数组?介绍:当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组稀疏数组的处理方法是:记录数组一共有几行几列,有多少个不同的值把具有不同值的元素的行列及值记录在一个小规模的数组(稀疏数组)中,从而缩小程序的规模作用:主要是用来压缩数据的,在开发中也会用到,比如将二维数组的数据存到磁盘中,数据会特别多,可能还会有些意义不大的数...

2020-02-09 23:13:16 229

原创 Linux-快速配置网络

配置静态 ip进入网络设置核心配置文件夹cd /etc/sysconfig/network-scripts/查看该文件夹下的配置文件清单ls修改网络核心配置文件vim ifcfg-eno16777736修改后的内容如下:TYPE=EthernetBOOTPROTO=staticDEFROUTE=yesIPV4_FAILURE_FATAL=noIPV6INIT=...

2019-12-06 20:50:33 384

原创 Linux-ssh密码认证和密钥认证及scp远程拷贝文件

1. 设定实验环境(desktop虚拟机 和 server虚拟机)server ip是 真机ip+100(真机ip50以内,大于50的话则只加10)desktop ip是 真机ip+200(真机ip50以内,大于50的话则只加20)配置desktop虚拟机设置虚拟机名字hostnamectl set-hostname desktop+ip设置虚拟机ip地址,依次执行下面的操...

2019-12-02 21:40:07 1550

原创 Linux-vim三种模式及操作

VIM 的三种模式1.命令模式修改 vim 工作方式显示文件每一行的行号vim 进入文件:set nu 在每一行前显示行号:set nonu 不显示行号其他配置:set mouse=a 启用鼠标:set cursorline 设置行线在 vim 程序中设定的 vim 工作方式是临时的,在 vim 关闭后会还原成默认工作方式,...

2019-12-02 17:34:37 489

原创 SpringCloud的五大组件之一:Netflix Eureka

组件一:Netflix Eureka——服务注册与发现1. 什么是Eureka?Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的。SpringCloud将它集成在其子项目spring-cloud-netflix中,以实现SpringCloud的服务发现功能。Eureka包...

2019-11-21 21:07:32 907

原创 SpringCloud-快速入门

什么是微服务?微服务最早是于2014年3月25日由一个叫 Martin Flower 的国外人提出的, 他写的《Microservices》最早介绍的微服务的思想。百度也有好多业界人士对其进行翻译,微服务介绍的翻译版微服务的优势:将复杂的业务拆分成多个小的业务,每个业务拆分成一个服务,将复杂的问题简单化,利于分工,降低新人的学习成本微服务系统是分布式系统,业务与业务之间完全解耦,随着...

2019-11-20 17:40:44 230

原创 Java算法-动态规划!(附漫画解释动态规划链接)

什么是动态规划?1. 书上的解释:任何数学递推公式都可以直接转换成递归算法,但是基本实现使编译器常常不能正确对待递归算法,结果导致低效的程序。当怀疑很可能是这种情况时,我们必须再给编译器提供一些帮助,降递归算法重新写成非递归算法,让后者(非递归算法)把那些子问题的答案系统地记录在一个表内。利用这种方法的一种技巧叫做动态规划2. 为什么要用到动态规划?在这里不得不卖弄一下自己,这学期学校开设...

2019-11-07 19:52:31 232 1

原创 Java算法-谈谈递归(实现汉诺塔问题)

前奏小时候,大家可能都听过这样一个故事:从前有座山,山里有座庙,庙里有个老和尚,在给小和尚讲故事。讲的什么故事呢?从前有座山,山里有座庙,庙里有个老和尚,在给小和尚讲故事。讲什么故事呢?从前有座山,山里有座庙,庙里有个老和尚,在给小和尚讲故事。讲的什么故事呢?从前有座山,山里有座庙,庙里有个老和尚,在给小和尚讲故事。。。。。。这个故事也算是一个递归的表现,只不过它是一个死递归,会造成栈溢出异常...

2019-10-30 15:35:15 332

原创 Java数据结构-面向对象的数组

面向对象的数组对数组进行封装,简易集合(ArrayList)的实现。import java.util.Arrays;//面向对象的数组public class myArray { //用 Object[] 数组原因是,数组里面什么类型的数据都可以装,属性一般加private修饰,面向对象的三大特性之一 private Object[] elements; pub...

2019-10-23 19:02:04 218

原创 MyBatis 动态SQL、缓存(一级缓存、二级缓存、自定义缓存)

动态SQL什么是动态SQL:动态SQL就是指根据不同的条件生成不同的SQL语句动态 SQL 元素和 JSTL 或基于类似 XML 的文本处理器相似。在 MyBatis 之前的版本中,有很多元素需要花时间了解。MyBatis 3 大大精简了元素种类,现在只需学习原来一半的元素便可。MyBatis 采用功能强大的基于 OGNL 的表达式来淘汰其它大部分元素。ifchoose (when,...

2019-10-23 16:08:04 404

原创 MyBatis注解开发、Lombok插件、多对一处理、一对多处理

使用注解开发1. 面向接口编程大家之前都学过面向对象编程,也学习过接口,但在真正的开发中,很多时候我们会选择面向接口编程根本原因 : 解耦 , 可拓展 , 提高复用 , 分层开发中 , 上层不用管具体的实现 , 大家都遵守共同的标准 , 使得开发变得容易 , 规范性更好在一个面向对象的系统中,系统的各种功能是由许许多多的不同对象协作完成的。在这种情况下,各个对象内部是如何实现自己的,对系...

2019-10-18 18:25:36 331

原创 MyBatis的底层详细实现过程(含图解)

Mybatis详细的执行流程!ctrl+左键 可以进入方法内部第一步:Resources类通过调用静态方法 getResourceAsStream(String resource) 先读取并加载 mybatis-config.xml 核心配置文件 并返回一个字节输入流( 包不要导错: import org.apache.ibatis.io.Resources;)第二步:通过 SqlSe...

2019-10-14 18:31:48 1088

原创 MyBatis配置解析、指定日志实现、实现分页操作

配置解析1. 核心配置文件mybatis-config.xmlMyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置和属性信息编写配置文件时需要注意的问题:配置顺序必须按上图的顺序来进行配置,否则会报错不想配的设置可以不配,但是位置一定得留下,例如:我先配置了properties,然后不想配置settings,那么你就在properties底下配setting...

2019-10-13 00:04:42 271

原创 MyBatis简介、MyBatis CRUD代码的编写、模糊查询

简介什么是MyBatis?MyBatis 是一款优秀的持久层框架它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。MyBat...

2019-10-10 20:50:00 259

转载 Java-文件上传

文件上传文件上传的准备工作对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的。一般选择采用apache的开源工具common-fileupload这个文件上传组件,common-fileupload是依赖于common-io这个包的。所以总共需要下载两个jar包。common-fileupload下载地址(虽然不是最新版,但是用的人比较多)common-io下载地址...

2019-09-26 21:04:31 180

原创 Java-邮件发送

邮件传输协议SMTP协议:发送邮件:我们通常把处理用户smtp请求(邮件发送请求)的服务器称之为SMTP服务器(邮件发送服务器)。POP3协议:接受邮件:我们通常把处理用户pop3请求(邮件接收请求)的服务器称之为POP3服务器(邮件接收服务器)。邮件收发的原理第1步:用户一通过STMP协议连接STMP服务器,然后发一封邮件给QQ邮件服务器第2步:QQ分析发现还需...

2019-09-25 22:29:10 422

原创 Java-注解

注解什么是注解(Annotation)注解是从JDK5.0开始引入的新技术注解的作用:对程序做出解释(和注释“comment”没有什么区别)可以被其他程序(编译器等…)读取注解的格式:注解是以“@注释名”在代码中存在的,还可以添加一些参数值,例如:@Anno(value=“unchecked”)注解在哪使用?可以附加在package(包)、class(类)、method(...

2019-09-20 17:46:25 152

原创 JavaWeb-JavaBean、MVC三重架构、Filter过滤器、监听器

JavaBean实体类JavaBean有特定的写法:1).必须要有一个无参构造2).属性必须私有化3).必须有对应的get/set方法一般用来和数据库的字段做映射 ORMORM :对象关系映射1).表—>类2).字段–>属性3).行记录---->对象Student的实体类JavaBean:public class Student { private...

2019-09-19 22:01:04 445

原创 JavaWeb-Cookie、Session及浅谈JSP

Cookie、Session会话会话:用户打开一个浏览器,点击了很多超链接,访问多个web资源,关闭浏览器,这个过程可以称之为会话;有状态会话:1.可以在不同的方法调用间保持针对各个客户端的状态2.与客户端的联系必需被维持;通常开销较大3.有状态会话Bean(实体类)会保存客户端的状态无状态会话:1.在不同方法调用间不保留任何状态2.事务处理必须在一个方法中结束3.通常资源占...

2019-09-19 21:23:34 180

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除