自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(80)
  • 资源 (2)
  • 收藏
  • 关注

原创 机器学习sklearn----支持向量机SVC模型评估指标

文章目录前言混淆矩阵指标1准确率指标2精确度指标3召回率指标4F1-measure指标5假负率指标6特异度指标7假正率sklearn中的混淆矩阵前言前面一篇博文介绍了SVC处理二分类问题是怎么样来解决样本不均衡。这里我们要来将用什么指标来衡量模型的好坏SVC提供的接口score是计算模型的准确率的,这个指标在样本均衡的情况下是完全适用的, 但是在遇到样本不均衡问题的时候就失去了意义,而我们日常面对的数据会有较多的不均衡, 面对这样的问题,我们需要采用新的模型评估指标,而我们的评估指标需要能够反映模型捕

2021-12-15 08:30:00 5108

原创 机器学习sklearn----支持向量机SVC中的样本不均衡问题

前言在分类问题中永远存在一个问题:样本不均衡比如我们的一个二分类数据集,其中1占比3%,0占比97%。这就是一个典型的样本不均衡数据集。但是我们的需求往往都是捕捉到这少数的样本,也就是将少数类尽量多的判断正确。但是我们的模型默认时样本均衡的,这样就会带来一些问题首先,模型分类时会更加的倾向于多数类,让多数类更加容易被判对,会牺牲掉少数类来保证多数类的判别效果。 但是这样的模型显然不是我们需要的其次,模型的评估指标会失去意义,因为即使我们什么都不做,只是将所有的样本都判别为0,那样的准确率也是达到了

2021-12-13 16:04:31 2339 2

原创 机器学习sklearn----支持向量机SVC核函数性质探索

文章目录前言原始数据集探索核函数性质探究对核函数rbf的表现不佳的思考对rbf进一步的调参前言前面我们了解了在不同的数据分布下,不同核函数的表现效果,但是实际应用中我们的数据往往有很多的特征,导致我们很难知道具体的数据分布情况,让我们比较难选择较好的核函数。当然了选择“rbf”一直是一个不错的选择。但是每个核函数都有自己的优势和弊端,这篇文章我们会试着对这些核函数进行探索,使用的数据集是sklearn中的乳腺癌数据集。本文中使用到的所有依赖库from sklearn.datasets import

2021-12-08 16:17:20 2040 2

原创 机器学习sklearn----支持向量机SVC重要参数核函数kernel如何选择

文章目录前言不同核函数对比分析创建原始数据不同核函数表现可视化总结前言前面的SVC求解可视化一文中已经知道了SVC对于线性和非线性的数据有不同的核函数,线性只有一个,而非线性有三个,实际生活中我们遇到的数据大多数是非线性的,那么这些核函数具体应该怎么选择呢?SVM的核函数:linear:线性核函数,只能解决线性问题ploy:多项式核函数,解决非线性问题和线性问题,但是偏线性sigmoid:双曲正切核函数,解决线性和非线性问题rbf:高斯径向基核函数,解决线性和非线性问题,偏非线性核函数可

2021-12-07 17:12:04 4700 3

原创 机器学习sklearn----支持向量机分类器SVC求解过程可视化

文章目录需求及思路线性可分数据的SVC求解可视化非线性数据的SVC求解可视化利用matplotlib画出三维空间数据分布需求及思路需求:画出啊决策边界和两个超平面实现思路:从坐标轴上去出大量的点,将点的坐标值当作两个特征放入SVC模型中,预测每个点对应的类别。利用matplotlib中contour函数画出等高线(到决策边界距离相同的点具有相同的高度),保留[-1, 0, 1]三条。0对应决策边界,其他的两条就是两个超平面本文代码使用到的第三方库如下from sklearn.datasets

2021-12-06 19:38:20 4523 1

原创 机器学习sklearn----KMeans实例(图片数据矢量量化的应用)

