- 博客(44)
- 收藏
- 关注
原创 图像特征
图像特征图像特征要有区分性,容易被比较。一般认为角点,斑点等是较好的图像特征特征检测:找到图像中的特征特征描述:对特征及其周围的区域进行描述Harris算法思想:通过图像的局部的小窗口观察图像,角点的特征是窗口沿任意方向移动都会导致图像灰度的明显变化。API: cv.cornerHarris()Shi-Tomasi算法对Harris算法的改进,能够更好地检测角点API: cv2.goodFeatureToTrack()SIFT原理:尺度空间极值检测:构建高斯金字塔,高斯差
2021-01-06 19:51:14
333
原创 视频读写与追踪
视频读写读取视频:读取视频:cap = cv.VideoCapture()判断读取成功:cap.isOpened()读取每一帧图像:ret,frame = cap.read()获取属性:cap.get(proid)设置属性:cap.set(proid,value)资源释放:cap.release()保存视频保存视频: out = cv.VideoWrite()视频写入:out.write()资源释放:out.release()视频追踪meanshift原理:一
2021-01-05 17:20:43
197
原创 图像处理2
几何变换总结图像缩放:对图像进行放大或缩小cv.resize()图像平移:指定平移矩阵后,调用cv.warpAffine()平移图像图像旋转:调用cv.getRotationMatrix2D获取旋转矩阵,然后调用cv.warpAffine()进行旋转仿射变换:调用cv.getAffineTransform将创建变换矩阵,最后该矩阵将传递给cv.warpAffine()进行变换透射变换:通过函数cv.getPerspectiveTransform()找到变换矩阵,将c
2021-01-05 17:17:14
179
原创 图像处理cv
图像处理cv图像是什么图:物体反射或透射光的分布像:人的视觉系统所接受的图在人脑中所形版的印象或认识模拟图像和数字图像模拟图像:连续存储的数据,数字图像:分级存储的数据数字图像位数:图像的表示,常见的就是8位分类:二值图像,灰度图像和彩色图像OpenCV 的模块core模块实现了最核心的数据结构及其基本运算,如绘图函数、数组操作相关函数等。highgui模块实现了视频与图像的读取、显示、存储等接口。imgproc模块实现了图像处理的基础方法,包括图像滤波、图像的
2021-01-02 19:05:21
1372
1
原创 HMM
HMM马尔科夫链即为状态空间中从一个状态到另一个状态转换的随机过程。该过程要求具备“无记忆”的性质:下一状态的概率分布只能由当前状态决定,在时间序列中它前面的事件均与之无关隐马尔可夫模型(Hidden Markov Model,HMM)是统计模型,它用来描述一个含有隐含未知参数的马尔可夫过程。隐马尔可夫模型(Hidden Markov Model,HMM)是统计模型,它用来描述一个含有隐含未知参数的马尔可夫过程。常见术语可见状态链隐含状态链转换概率输出概率
2020-12-28 19:28:21
226
原创 EM算法
M算法EM算法也称期望最大化(Expectation-Maximum,简称EM)算法。**它是一个基础算法,是很多机器学习领域算法的基础,**比如隐式马尔科夫算法(HMM)等等。EM算法是一种迭代优化策略,由于它的计算方法中每一次迭代都分两步,其中一个为期望步(E步),另一个为极大步(M步),所以算法被称为EM算法(Expectation-Maximization Algorithm)。极大似然估计根据已知条件,通过极大似然估计,求出未知参数;极大似然估计就是用来估计模型参数的统计
2020-12-28 19:27:43
264
原创 SVM核方法
SVM的核方法SVM的核方法将原始输入空间映射到新的特征空间,从而,使得原本线性不可分的样本可能在核空间可分。常见核函数线性核多项式核RBF核Sigmoid核SVM回归是让尽可能多的实例位于预测线上,同时限制间隔违例(也就是不在预测线距上的实例)。SVM算法apiVM的核方法将原始输入空间映射到新的特征空间,从而,使得原本线性不可分的样本可能在核空间可分。SVM算法apisklearn.svm.SVCsklearn.svm.NuSVCsklearn.s
2020-12-28 19:27:10
654
原创 SVM算法
SVM算法SVM算法定义【了解】寻找到一个超平面使样本分成两类,并且间隔最大。硬间隔和软间隔【知道】硬间隔只有在数据是线性可分离的时候才有效对异常值非常敏感软间隔尽可能在保持最大间隔宽阔和限制间隔违例之间找到良好的平衡VM算法api初步使用知道SVM算法API的用法>>> from sklearn import svm>>> X = [[0, 0], [1, 1]]>>> y = [0, 1]
2020-12-28 19:26:39
219
原创 朴素贝叶斯
朴素贝叶斯概率【了解】一件事情发生的可能性联合概率【知道】包含多个条件,且所有条件同时成立的概率条件概率【知道】事件A在另外一个事件B已经发生条件下的发生概率贝叶斯公式【掌握】案例:商品评论情感分析 代码实现import pandas as pdimport numpy as npimport jiebaimport matplotlib.pyplot as pltfrom sklearn.feature_extraction.text impo
2020-12-28 19:25:59
310
原创 聚类算法
聚类算法聚类算法分类【了解】粗聚类细聚类聚类的定义【了解】一种典型的无监督学习算法,主要用于将相似的样本自动归到一个类别中计算样本和样本之间的相似性,一般使用欧式距离API:import matplotlib.pyplot as pltfrom sklearn.datasets.samples_generator import make_blobsfrom sklearn.cluster import KMeansfrom sklearn.metrics import
2020-12-28 19:25:17
242
原创 集成学习算法
集成学习算法简介什么是集成学习【了解】通过建立几个模型来解决单一预测问题机器学习两个核心任务【知道】1.解决欠拟合问题弱弱组合变强boosting2.解决过拟合问题互相遏制变壮Baggingbagging集成bagging集成过程【知道】1.采样 — 从所有样本里面,采样一部分2.学习 — 训练弱学习器3.集成 — 使用平权投票随机森林介绍【知道】随机森林定义随机森林 = Bagging + 决策树流程:1.随机选取m条数据
2020-12-24 10:17:26
133
原创 KNN算法 案例
K-近邻算法API1.步骤分析1.获取数据集2.数据基本处理3.特征工程4.机器学习(模型训练)5.模型评估导入模块from sklearn.datasets import load_irisfrom sklearn.model_selection import train_test_splitfrom sklearn.preprocessing import StandardScalerfrom sklearn.neighbors import KNeig
2020-12-24 10:15:00
474
2
原创 KNN算法2
K-近邻算法APIsklearn.neighbors.KNeighborsClassifier(n_neighbors=5)n_neighbors:int,可选(默认= 5),k_neighbors查询默认使用的邻居数1 步骤分析1.获取数据集2.数据基本处理(该案例中省略)3.特征工程(该案例中省略)4.机器学习5.模型评估(该案例中省略)1 距离公式的基本性质:非负性、统一性、对称性、直递性【了解】2 常见距离公式2.1 欧式距离(Euclide
2020-12-24 10:14:56
171
原创 KNN算法学习1
1 KNN算法总结k近邻算法优缺点汇总优点:简单有效重新训练的代价低适合类域交叉样本KNN方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,KNN方法较其他方法更为适合。适合大样本自动分类该算法比较适用于样本容量比较大的类域的自动分类,而那些样本容量较小的类域采用这种算法比较容易产生误分。缺点:惰性学习KNN算法是懒散学习方法(lazy learning,基本上不学习),一些积极学习的
2020-12-24 10:14:52
172
原创 mysql 数据库day3
– 什么是视图?– 通俗的讲,视图就是一条SELECT语句执行后返回的结果集。– 所以我们在创建视图的时候,主要的工作就落在创建这条SQL查询语句上。– 视图的特点– 视图是对若干张基本表的引用,一张虚表,查询语句执行的结果,– 不存储具体的数据(基本表数据发生了改变,视图也会跟着改变);– 视图的最主要的作用– 如果数据库因为需求等原因发生了改变,为了保证查询出来的数据与之前相同,– 则需要在多个地方进行修改,维护起来非常麻烦,这个时候使用视图就可解决这个问题– 视图的定义方式crea
2020-12-24 10:14:49
78
原创 mysql day2逻辑命令
– 查询练习– 查询所有字段– select * from 表名;select * from students;-- 查询指定字段-- select 列1,列2,... from 表名;select name,gender from students;-- 使用 as 给字段起别名-- select 字段 as 名字.... from 表名;select name as "姓名",gender as "性别" from students;-- select 表名.字段 .... fr
2020-12-24 10:14:46
91
原创 mysql命令day1
–01 mysql 数据库的操作ctrl + a 快速回到行首ctrl + e 回到行末ctrl + l 清屏ctrl + c + 回车 结束-- 链接数据库mysql -uroot -pmysql-- 不显示密码mysql -uroot -pmysql-- 退出数据库quit/exit/ctrl + d-- sql语句最后需要有分号;结尾-- 显示数据库版本 versionselect version();-- 显示时间select now();-- 查看当前
2020-12-24 10:14:41
82
原创 二分查找学习
二分查找二分查找又称折半查找,它是一种效率较高的查找方法,1.必须是顺序结构 2.必须是有序数列第一步: 找到中值(取整数)第二步: 要查找的数和中值比较第三步: 若小于中值则在中值前面找,若大于中值则在中值后面找,等于中值时直接返回递归方法:def binary_search(alist, item): """二分查找""" # 数列的长度 n = len(alist) # 递归的结束条件 if n == 0: return False
2020-12-24 10:13:48
147
原创 算法学习day2--算法的稳定性
ction sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。def select_sort(alist): n =len(alist) for j in range(0, n-1): min_index = j for i in range(j+1,n)
2020-12-24 10:13:43
98
原创 栈和队列
栈栈(stack)它是一种运算受限的线性表. 其限制是仅允许在表的一端进行插入和删除运算,这一端被称为栈顶,相对地,把另一端称为栈底. 同时栈的结构特点让它在处理数据的时候符合了先进后出的特点.class Stack(object): """栈""" def __init__(self): self.items = [] def is_empty(self): """判断是否为空""" return self.items =
2020-12-24 10:13:38
85
原创 算法学习day1
1.算法算法是计算机处理信息的本质,为了实现业务目的的各种方法和思路就是算法 穷举法 : 对要解决问题的所有可能情况,一个不漏地进行检验的一种算法算法的五大特性输入: 算法具有0个或多个输入输出: 算法至少有1个或多个输出有穷性: 算法在有限的步骤之后会自动结束而不会无限循环,并且每一个步骤可以在可接受的时间内完成确定性:算法中的每一步都有确定的含义,不会出现二义性可行性:算法的每一步都是可行的,也就是说每一步都能够执行有限的次数完成执行次数函数举例阶非正式术语
2020-12-24 10:13:33
98
原创 python高级正则表达式
1、匹配一行文字中的所有开头的字母内容#coding=utf-8import res=“i love you not because of who you are, but because of who i am when i am with you”content=re.findall(r"\b\w",s)print contentc:\Python27\Scripts>python task_test.py[‘i’, ‘l’, ‘y’, ‘n’, ‘b’, ‘o’, ‘w’, ‘y’
2020-12-24 10:13:27
704
原创 python高级学习day1
property属性:作用:将类中的实例方法当做属性一样去调用,包括获取和设置属性。使用的方式:1、使用装饰器的形式注意:使用@property装饰器装饰的方法一般用来获取数据,使用@方法名.setter装饰器装饰的方法一般用来设置数据,使用@方法名.setter装饰器装饰的方法的方法名必须和使用@property装饰器装饰的方法的方法名一致。class Person(object): def __init__(self): self.__age = 0
2020-12-24 10:13:23
79
原创 python 闭包学习day1
函数的参数:函数是可以被当做参数传递到函数中去的;python当中函数传参传递的是引用;定义一个函数,实际上就是告诉python解释器,我需要开辟一块内存空间,在这里存储功能代码,然后用我的函数名去标记,函数名实际上指向的是这块内存空间,调用函数时,实际上是找到对应的内存空间,执行里面的代码。闭包:概念:1、首先有函数嵌套,2、内部函数使用到了外部函数的变量(包括外部函数的参数),3、外部函数返回了内部函数的引用。那么我们就把这样使用了外部函数变量的内部函数称为闭包。作用:能够保存变
2020-12-24 10:13:16
140
原创 HTTP学习day1
网址的组成:协议、域名(IP地址的别名)、资源路径、参数HTTP协议:HTTP概念:超文本(不止包含普通文本,还包含一些其它的数据,例如:图片、视频链接以及前端资源(CSS、JS等))传输协议。作用:规定了浏览器和web服务器之间数据通信的格式。注意:HTTP协议是基于TCP协议的,发送数据之前需要建立连接。在浏览器中输入网址并访问,到得到固定页面信息,这个过程中发生了哪些事?1、浏览器拿到网址之后,通过DNS服务器先将域名解析成IP地址和端口号;2、根据IP地址和端口
2020-12-24 10:13:10
73
原创 多任务编程--进程和线程day2
网络:概念:实现数据通信的虚拟平台。学习的目的:方便我们后期开发出来的任务模型拿到的结果和web开发人员进行对接。IP地址:用于唯一识别网络中的某台设备的描述,IPV4和IPV6查看机器的IP地址:Linux系统:ifconfigwindows系统:ipconfig检查网络连通状况:ping 公网网址(某一台机器的IP地址)端口:网络中不同机器上的不同的程序完成数据通信是数据传输的通道端口号:通过端口号可以唯一识别一台机器上的某个程序,一共有2**16个分为
2020-12-24 10:13:07
115
原创 多任务编程--进程和线程day1
多任务:提升我们的程序的运行的效率并发:虽然所有的任务都是同时开始执行,但是执行的过程是CPU在这些任务之间来回的切换执行,CPU核心数小于总任务数时的多任务场景。并行:多个任务真正的同时运行,同时执行,CPU核心数大于总任务数。实现方式:多进程:概念:是操作系统资源分配的最小单位,是应用程序执行时的容器。使用python模块实现多进程:# 导入模块import multiprocessing# 创建一个进程对象a = Multiprocessing.Proces
2020-12-24 10:13:02
114
原创 Linux 学习day2
重定向:概念:将输出到终端的信息重定向到其它地方(一般重定向到某个文件)使用方式:覆盖写入某个文件:ls > 文件名追加写入某个文件:ls >> 文件名查看文件内容:cat:查看小文件的内容:cat 文件名 # 可以同时查看多个文件的内容cat 文件名1 文件名2 ...more:查看大文件的内容:more 文件名查看文件的快捷键:回车键:一行一行的翻看向前一页一页的翻看:f向后一页一页的翻看:b退出:q
2020-12-24 10:12:18
78
原创 Linux 学习day1
操作系统:是系统软件作用:向下控制硬件,向上支撑应用软件的运行操作系统、虚拟机软件、虚拟机之间的关系:虚拟机软件是运行在操作系统上的,运行时需要资源,通过虚拟机软件来创建虚拟机,然后可以运行不同的虚拟机系统linux系统:相比于windows系统来说更加稳定,在linux系统中一切皆文件。Linux内核:直接与硬件进行数据交互的软件,操作系统都是基于内核开发出来的软件常见的Linux发行版:UbuntuCentOSRed hatDebian Linux常
2020-12-24 10:12:13
79
原创 面向对象学习day4
模块名重复的后果:会造成数据的覆盖,可能达不到想要的结果。__all__列表的功能:当这个模块中的功能函数或者类按照 from 模块名 import *被导入到其它模块中时,可以使用all列表进行限制:all = [‘功能1’, ‘功能2’, …]包:具有相关作用后者联系的模块放到同一个文件夹下,而且这个文件夹中含有__init__.py文件,那么把这样的文件夹叫做包。制作包的过程:创建一个python package,这是会生成一个__init__.py文件,这个文件控制
2020-12-24 10:12:08
67
原创 面向对象学习day3
单例模式代码:class ATM(object):# 类属性instance = Noneis_first_run = Truedef __new__(cls, *args, **kwargs): """在__new__ 方法控制这个类只生成一个对象""" if cls.instance == None: cls.instance = object.__new__(cls) # cls.instance = super().__new__(cls)
2020-12-24 10:12:01
91
原创 面向对象学习day2
继承:指的是多个类之间的所属关系。class A():passclass B(A):pass经典类和新式类的区别:在python2版本中根据定义类的方式不同区分为经典类和新式类在python3中所有创建出来的类都是新式类他们的区别在于多继承中继承的先后顺序不一样(经典类:深度优先查找,新式类广度优先查找)元类(metaclass):元类是创建类的类,可以通过type()动态的创建一个元类type(类名,(继承的父类名),{属性或者方法})继承的作用
2020-12-24 10:11:56
93
原创 面向对象学习day1
面向对象:面向过程:编程中所有的事情亲力亲为,看中的是过程和步骤;面向对象:编程过程中不是很看重过程和步骤,而是看中我这件事谁能替我完成,想方设法的偷懒。优点:简化编码过程,提升开发效率,抽象应用场景和使用的功能。三大特性:封装、继承、多态。类和对象的关系:先有类(图纸),然后才有对象(具体的生产出来的事物)。通过类来创建(实例化,instantialize)对象(类的实例)。语法格式:# 类的定义class Name(): pass# 创建对象var = N
2020-12-24 10:11:49
79
原创 IA学习日记5
3 小结•isnull、notnull判断是否存在缺失值【知道】•np.any(pd.isnull(movie)) # 里面如果有一个缺失值,就返回True•np.all(pd.notnull(movie)) # 里面如果有一个缺失值,就返回False•dropna删除np.nan标记的缺失值【知道】•movie.dropna()•fillna填充缺失值【知道】•movie[i].fillna(value=movie[i].mean(), inplace=True)•replace替换具体某些值【
2020-12-24 10:11:42
215
原创 AI学习日记4
学习知识:4.pandas4.1 初识pandaspandas的优势【了解】增强图表可读性便捷的数据处理能力读取文件方便封装了Matplotlib、Numpy的画图和计算4.2 pandas数据类【****】【##】1.series对应的是一维数组1.创建pd.Series()列表、数组、字典2.属性S.index – 索引S.values – 值S[1] – 获取对应下标的值2.DataFrame【**】对应的是二维数组1.创建pd.DataFrame()dat
2020-12-24 10:11:37
498
原创 IA 学习日记3
小扩展:如何查看源代码【拓展】:jupyter – 通过直接点击就可以查看pycharm – 通过快捷键【ctrl + 点击】%time 和 %%time%time – 表示当前行,运行用了多长时间%%time – 表示整个代码块,用了多长时间如果用这个,一定要放到代码块的第一行3. numpy3.1 Numpy的优势1.Numpy介绍用于快速处理任意维度的数组支持常见的数组和矩阵操作使用ndarray来处理多维数组2.创建ndarray的方法np.array([])3.nd
2020-12-24 10:11:06
153
原创 AI 学习日记2
1.jupyter notebook介绍1.1 库的安装1.安装pip3 install -r requirements.txt2.注意:需要安装在有anaconda环境对应的标示:(base)c:……1.2 jupyter notebook的使用【】1.什么是jupyterjupyter名字源自Julia、Python 和 R(数据科学的三种开源语言)jupyter 保存的文件是.ipynb2.使用1.启动在中命令中输入,进而启动网页版的代码输入界面方法一:在终端(cmd)中
2020-12-24 10:11:02
573
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