- 博客(83)
- 资源 (2)
- 收藏
- 关注
原创 tensorflow语义分割计算mIoU时忽略某一类别
在做语义分割的时候,有不少数据集中的部分类别是我们不想让其参与mIoU计算的。tensorflow忽略某一类别计算mIoU的方法网上比较少。经过阅读tensorflow文档,总结出一下求解方法:数据准备:1、先理解一维张量:假设有张量a,ba = np.array([0, 1, 2, 3]) # 真实b = np.array([0, 1, 0, 3]) # 预测手动计算一下mIoU类别0:= 交集 / 并集 = 1 / 2 = 0.5类别1:= 1 / 1 =
2022-04-30 22:48:26
1849
原创 python列表删除所有满足某条件的值
# 删除列表中所有值等于1或者2的元素a = [1, 1, 1, 2, 2, 3, 4, 5, 1, 2, 3, 4, 2]b = list(filter(lambda x: x!=1 and x!=2, a))print(b)# b: [3, 4, 5, 3, 4]
2021-11-10 13:11:55
3254
原创 lightGBM算法API参数说明
1 lightGBM的安装windows下:pip3 install lightgbmmac下:安装链接2 lightGBM参数介绍2.1 Control ParametersControl Parameters 含义 用法 max_depth 树的最大深度 当模型过拟合时,可以考虑首先降低 max_depth min_data_in_leaf 叶子可能具有的最小记录数 默认20,过拟合时用 feature_fraction 例如
2021-09-13 10:34:58
646
原创 XGBoost API 参数
1 xgboost的安装:官网链接:https://xgboost.readthedocs.io/en/latest/pip3 install xgboost2 xgboost参数介绍xgboost虽然被称为kaggle比赛神奇,但是,我们要想训练出不错的模型,必须要给参数传递合适的值。xgboost中封装了很多参数,主要由三种类型构成:通用参数(general parameters),Booster 参数(booster parameters)和学习目标参数(task parame
2021-09-12 16:34:58
502
原创 tensorflow2.1 构建Vgg16、GoogLeNet-v1、resNet18
一、Vgg16from tensorflow.keras.layers import Conv2D, Dense, BatchNormalization, ReLU, MaxPool2D, Flatten, Dropout, InputLayerfrom tensorflow.keras.models import Sequentialdef make_block(conv_num, filters): """ :param conv_num: 卷积层数量 :para
2021-09-01 11:37:01
574
原创 C语言选择排序
#include<stdio.h>#include<stdlib.h>int main(){ int i, j = 0; int a[] = { 2,3,44,5,1,2,70,77,90,23,45,6,7,88,10,9 }; int n = sizeof(a) / sizeof(a[1]); int temp=0; printf("排序前数组为:\n"); for (i = 0; i <= n - 1; i++) { printf("%4d.
2021-08-28 10:52:18
130
原创 C语言队列的两种实现
### 本文比较注重动手能力,关于各种数据结构的理论知识请查阅书籍或相关网页,代码部分都有注释一、基于循序表的循环队列#include<stdlib.h>#include<stdio.h>#define MaxSize 20typedef struct{ int data[MaxSize]; int front,rear;}squeue, *squlink;//清空队列void Clearsqueue(squlink q){ q->front=
2021-08-20 16:12:25
188
原创 C语言中栈的两种实现方法
一、顺序栈#include<stdio.h>#include<stdlib.h>#define maxsize 64//定义栈typedef struct{ int data[maxsize]; int top;}sqstack,*sqslink;//设置栈空void Clearstack(sqslink s){ s->top=-1;}//判断栈空int Emptystack(sqslink s){ if (s->top&
2021-08-19 22:53:14
728
原创 c语言链表
#include<stdio.h>#include<stdlib.h>struct Student{ int s_number; float s_score; struct Student *next;};struct Student * create(){ struct Student *head=NULL, *p1, *p2; while(1) { p1 = (struct Student *) malloc(sizeof(struct .
2021-07-28 00:26:30
145
原创 C语言 冒泡排序
#include<stdio.h>#include <stdlib.h>int main(){ int array[10]={0}; for(int i=0;i<=9;i++){ int n = rand(); array[i]=n; } for(int i=0;i<=9;i++){ printf("%12d",array[i]); } for(int i=9;i>0;i--){ for(int j=0;j<=i-1;j++.
2021-07-11 01:04:54
148
原创 plt 绘制矩形框
import matplotlib.pyplot as pltimport matplotlib.patches as mpathesimport numpy as npimport mathx = 6.53023y = 3.970426l = math.sqrt(1+2.5*2.5)angle_1 = 0.5194235 angle_2 = math.atan(1/2.5) point_start = (x-l*math.cos(angle_1+angle_2), y-l*math.
2021-04-22 10:38:14
3663
原创 机器学习中的Bagging
一、前言(1)集成学习集成学习通过建立几个模型来解决单一预测问题。它的工作原理是生成多个分类器/模型,各自独立地学习和作出预测。这些预测最后结合成组合预测,因此优于任何一个单分类的做出预测。(2)集成学习中boosting和Bagging在集成学习中boosting是用来解决欠拟合问题,Bagging是用来解决过拟合问题。只要单分类器的表现不太差,集成学习的结果总是要好于单分类器的。二、Bagging和随机森林(1)Bagging集成原理目标:把下面的圈和方块进行分.
2021-04-02 17:02:12
720
原创 决策树API、泰坦尼克号生存预测案例
一、决策树API在sklearn中使用sklearn.tree.DecisionTreeClassifier(criterion=’gini’, max_depth=None,random_state=None)构建决策树其中:criterion 特征选择标准 "gini"或者"entropy",前者代表基尼系数,后者代表信息增益。一默认"gini",即CART算法。 min_samples_split 内部节点再划分所需最小样本数 这个值限制了子树继续划分的条件,如果某节点
2021-03-31 18:21:46
286
原创 机器学习中的特征提取
特征提取是将任意数据(如文本或图像)转换为可用于机器学习的数字特征,特征提取是为了计算机更好的去理解数据。特征提取大体上可以分为三大类:字典特征提取(特征离散化) 文本特征提取 图像特征提取(深度学习)本篇文章中我们只讨论前两种特征提取方法。一、字典特征提取作用:对字典数据进行特征值化。APIsklearn.feature_extraction.DictVectorizer(sparse=True,…)DictVectorizer.fit_transform(X) X:字
2021-03-30 16:48:55
7609
原创 ID3、C4.5、cart决策树的比较
(1)公式:(2)ID3 算法缺点:ID3算法在选择根节点和各内部节点中的分支属性时,采用信息增益作为评价标准。信息增益的缺点是倾向于选择取值较多的属性,在有些情况下这类属性可能不会提供太多有价值的信息. ID3算法只能对描述属性为离散型属性的数据集构造决策树。(3)C4.5算法 做出的改进(为什么使用C4.5要好) 用信息增益率来选择属性 可以处理连续数值型属性 采用了一种后剪枝方法 对于缺失值的处理C4.5算法的优缺点 ...
2021-03-30 11:50:47
1929
原创 基尼值和基尼指数
CART 决策树 [Breiman et al., 1984] 使用"基尼指数" (Gini index)来选择划分属性。CART 是Classification and Regression Tree的简称,这是一种著名的决策树学习算法,分类和回归任务都可用。一、基尼值和基尼指数基尼值Gini(D):从数据集D中随机抽取两个样本,其类别标记不一致的概率。故,Gini(D)值越小,数据集D的纯度越高。数据集 D 的纯度可用基尼值来度量: ...
2021-03-30 11:39:40
6741
1
原创 熵、信息增益、信息增益率
一、熵(1)原理初中物理我们对“熵”这个东西懵懵懂懂,印象中仿佛对物体内部的热效应有关,时隔这么多年在机器学习、深度学习领域的学习中又看见了它的踪影,不免有点让人有点熟悉又陌生的感觉。“熵”这个东西看不见又摸不着,到底什么是“熵”?“熵”是用来干什么的?“熵”是一个系统里面的混乱程度的度量、标尺。系统混乱程度越低,系统的熵值越小,反之越大。我们先从物理学的角度出发,假设相同条件下有一桶冰水和一桶热水,哪一个的熵值会大呢?冰水中的分子热运动速度较慢,内部的分子排布比较有规律。热水内部温
2021-03-29 21:42:45
10832
原创 机器学习分类任务中怎么解决类别不平衡问题
一、准备工作(1)Imblearn安装当遇到数据类别不平衡的时候,我们该如何处理。在Python中,有Imblearn包,它就是为处理数据比例失衡而生的。安装Imblearn,默认是在python3.6版本及以上。在安装的时候注意要使用管理员的权限,否则可能会报错,如果是windows系统,要是用管理员方式打开cmd窗口,如果是linux环境,需要加上sudopip install imbalanced-learn(2)创造类别不平衡数据集from sklearn.dataset
2021-03-29 11:59:56
909
2
原创 分类模型的评估方法
(1)混淆矩阵在分类任务中,预测结果(Predicted Condition)与正确标记(True Condition)之间存在四种不同的组合,构成混淆矩阵,既适用于二分类任务,又适用于多分类任务。(2)精确率(Precision)与召回率(Recall)准确率 =(TP+TN)/ (TP+FP+FN+TN)精确率:预测结果为正例样本中真实为正例的比例(了解) = TP / (TP + FP)召回率:真实为正例的样本中预测结果为正例的比例(查得全,对正样本的区分能力) = TP.
2021-03-28 22:53:14
3390
原创 逻辑回归、肿瘤预测案例
一、逻辑回归(1)定义与使用场景逻辑回归(Logistic Regression)是机器学习中的一种分类模型,逻辑回归是一种分类算法,虽然名字中带有回归。由于算法的简单和高效,在实际中应用非常广泛。应用场景举例:是否为垃圾邮件 是否患病 金融诈骗 虚假账号看到上面的例子,我们可以发现其中的特点,那就是都属于两个类别之间的判断。逻辑回归就是解决二分类问题的一种方法。(2)逻辑回归的输入与输出逻辑回归的输入其实就先线性回归的输出,可以简单的理解h(w)就是逻辑回归的输入。..
2021-03-28 20:47:36
849
原创 sklearn中线性回归API介绍、波士顿房价预测
一、线性回归api(1)通过正规方程优化sklearn.linear_model.LinearRegression(fit_intercept=True)通过正规方程优化 参数 fit_intercept:是否计算偏置 属性 LinearRegression.coef_:回归系数 LinearRegression.intercept_:偏置 (2)通过梯度下降方法优化sklearn.linear_model.SGDRegressor(loss="squared_loss"
2021-03-27 11:58:13
886
原创 sklearn 数据集划分和数据预处理
机器学习一般的数据集会划分为两个部分:训练数据:用于训练,构建模型 测试数据:在模型检验时使用,用于评估模型是否有效划分比例:训练集:70% 80% 75% 测试集:30% 20% 25%数据集划分apisklearn.model_selection.train_test_split(arrays, *options) 参数: x 数据集的特征值 y 数据集的标签值 test_size 测试集的大小,一般为float random_state 随机数种子,不同的种
2021-03-25 11:12:37
1252
原创 机器学习中常用的距离
1 距离公式的基本性质2 常见的距离公式2.1 欧式距离(Euclidean Distance):欧氏距离是最容易直观理解的距离度量方法,我们小学、初中和高中接触到的两个点在空间中的距离一般都是指欧氏距离。举例:X=[[1,1],[2,2],[3,3],[4,4]];经计算得:d = 1.4142 2.8284 4.2426 1.4142 2.8284 1.41422.2曼哈顿距离(Manhattan Distance):...
2021-03-18 22:32:17
539
原创 sklearn实现K-近邻算法、鸢尾花分类、facebook签到位置预测
1 K-近邻算法(KNN)概念K Nearest Neighbor算法又叫KNN算法,这个算法是机器学习里面一个比较经典的算法, 总体来说KNN算法是相对比较容易理解的算法。如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。2 KNN算法流程1)计算已知类别数据集中的点与当前点之间的距离2)按距离递增次序排序3)选取与当前点距离最小的k个点4)统计前k个点所在的类别出现的频率5)返回前k个点出现频率最高的类别作为
2021-03-18 22:08:44
316
原创 标准差、方差、协方差、协方差矩阵
1、标准差、方差假设一组样本数据是x1, x2, x3, x4, ......xn ,表示这组数据的平均数,所以样本到的平均距离也就是标准差S表示如下:标准差的平方为方差,方差的计算公式如下:标准差和方差都是衡量一组数据的离散程度的统计量,在实际的运算中标准差和方差越小,表示离散程度越小,也就是数据越稳定。2、协方差、协方差矩阵https://zhuanlan.zhihu.com/p/92705299...
2021-03-18 20:28:38
1901
原创 目标检测IOU计算
IOU是交并比(Intersection-over-Union)是目标检测中使用的一个概念是产生的候选框(candidate bound)与原标记框(ground truth bound)的交叠率,即它们的交集与并集的比值。最理想情况是完全重叠,即比值为1。在多目标跟踪中,用来判别跟踪框和目标检测框之间的相似度。IoU是两个区域的交除以两个区域的并得出的结果from __future__ import print_functionfrom numba import jitimport
2021-03-17 22:20:58
554
原创 多目标追踪
1.多目标跟踪分类多目标跟踪,即MOT(Multi-Object Tracking),也就是在一段视频中同时跟踪多个目标。MOT主要应用在安防监控和自动驾驶等领域中。这里的目标状态可以是目标的位置信息、目标是否存在信息。1.1 初始化方法多目标跟踪问题中并不是所有目标都会在第一帧出现,也并不是所有目标都会出现在每一帧。那如何对出现的目标进行初始化,可以作为跟踪算法的分类表征。常见的初始化方法分为两大类,一个是Detection-Based-Tracking(DBT),一个是Detec
2021-03-17 20:02:07
2577
1
原创 opencv中的dnn模块
1.1. DNN模块简介OpenCV中的深度学习模块(DNN)只提供了推理功能,不涉及模型的训练,支持多种深度学习框架,比如TensorFlow,Caffe,Torch和Darknet。OpenCV为什么要实现深度学习模块? 轻量型。DNN模块只实现了推理功能,代码量及编译运行开销远小于其他深度学习模型框架。 使用方便。DNN模块提供了内建的CPU和GPU加速,无需依赖第三方库,若项目中之前使用了OpenCV,那么通过DNN模块可以很方便的为原项目添加深度学习的能力。
2021-03-16 17:30:56
8027
1
原创 imutils工具库使用
1.imutils功能简介imutils是在OPenCV基础上的一个封装,达到更为简结的调用OPenCV接口的目的,它可以轻松的实现图像的平移,旋转,缩放,骨架化等一系列的操作。安装方法:pip install imutils在安装前应确认已安装numpy,scipy,matplotlib和opencv。2.imutils的使用方法2.1 图像平移OpenCV中也提供了图像平移的实现,要先计算平移矩阵,然后利用仿射变换实现平移,在imutils中可直接进行图像的平移。tr
2021-03-15 20:49:28
3933
1
原创 使用numba 对python数学运算加速
1 numba介绍umba是一个用于编译Python数组和数值计算函数的编译器,这个编译器能够大幅提高直接使用Python编写的函数的运算速度。numba使用LLVM编译器架构将纯Python代码生成优化过的机器码,通过一些添加简单的注解,将面向数组和使用大量数学的python代码优化到与c,c++和Fortran类似的性能,而无需改变Python的解释器。numba的编译方式如下图所示:为什么选择numba?虽然有 cython 和 Pypy 之类的许多其他编译器,选择Numbade
2021-03-15 15:28:32
623
原创 损失函数 DiceLoss 的 Pytorch、TensorFlow 实现
转载于:http://www.79tui.com/happy/627148.html
2021-03-11 16:58:05
1144
原创 多分类交叉熵损失计算
loss = -[0* ln(0.05) + 1 * ln(0.95) + 0 * ln(0) + 0 * ln(0.1) + 0 * ln(0.8) + 1* ln(0.1)] / 2 = 1.177
2021-03-09 17:19:12
1286
原创 Django配置使用mysql数据库
Django配置使用mysql数据库一、安装mysql数据库(网上有很多教程)win10的不在此进行阐述,下面贴出ubuntu系统mysql环境搭建https://blog.youkuaiyun.com/qq_39197555/article/details/113813262?spm=1001.2014.3001.5501二、创建django项目参考https://blog.youkuaiyun.com/qq_39197555/article/details/113809570?spm=1001.2014.3
2021-02-26 18:18:32
245
原创 Django视图之路由分发
通过浏览器来请求一个页面时,使用视图函数来处理这个请求,视图函数处理之后要给浏览器返回页面内容。一、视图函数的使用视图函数通常定义在每个应用的views.py文件内。视图内定义的函数必须有一个request参数。视图处理完全请求要返回一个HttPResponse对象的实例from django.shortcuts import renderfrom django.http import HttpResponse# Create your views here.def index(re
2021-02-25 18:43:23
207
原创 Django2.x中url路由的path()与re_path()参数解释
参考文献:https://www.cnblogs.com/cpl9412290130/p/9611293.html
2021-02-24 00:46:45
188
原创 Django后台管理
(1)本地化——语言和时区本地化在项目的Setting.py 文件中去修改(2)创建管理员python manage.py createsuperuser此时可以通过 pythonmanage.py runserver 启动后台服务我们可以在访问http://127.0.0.1:8000/admin 进入后台管理页面 输入用户名和密码此时我们的站点里面没有我们的数据表,需要在应用下的admin.py文件中去注册。(3)注册模型类在应用下的adm...
2021-02-23 15:04:22
165
原创 数据库范式学习和ER模型
第一范式(1NF):强调的是字段的原子性,即一个字段不能够再分成其他几个字段。 说明:这种表结构设计就没有达到 1NF,要符合 1NF 我们只需把字段拆分,即:把 contact 字段拆分成 name 、tel、addr 等字段。第二范式(2NF)满足 1NF的基础上,另外包含两部分内容:一是表必须有主键。二是非主键字段必须完全依赖于主键,而不能只依赖于主键的一部分。举例:OrderDetail表中的主键为OrderID(订单ID)和ProductID(产品...
2021-02-21 20:57:23
248
原创 mysql-外键-视图-事务-索引
一、外键外键的作用:防止无效信息的插入注意: 关键字: foreign, 只有innodb数据库引擎 外键本身是一种约束,和 not null 等约束一样。二、视图 视图就是一个能够把复杂SQL语句的功能封装起来的一个虚表。所以我们在创建视图的时候,主要的工作就落在创建这条SQL查询语句上。视图是对若干张基本表的引用,一张虚表,不存储具体的数据(基本表数据发生了改变,视图也会跟着改变)。 视图的好处:方便操作,特别是查询操作,减少复杂的...
2021-02-21 00:55:09
252
2
原创 mysql实战操作
数据准备-- 创建 "京东" 数据库create database jing_dong charset=utf8;-- 使用 "京东" 数据库use jing_dong;-- 创建一个商品goods数据表create table goods( id int unsigned primary key auto_increment not null, name varchar(150) not null, cate_name varchar(40) not null,
2021-02-20 21:53:54
182
原创 mysql高级查询
数据准备一、分组查询组查询就是将查询结果按照指定字段进行分组,字段中数据相等的分为一组。分组查询基本的语法格式如下:GROUP BY 列名 [HAVING 条件表达式] [WITH ROLLUP]说明:列名: 是指按照指定字段的值进行分组。 HAVING 条件表达式: 用来过滤分组后的数据。 WITH ROLLUP:在所有记录的最后加上一条记录,显示select查询时聚合函数的统计和计算结果1)查询每种性别的人数select gender, count(*) f
2021-02-20 18:14:13
740
常用预训练网络权重.txt
2020-04-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人