文章目录矢量量化理解KMeans聚类法导入数据采用KMeans矢量化随机质心法矢量量化理解矢量量化可以理解为数据的压缩,可以看作是一种降维的过程,只是和我们之前知道的降维算法的理论完全不一样。举例来说,我们有一张600 x 600 个像素点的图片,每个像素点有一个颜色,那么这个图片上存在的信息就有360000个。图片上有很多的像素点之间的颜色差异微乎其微,那么我们就可以将这些像素点看作是同一个像素点(相当于KMeans的质心),将这些像素点的颜色替换为同一个颜色。图片的矢量量化就是将每个像素点的颜色用

2021-12-04 17:20:38 2836 1

原创 机器学习sklearn----通过轮廓系数确定适合的n_clusters

文章目录创建数据集n_clusters=4详细画图代码解析完整代码前面的文章我们知道了KMeans的常用评估指标轮廓系数。这篇文章我们介绍怎样通过轮廓系数来确定最佳的n_cluster创建数据集创建一个有5个分类的数据集,用于聚类,这里创建数据集我们是知道分类情况的,但是实际中我们是基本不会知道分类情况的。也就没有了最佳的聚类效果参考。所以需要使用到轮廓系数来选择最佳的聚类数量。from sklearn.datasets import make_blobsfrom sklearn.cluster

2021-12-03 16:06:43 2631

原创 matplotlib中fil_between和fill_betweenx的用法

文章目录作用fill_between使用fill_betweenx的使用作用这两个函数的作用总结来说就一句话:进行颜色的填充。只不过是填充的方向不同。fill_between是进行y轴方向上的填充,也就是竖直方向的填充fill_betweenx是进行x轴方向上的填充,也就是水平方向的填充fill_between使用# 随机生成30个点的数据,用折线图画出来x = np.arange(30)y = np.random.randint(1, 20, size=(30,))plt.plot(x,

2021-11-24 21:21:51 4247 1

原创 机器学习sklearn----KMeans评估指标

引言前面介绍了KMeans的基础知识。了解了KMeans的基础用法。但是具体需要怎么来评估我们的模型还是一个未知数。今天这节我们会介绍再不考虑实际需求的情况下来评估我们的KMeans模型。实际的应用中是按照我们的需求来评估模型聚类效果的。数据准备from sklearn.datasets import make_blobsfrom sklearn.cluster import KMeansimport warningsimport numpy as npimport pandas as pd

2021-11-24 20:17:07 8886

原创 Java基础16----方法可变参数

