- 博客(114)
- 资源 (30)
- 收藏
- 关注
原创 感知机模型
感知机模型(Perceptron Model)也叫做神经元模型,设计灵感即来自于生物神经元的运行机制,依次完成信息接收、处理、输出的过程。当前大放异彩的各种人工神经网络模型即由一个个人工神经元构成,因此,本文介绍的感知机模型(神经元模型)就是各种神经网络模型的基本单元。
2024-09-06 11:53:49
1201
原创 逻辑回归模型
逻辑回归模型(Logistic Regression,LR),由名称上来看,似乎是一个专门用于解决回归问题的模型,事实上,该模型更多地用于解决分类问题,尤其是二分类问题。这并不矛盾,因为逻辑回归直接输出的是一个连续值,我们将其按值的大小进行切分,不足一定范围的作为一个类别,超过一定范围的作为一个类别,这样就实现了对分类问题的解决。概况来说就是,先对数据以线性回归进行拟合,输出值以Sigmoid函数进行映射,映射到0和1之间,最后将S曲线切分上下两个区间作为类别区分的依据。
2024-09-05 22:28:45
1062
原创 分类模型的算法性能评价
分类模型是机器学习中一种最常见的问题模型,在许多问题场景中有着广泛的运用,是模式识别问题中一种主要的实现手段。分类问题概况起来就是,对一堆高度抽象了的样本,由经验标定了每个样本所属的实际类别,由特定算法训练得到一个分类器,输入样本属性即自动计算出其所属类别,从而完成特定的识别任务。在特定问题中,算法性能的评价是一个重要的方面,它一般由学习器在测试数据中的性能表现来直接衡定,常见的评价指标有准确率、精准度(查准率)、召回率(查全率)、F1值、ROC-AUC值、Kappa系数等。
2024-07-09 15:31:58
1131
原创 AttributeError: module ‘backend_interagg‘ has no attribute ‘FigureCanvas‘. Did you mean: ‘FigureCanv
matplotlib切换图形界面显示终端为TkAgg。多是由环境的兼容性导致。
2024-07-08 17:22:21
246
原创 聚类模型的算法性能评价
作为机器学习领域的重要内容之一,聚类模型在许多方面能够发挥举足轻重的作用。所谓聚类,就是通过一定的技术方法将一堆数据样本依照其特性划分为不同的簇类,使得同一个簇内的样本有着更相近的属性。依不同的实现策略,聚类算法有很多种,如基于距离的k-means、基于密度的DBSCAN等。在聚类完成之后,其性能的评估是一个不可规避的问题,常见的评估方法依有无事先的标记性信息分为外部评估法和内部评估法。
2024-06-27 17:45:24
1381
1
原创 回归模型的算法性能评价
在一般形式的回归问题中,会得到系列的预测值,它们与真实值(ground truth)的比较表征了模型的预测能力,为有效量化这种能力,常见的性能评价指标有可解释方差(EVS)、平均绝对误差(MAE)、均方误差(MSE)、均方根误差(RMSE)、决定系数(R2)等。值得一提的是,回归问题分单输出情形和多输出情形,在多输出情形下,可以对各维度结果进行平均计算或以不同的权重进行计算。
2024-06-05 16:47:53
1106
原创 Python缺失值处理实现
在数据处理相关工作中,读取的数据中常常会有缺失值的情况,为顺利进行后续的操作,需要首先对缺失值进行处理,处理的方式一般为**删除**或**填充**,Python中提供了专门的工具包,可以方便地进行实现。读取操作可以由pandas模块实现,通常直接读一个excel或csv文件,创建为DataFrame对象,模块中的dropna方法和fillna方法可以实现对缺失值的删除和填充。
2023-11-28 23:32:41
1962
原创 三种常见的平滑滤波方法
均值滤波、中值滤波、高斯滤波是三种常见的平滑滤波方法,其中均值滤波和高斯滤波是线性技术,中值滤波是非线性技术。它们实现的基本原理是基本一致的,指定一个滑动窗口,计算其中的均值、中值、卷积值输出到当前位置。均值滤波、高斯滤波对高斯噪声表现较好,但对椒盐噪声表现较差;中值滤波则对椒盐噪声表现较好,对高斯噪声表现较差。
2023-08-10 00:44:51
8865
1
原创 DBSCAN聚类
DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一种基于密度的聚类算法,簇集的划定完全由样本的聚集程度决定。聚集程度不足以构成簇落的那些样本视为噪声点,因此DBSCAN聚类的方式也可以用于异常点的检测。
2023-08-05 18:36:49
524
原创 常见距离计算的Python实现
常见的距离有曼哈顿距离、欧式距离、切比雪夫距离、闵可夫斯基距离、汉明距离、余弦距离等,用Python实现计算的方式有多种,可以直接构造公式计算,也可以利用内置线性代数函数计算,还可以利用scipy库计算。
2023-08-02 23:20:15
3760
原创 Python实现字符串模糊匹配
在一个字符串中,有时需对其中某些内容进行模糊匹配以实现条件的判定,如在“你好,hello,world”中判断是否含有“llo”。Python中通过re.search()方法实现,特别地,对于首位起始的内容匹配,也可通过re.match()方法实现。若匹配成功,它们返回一个re.Match对象;若匹配失败,返回None。
2023-04-15 19:55:28
3807
原创 k-means聚类
当前人工智能技术实现的一种主要手段是机器学习,而机器学习能够解决的问题主要有三种:分类、聚类、回归,有监督的是分类,无监督的是聚类。所谓聚类,就是以一定的方法将一堆样本依它们本身的数据特性划分成不同的簇类,以达成不同的技术目的,k-means就是这样一种基础聚类算法。
2023-01-30 18:39:27
1179
原创 kNN分类
kNN(k nearest neighbor,k近邻)是一种基础分类算法,基于“物以类聚”的思想,将一个样本的类别归于它的邻近样本。
2023-01-07 18:24:00
1232
原创 基于准则匹配的图像对准
在图像处理相关的问题中,图像对准是一类典型的问题,也就是要将两幅图严丝合缝地对应起来。通常来讲,两幅图大小不一,一个是模板,一个是母图,也就是要在母图中搜寻定位到与模板图最为接近的区域。
2023-01-02 11:22:30
1174
2
原创 Matlab打印运行进度
在运行matlab程序的过程中,有时候需要实时地掌握程序运行的进度,尤其对于一些耗时较长的循环操作,能够及时地输出运行进度,显得非常有必要。
2022-07-15 21:53:24
1819
原创 MATLAB更改初始工作路径
matlab每次启动时,会默认进入指定的工作路径,这个初始路径是可以自行设定的,方式如下。方式一:主页 -> 预设 -> MATLAB -> 常规,指定初始工作文件夹。方式二:MATLAB启动时会自动地执行toolbox\local\matlabrc.m这个文件,因此只需要s1.打开该文件 edit matlabrc.m;s2.在该文件的最后一行加入一条语句:cd ‘(想进入的路径)’,保存。...
2022-03-20 14:40:20
3444
原创 Java中将jsonArray导出为Excel
java中使用jxl导出excel时,需指定WritableSheet对象中对应于每个单元格的数据。List类型是一种常用的数据类型,它里面的元素是实体对象,当将它创建为WritableSheet对象时,它的每个实体元素可以通过简单索引循环的形式遍历到,但对实体每个属性的遍历,却不能以简单索引循环的形式实现,而只能用getter方法去逐一获取,这样,对不同的实体,均需特定的实现代码与之对应,势必会造成大量的代码冗余。 一种有效的策略是,将List转化为jsonArray,把实体对象的属性名构
2021-11-27 13:18:04
1483
转载 flask中在js中如何解析render_template传递给html的数据
现象说明: 在flask中通常在使用render_template渲染一个.html页面文件时,可以传入一下参数,在html源码中通过{{变量名}}的方式来调用数据,但是假如在html文件中的JavaScript中想要调用该数据变量,直接调用可能出现识别为Undefined类型的情况。问题分析: 出现上述情况是因为:经常会有字符 空格 ' "" 等被转义成其他字符,这其实是特殊字符进行转义,防止js注入 在js中可以利用tojson解决。比如:数组 num = [“ni”
2021-11-23 14:03:28
1886
原创 python多线程的简单使用
from threading import Timerimport timedef run1(): print(1) print(2) print(3)def run2(): print("A") print("B") print("C")if __name__ == "__main__": t1 = Timer(1, run1) #新建一个Time线程,设定启动1秒后执行函数run1 t2 = Timer(0, run2) #.
2021-11-23 13:43:53
432
原创 java中double变量保留小数位数
public class Test { public static void main(String[] args) { double a = 12.123456789; String a_str = String.format("%.3f", a); //以字符串形式保留位数,此处保留3位小数 double a_1 = Double.parseDouble(a_str); //将字符串转回double类型 }}
2021-11-22 14:23:49
3663
原创 使用pmml跨平台部署机器学习模型Demo——房价预测
基于房价数据,在python中训练得到一个线性回归的模型,在JavaWeb中加载模型完成房价预测的功能。一、 训练、保存模型工具:PyCharm-2017、Python-39、sklearn2pmml-0.76.1。1.训练数据house_price.csvNosquare_feetprice11506450220074503250845043009450535011450640015450760018450
2021-11-21 12:08:14
1665
1
原创 使用pmml实现跨平台部署机器学习模型
一、概述 对于由Python训练的机器学习模型,通常有pickle和pmml两种部署方式,pickle方式用于在python环境中的部署,pmml方式用于跨平台(如Java环境)的部署,本文叙述的是pmml的跨平台部署方式。 PMML(Predictive Model Markup Language,预测模型标记语言)是一种基于XML描述来存储机器学习模型的标准语言。如,对在Python环境中由sklearn训练得到的模型,通过sklearn2pmml模块可将它完整地保存为一个pmml格式的文件,再
2021-11-20 19:02:12
4746
4
原创 解决PMML namespace URI httpwww.dmg.orgPMML-4_4 is not supported
使用pmml的方式跨平台部署机器学习模型时,在java中加载模型,出现了该错误原因:java的jar包版本与PMML文件的版本不相符,jar包的版本过低无法解析PMML文件。如果升级jar包,加载模型的当前语法不可用;因此,降低PMML文件的版本号是安全可靠的。解决:将pmml文件中xmlns="…/PMML-4_4"改为xmlns="…/PMML-4_3"再运行,成功。参考https://blog.youkuaiyun.com/qq_32113189/article/details/107542
2021-11-18 21:06:20
1868
原创 html5柱状图示例
<!DOCTYPE html><html lang="en"><canvas id="canvas1" width="1000" height="300"></canvas><script> (function () { window.addEventListener("load", func1(),func2(), false); })(); function func1() {
2021-11-04 11:34:51
779
原创 python中使用time.pref_counter()精确计时
time.pref_counter()返回一个CPU级别的精确时间值,以秒为单位。它通常用于测量某段程序的运行时间,因此取两次调用pref_counter()的差值才有意义。import timetime_start = time.perf_counter()for i in range(100000): a = 0time_end = time.perf_counter()time_consumed = time_end - time_startprint("耗费的时间: {}
2021-11-02 22:20:06
4901
3
原创 python中datetime的常用操作
datetime是用于处理日期和时间的模块,一些常用的操作可通过提供的基本函数实现。引入模块——import datetime。1.datetime转字符串——strftime()函数有两种写法:datetime.datetime.strftime(datatime对象,格式化的字符串)或datatime对象.strftime(格式化的字符串)注:若格式化的字符串中含中文,需使用format方式表示。myTime = datetime.datetime.now() # 获取系统当前时间s
2021-11-02 22:16:13
1393
原创 隐马尔可夫模型的解码
1.问题描述 隐马尔可夫模型(HMM)的解码问题指,给定模型和输出序列,如何找出最有可能产生这个输出的状态序列。自然语言处理中,也即如何通过观测信号确定最有可能对应的实际语义。在状态序列上,每个状态位是状态集合中的元素之一,因此该问题等价于在状态集合中的节点构成的有向网络(篱笆网络)中找出一条概率最大的路径(最优路径),如图。该问题可以通过维特比算法得到高效的解决。2.算法叙述 假设 P(st,j)P(s_{t,j})P(st,j)表示从起始时刻到st,js_{t,j}st,j的最优路径的
2021-11-02 21:42:58
1266
原创 维特比算法
一、概述 维特比算法是安德鲁.维特比(Andrew Viterbi)于1967年为解决通信领域中的解码问题而提出的,它同样广泛用于解决自然语言处理中的解码问题,隐马尔可夫模型的解码是其中典型的代表。无论是通信中的解码问题还是自然语言处理中的解码问题,本质上都是要在一个篱笆网络中寻找得到一条最优路径。 所谓篱笆网络,指的是单向无环图,呈层级连接,各层节点数可以不同。如图是一个篱笆网络,连线上的数字是节点间概念上的距离(如间距、代价、概率等),现要找到一条从起始点到终点的最优路径。 在实际问题中,
2021-10-28 21:41:56
2300
2
原创 Python中使用collections.Counter统计序列中元素的频率
from collections import Counterimport numpy as npls = [1, 1, 1, 2, 2, 2, 3.3, 3.3, "aa", "aa", "bb"]r = Counter(ls)# 或 r = Counter(np.array(ls))print(type(r), len(r))print(r)print("\n转化为字典:")d = dict(r)print(type(d), len(d))print(d)...
2021-10-27 15:56:38
429
原创 隐马尔可夫模型
隐马尔可夫模型(Hidden Markov Model, HMM)是关于时序的概率模型,在自然语言处理如语音识别、机器翻译等领域有着广泛的应用。模型的核心是马尔科夫链+独立输出假设。1 模型描述 给定状态集合{q1,q2,...,qN}\left\{ q_1,q_2,...,q_N \right\}{q1,q2,...,qN}和观测集合{v1,v2,...,vM}\left\{ v_1,v_2,...,v_M \right\}{v1,v2,...,vM},已知一个状态能够随机地生成一个
2021-10-16 12:15:40
467
原创 JavaWeb中实现文件上传和下载
一、文件上传1.使用的组件 使用DiskFileItemFactory、ServletFileUpload、FileItem三个组件实现。依赖的jar包为commons-fileupload-1.4.jar、commons-io-2.7.jar,下载地址:https://download.youkuaiyun.com/download/Albert201605/26346276——调用方法的说明DiskFileItemFactory——解析器工厂,用于创建对请求内容的解析器(1) public void
2021-10-14 20:55:48
599
原创 java中实现创建目录、创建文件的操作
一、创建目录mkdir()——仅创建一层目录,返回true或false.mkdirs()——创建一层或多层目录,返回true或false. 也就是,在通常情况下,使用mkdirs()即可满足创建目录的需求。如,File file = new File("D:\\myLevel1\\myLevel2"); //以某路径实例化一个File对象if (!file.exists()){ //如果不存在 boolean dr = file.mkdirs(); //创建目录} 即在D盘根目录
2021-09-29 17:51:28
33005
原创 java遍历List常用的两种方式
如对一个String类型的列表List<String> stringList = new ArrayList<>();stringList.add("张三");stringList.add("李四");stringList.add("王五");遍历方式一:for循环,以索引获取元素for (int i = 0; i < stringList.size(); i++) { String str = stringList.get(i); System.
2021-09-29 13:51:26
9380
原创 java中分别获取Date的年、月、日、时、分、秒的各个值
import java.util.Date;public class Test013 { public static void main(String[] args) { Date myDate = new Date(); System.out.println("当前时间:"+myDate); int year = Integer.parseInt(String.format("%tY",myDate)); System.out.
2021-09-24 22:16:46
4751
1
原创 java中Date与String的相互转换
java中通过SimpleDateFormat可以实现Date与String的相互转换。1.String转Date例1:年月日 时分秒String str1 = "2021-09-24 12:13:14";SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Date myDate1 = null;try { myDate1 = sdf1.parse(str1);}catch (Exception e){
2021-09-24 21:54:26
48375
原创 java中以字符分隔的字符串与字符串数组的相互转换
1.字符串数组拼接成一个以指定字符(包括空字符)分隔的字符串——String.join(),JDK8的新特性String[] strArray = {"aaa","bbb","ccc"};String str = String.join("-",strArray);System.out.println(str);运行结果:aaa-bbb-ccc2.将字符串以逗号为分隔符,转换为字符串数组——split()String str = "aaa,bbb,ccc";String[] str
2021-09-24 16:02:20
2018
原创 Java中使用jxl.jar将数据导出为excel文件
Java对Excel文件的读写操作可由jxl.jar或poi.jar实现,这里使用jxl.jar完成对Excel文件的导出。一、将Excel文件导出在本地步骤: 创建文件 -> 创建工作簿 -> 创建Sheet -> 加入数据 -> 写入文件。示意图示例:由指定的数组生成Excel文件,导出在D盘根目录下,文件名为‘ExportExcelToLocal.xls’。实现程序package cn.exporttoexceldemo;import jxl.Wo
2021-09-16 16:14:56
1614
原创 maven项目中将直接使用jar包的方式改为pom.xml下配置的方式
在maven项目中,原来直接在WEB-INF下导入了jxl.jar包,现改为在pom.xml文件下的依赖项进行标签配置:<!-- https://mvnrepository.com/artifact/net.sourceforge.jexcelapi/jxl --><dependency> <groupId>net.sourceforge.jexcelapi</groupId> <artifactId>jxl</artif
2021-09-14 11:18:22
1013
聚类模型的算法性能评价
2024-06-27
kNN算法原理与python实现 博客地址:https://blog.youkuaiyun.com/Albert201605?type=bl
2023-01-07
SAD+MAD+SSD+MSD+NCC算法matlab实现代码
2022-12-31
commons-fileupload-1.4.jar 和 commons-io-2.7.jar
2021-09-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人