可变参数的最大作用是可以让我们灵活 的决定方法的参数个数实例:写一个方法实现任意多个整数的求和传统的方法是使用数组包装数据public class Demo{ public static void main(String[] args) { int data[] = new int[] {1, 3, 5, 2, 6}; System.out.println(sum(data)); } public static int sum(int[] da

2021-11-23 15:59:31 351

原创 Java数组2----二维数组

文章目录

2021-11-23 15:22:31 413

原创 Java数组1----数组的定义与使用

文章目录基本概念数组的定义与使用foreach语句基本概念数组的本质是:一组相关变量(具有相同的数据类型)的集合,在Java中数组被定义为一种引用数据类型。那么声明数组就像我们实例化对象一样就需要用到new关键字了。数组定义数组动态初始化:数组中的内容为该数组的数据类型的默认值数据类型[] 数组名称 = new 数据类型[数组长度] ;数据类型 数组名称[] = new 数据类型[数组长度] ;数组静态初始化:定义时就设置好了数组中的内容简化格式: 数据类型[] 数组名称 = {数

2021-11-23 08:00:00 476

原创 Java面向对象6----几个简单的类实践案例

前面学习了Java中的类的相关知识,这里通过几个简单的案例来进一步熟悉内容分案例1:Dog类属性:颜色,品种,姓名,年龄方法:咬人,吃饭class Dog { private String name; // 狗的名字 private String color; // 狗的颜色 public int getAge() { return age; } public void setAge(int age) { this.age

2021-11-21 18:28:39 1507

原创 Java面向对象5----代码块

文章目录定义普通代码块构造代码块静态代码块定义在Java中定义在 {} 中的结构就称为代码块,根据代码块出现的位置,以及定义的关键子代码块可以分为:普通代码块、构造代码块、静态代码块、同步代码块(多线程使用)普通代码块当程序代码比较长,结构比较复杂的时候,为了避免相同名字的变量冲突时候使用public class Demo { public static void main(String[] args) { { int x = 20; // 局部变量

2021-11-21 17:18:51 395

原创 Java面向对象4----static关键字

static即能定义属性,也能定义方法static属性可以由类名称直接调用,static属性不受对象实例化的使用,也就是说没有对象也是可以使用static属性的

2021-11-21 16:17:11 664

原创 Java面向对象3----this关键字

文章目录this调用属性this调用方法构造方法普通方法综合实例this关键字的三个作用当前类中的属性:this.属性名当前类中的方法:this()----狗仔方法, this.方法名()----普通方法指代当前对象this调用属性之前我们的构造方法的定义如下public Person(String n, int a) { name = n; age = a; }参数n,a分别是未来name和age属性赋值的。但是这样的蚕食很容易让人不知道意义。

2021-11-20 16:06:26 484

原创 Java面向对象2----构造方法和匿名对象

文章目录构造方法的定义:匿名对象的使用构造方法的定义:类中必须至少有一个构造方法,默认无参构造名称与类名称保持一致不设置任何的返回值类型构造方法是是实例化new一个对象的时候自动调用的如果自己定义了构造方法,则不会自动生成无参构造方法,构造方法的定义可以根据自己的需求定义多个,类似于方法的重载。构造方法的使用示例class Person { private String name; // 人的属性名字 private int age; // 人的属性年龄 //

2021-11-20 14:57:02 293

原创 Java面向对象1----类与对象的定义和使用

介绍面型对象的概念,以及Java中类的定义和使用方法

2021-11-19 16:16:54 883

原创 Java基础15----方法的定义与使用

文章目录引言方法的定义方法重载总结引言在日常的程序开发中,经常会遇到这样的情况,程序的某个功能需要被多次执行,不定义相关的方法的话,每次需要执行该功能就需要我们写相关代码,耗时耗力,且程序代码重复度较高,这是很不好的情况。对于这些重复的操作我们就可以定义一个方法来实现,在每次需要执行操作的时候,调用该方法就好了。另外Java中的方法与很大编程语言中提及的函数是一个概念,所有不需要纠结于名称,了解使用方法才是最重要的,此外需要注意的一点是:Java中方法是在主类中定义,并且由主方法直接调用的方法的定义

2021-11-19 09:45:00 500

原创 Java基础14----循环控制以及循环嵌套

文章目录引言break用法continue用法循环嵌套引言前面学习了循环语句,但是一旦循环开始我们就不能控制循环的结束或则其他的行为,这里介绍两个关键字break,continue用于控制循环。同时会展示循环中嵌套循环的使用break用法break用于结束循环,break使用后会直接跳出循环,不在执行break后的任何语句,也不在继续循环。一般都是if结构搭配break语句使用示例:public class Demo { public static void main(String[]

2021-11-19 08:00:00 540

原创 Java基础13----循环语句

文章目录引言while循环while循环do while循环for循环循环选择参考建议总结引言循环的概念十分的容易理解,就是重复执行的操作,就可以称作循环。在Java中有两种循环的结构,while循环,和for循环while循环在Java中有两种形式的while循环while和do…while循环while循环常用结构:while (布尔表达式){    条件为真时执行操作    修改循环条件}示例:求1到

2021-11-18 10:00:00 114

原创 Java基础12----switch语句

文章目录引言switch语句介绍总结引言前面讲了if else分支结构,在Java中还有一种语句能用于分支结构,那就是switch语句。switch语句介绍与if else语句不同的是,if else中的判断条件要求的是布尔表达式,而switch判断的是一个确定的数值。且switch 语句仅能支持char,int,String,枚举类型的数据的判断switch结构:switch (数据) {    case 值 :{   

2021-11-18 07:45:00 458

原创 Java基础11----if条件判断语句

文章目录引言if分支结构总结引言前面已经了解了基本的数据类型,以及运算符,在运算符中我们知道了逻辑运算符和关系运算符,这些运算符通常是用作条件判断,并和今天要学习的if语句一起使用。在我们日常的程序中,存在三种程序结果:顺序结构,分支结构,循环结构,前面的代码基本都是顺序结构,顺序结构的代码总是依次执行每一行代码。if分支结构if结构主要针对于关系表达式进行判断处理。对于分支语句主要有三种使用形式,主要使用if, else 关键字。if条件语句if else 条件语句多条件语句

2021-11-17 21:29:49 1736

原创 Java基础10----运算符3(位运算)

文章目录引言二进制十进制之间的转换位运算与(&)运算或(|)运算异或(^)运算位移操作求反运算总结引言这里将要将的是位运算,位运算是能直接进行二进制数据处理的运算方式。主要有 与(&)、或(|)、异或(^)、求反(~)、和位移(<<, >>)操作。要想理解位运算,需要理解十进制与二进制之间的转换操作二进制十进制之间的转换十进制转二进制:除2取余,商0为止,反向写余数就是十进制的二进制表示。示例:11转换为二进制11 / 2 = 5 … 15 / 2 =

2021-11-17 09:45:00 681

原创 Java基础9----运算符2(关系,逻辑运算符)

文章目录引言关系运算符三目(赋值)运算逻辑运算符引言前面一篇博文,讲了java中的数学运算符,这里将要讲关系运算符和逻辑运算符关系运算符关系运算简单来说就是我们的大小的比较处理。也就是我们的比较运算符。所有的关系运算返回的值都是boolean类型运算符作用举例==比较两个值是否相等,相等为truea == b!=比较两个值是否不等,不等为truea != b>比较左边的值是否大于右边,大于为truea > b<比较左边的值是否

2021-11-17 08:00:00 523

原创 Java基础8----运算符1(数学运算符)

文章目录引言数学运算符四则运算简化运算符自增自减运算符总结引言所有的程序开发,都是数据的处理,对于数据的处理,一定会有操作,而这些操作就是运算符。比如说加法运算就要用到运算符"+".而对于运算符,是存在有优先级先后的关系的,很简单的例子,乘法的优先级高于加减法。对于运算符的优先级问题,个人觉得没必要去背,太多了,只需要技术()的优先级是最高的。所以说通常只需要在表达式中适当的加上括号就好了,而且开发中不应该写比较复杂的运算表达式,否则就是一个很折磨人的情况public class Demo {

2021-11-16 16:32:17 579

原创 Java基础7----数据类型4(String字符串)

文章目录引言字符串字符串定义字符串的连接字符串中+与数值混用转义字符总结引言前面介绍了字符型数据。接下来介绍字符串。需要知道一点,在任何的编程语言中,都没有所谓的字符串这中基本数据类型,但是实际中,各个编程语言为了方便程序的的开发,都会提供字符串的相应描述,严格来说字符串并不是基本数据类型。字符串在Java中使用String来定义字符串,且要求使用双引号来进行字符串的表示。字符串定义public class Demo { public static void main(String[]

2021-11-16 09:30:00 309

原创 Java基础6----数据类型3(字符型)

文章目录引言字符型char与int的关系查看中文字符的编码总结引言前面我们学了整型,浮点型和布尔型。基本把处理数字的数据类型学完了,但是现实中还有很多的数据是文字的,这里我们讲介绍字符型来处理文字类型数据字符型Java中使用char来定义字符型变量,在Java中使用 ‘’ 定义的内容就是字符,示例如下public class Demo { public static void main(String[] args) { // char 变量名 = '字符'

2021-11-16 07:45:00 570

原创 Java基础5----数据类型2(浮点型,布尔型)

文章目录引言浮点型double型float型boolean型总结引言前面一章讲了整型数据类型,这里讲浮点数和bool型数据浮点型浮点型描述的是小数,在Java中只要是小数,默认都是double类型,所以说在以后定义小数,都建议直接使用double来定义。double型变量的定义与前面的定义方式一致,不在详细解释了。在前面我们知道了,数值之间进行运算,最终的结果有两种转换的方式:自动转换:小类型在运算前先自动转换为大类型,再运算强制转换:我们自己决定运算的数据类型,通过各种强制转换手法实现。

2021-11-15 16:37:11 729

原创 Java基础4----数据类型1(整型数据类型)

文章目录引言整型int型long型byte型总结引言程序的最终目的就是对数据的处理,既然要对数据进行处理,那么的就需要提供各种类型的数据定义。不同的数据类型表示的数据范围不同。在Java中对数类型分为两大类基本数据类型:描述的是一些基本的数字单元数值型整型:byte, short, int, long 。默认值0浮点型: float, double.默认值0.0布尔型:boolean。默认值false字符型:char。默认值’\u0000’引用数据类型:牵扯到内存关系的使用

2021-11-15 08:00:00 796

原创 java基础3----注释、标识符与关键字

文章目录注释单行注释多行注释文档注释标识符与关键字注释注释是开发中的一项重要组成技术,合理的注释可以让项目维护更加的方便。注释的本质在于,编译器在进行程序编译的时候发现注释的存在,将不在对注释的内容进行编译,在Java中对与注释有三类单行注释:// 注释内容多行注释:/* 内容 */文档注释:/** 内容 */ 文档注释中还有很多的内容,一般推荐使用开发工具生成单行注释在日常的写代码中使用比较多,也比较方便public class Demo { public static vo

2021-11-14 17:02:46 570

原创 Java基础2----第一个程序hello world

文章目录引言创建文件编写代码运行程序在命令行运行程序在IDE中运行程序程序解读总结引言几乎所有的编程语言都是从hello world开始的。本次java 的学习也是不例外的。这篇文章将展示hello word实现中java都做了什么工作创建文件所有的Java源代码文件的后缀都是java。我们新建一个Hello.java文件。文件名一定大写开头,至于原因后面在解释编写代码再Hello.java文件中输入如下的代码public class Hello { public static void

2021-11-14 08:00:00 409

原创 Java基础1----java介绍

文章目录简介Java语言的主要特点可移植性JDK介绍简介Java是现在最流行的编程语言之一,并且自身拥有庞大且完善的生态系统,可以实现我们的任何需求。Java是由SUN公司开发的一个编程语言。从最初到现在Java出现了一些不同的技术发展Java标准呢开发(J2SE,JAVA SE):提供的是底层的支持,实现了桌面程序的开发Java嵌入式开发(J2ME JAVA ME):嵌入式的开发Java企业开发(J2EE JAVA EE):主要进行企业平台的搭建,现在主要的开发是互联网平台Java语言的

2021-11-13 23:03:05 359

原创 tensorflow学习2----tensorflow2基础知识介绍

文章目录基础概念介绍数据类型张量的生成常用函数张量的计算特征标签组合将输出转换为符合每个类别的概率分布梯度的计算总结基础概念介绍人工智能:简单理解就是让机器具有人的思维和意识人工智能三学派:行为主义:基于控制论构建感知–控制体系符号主义:基于算数逻辑表达式,求解问题先把问题描述为表达式,再求解表达式连接主义:仿生学,模仿神经元连接关系数据类型tensorflow基本的数据类型:int8/16/32/64, float16/32/64, bool, string张量的生成张量:与num

2021-11-08 08:00:00 455

原创 tensorflow学习1----windows下tensorflow2.*的安装(anaconda环境)

环境windows10python3.7anaconda3安装tesdorflow创建虚拟环境conda create -n tensorflow2 python=3.8# 指定python版本号为3.8.虚拟环境的名字为tensorflow2.# 后续的安装在这个环境下进行,免得出错弄坏本机的环境安装tensorflow2以上的版本激活虚拟环境activate tensorflow2安装pip install tensorflow# 这一步花费比较多的时间,耐心等待就好了。

2021-11-03 16:46:59 90

原创 numpy中vstack以及hstack的使用详解

文章目录序言vstack使用数据有相同的shape行数相同列数不同行数不同,列数相同行数列数都不同hstack使用同样的shape行数相同列数不同行数不同列数相同行数列数都不同序言两个方法都是用作数据拼接,只不过拼接的维度方向不同,这篇文章会详细将两个方法的各种使用以及产生的结果注意点:两个方法都只接受一个参数vstack使用vstack要求拼接的数据具用相同的列数。vstack相当于将数据一行一行的向后堆叠a = np.array([1, 2, 3])b = np.array([11, 22

2021-10-26 15:27:15 8791 1

原创 机器学习sklearn----初识KMeans

文章目录概述KMeans中几个概念KMeans工作过程KMeans使用示例导入相关模块生成原始数据通过KMeans分类KMeans常用属性分类结果展示KMeans中的predict方法总结概述KMeans是一种无监督学习的方法。他是一种分类算法。用于探索原始数据,将原始数据中相同属性的样本归为一类。这篇文章只讲KMeans的简单使用,关于评估结果好坏的内容,看我下一篇文章。KMeans中几个概念簇: 即分组,KMeans将数据分为K个簇,簇间差异大,簇内差异小质心: 簇中所有数据的均值就是该簇的

2021-10-16 14:28:00 893 2

原创 机器学习sklearn----逻辑回归(LogisticRegression)使用详解

文章目录为什么需要逻辑回归重要参数penalty参数示例L1,L2的效果对比处理多多分类问题总结为什么需要逻辑回归逻辑回归是由线性回归演变而来的一个分类算法,所以说逻辑回归对数据的要求比较高。对于分类器来说,我们前面已经学习了几个强大的分类器(决策树, 随机森林等),这些分类器对数据的要求没有那么高,那我们为什么还需要逻辑回归呢?主要在于逻辑回归有以下几个优势:对线性关系的拟合效果好到丧心病狂:特征与标签之间的线性关系极强的数据,比如金融领域中的信用卡欺诈,评分卡制作,电商中的营销预测等等相关的数据

2021-09-21 22:54:49 33650 1

原创 PCA降维算法应用实例----kaggle手写数字识别

文章目录序言正题编程环境数据准备导包导入数据PCA参数的选择画降维后特征的信息量累计和曲线结合模型,进一步选择n_components的值结合模型,寻得最佳参数KNN模型表现PCA用于训练集测试集可能的两种思路两种思路的对比训练集测试集的划分思路一结果思路二结果总结序言在前面的博文中我们了解了降维算法PCA,以及PCA的参数。这篇文章建立在对PCA有了一定的基础的前提上。本篇文章主要将PCA算法在实际中的应用。包含PCA参数的选择,训练集,测试集上PCA的使用,解决PCA实际应用中的困惑。本文使用的是k

2021-07-11 20:14:42 2047 14

原创 sklearn之datasets模块常用功能详细介绍

文章目录序言datasets简单概述loader模块数据集总览示例(boston房价数据集)maker模块分类型数据的生成make_blobs()make_circles()make_moons()回归型数据的生成make_regression()序言datasets模块对我们初入机器学习的小萌新来说,真的是帮助很大,但是去官网阅读又都是英文,阅读起来有点困难。基于这点,特意写了这篇文章来简单介绍datasets的2个主要模块。每个模块会有一个简单的示例,告诉我们怎样获得数据,这篇文章主要将获得数据,

2021-06-18 17:17:08 7484 9

digit-recongizer.zip

kaggle digit-recoginzer 数字识别数据,用于入门的手写数字识别,常用的deep learning,神经网络,机器学习数据集

2021-05-28

titanic.zip

适用于机器学习分类模型的测试训练。

2021-05-17

空空如也

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

TA关注的人

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