- 博客(38)
- 收藏
- 关注
原创 主成分分析(PCA)
概念在减少需要分析的指标同时,尽量减少原指标包含信息的损失,以达到对所收集数据进行全面分析的目的。由于各变量间存在一定的相关关系,因此有可能用较少的综合指标分别综合存在于各变量中的各类信息。主成分分析就属于这类降维的方法。对于如下三维数据降维为二维有:PCA算法流程1 数据中心化数据中心化就是将坐标原点放在数据中心。2.样本的协方差矩阵找坐标系方向,找到方差最大的方向。假设我们手上有如下数据D′D'D′,我们可以推断它由白数据DDD的由来过程:我们要求的旋转方向,即为RRR矩阵
2021-10-27 20:47:55
613
原创 机器学习---聚类算法
1. k-means算法一个k-means例子动态效果python实现kmeans数据:import numpy as npimport matplotlib.pyplot as plt # 载入数据data = np.genfromtxt("kmeans.txt", delimiter=" ")plt.scatter(data[:,0],data[:,1])plt.show()# 计算两个样本之间的距离 def euclDistance(vector1, vec
2021-10-25 21:40:01
286
原创 贝叶斯算法
贝叶斯定理朴素贝叶斯朴素贝叶斯的几种模型1.多项式模型该模型常用于文本分类,特征是单词,值是单词的出现次数。2.伯努利模型在伯努利模型中,每个特征的取值是布尔型的,即true和false,或者1和0。在文本分类中,就是一个特征有没有在一个文档中出现。3.高斯模型处理连续的特征变量,应该采用高斯模型。高斯分布(正态分布)的概率密度公式如下:当数据为连续的特征变量时,我们只需要根据训练数据求得该特征期望和方差,然后代入上面的公式,就能够判断测试数据在该特征下属于某一类的概率是多
2021-10-24 22:33:55
2247
原创 机器学习之集成学习
集成学习baggingbagging:# 导入算法包以及数据集from sklearn import neighborsfrom sklearn import datasetsfrom sklearn.ensemble import BaggingClassifierfrom sklearn import treefrom sklearn.model_selection import train_test_splitimport numpy as npimport matplotl
2021-10-22 17:53:20
156
原创 机器学习----决策树
信息熵增益计算决策树sklearn实现信息熵增益决策树from sklearn.feature_extraction import DictVectorizerfrom sklearn import treefrom sklearn import preprocessingimport csvimport graphviz # 读入数据,数据是支付需要用csv读取Dtree = open(r'AllElectronics.csv', 'r')reader = csv.reader
2021-10-21 11:44:25
256
原创 KNN算法
基本思想具体实例:Python实现KNN算法import matplotlib.pyplot as pltimport numpy as npimport operatordef knn(x_test, x_data, y_data, k): # 计算样本数量 x_data_size = x_data.shape[0] # 复制x_test np.tile(x_test, (x_data_size,1)) # 计算x_test与每一个样本的差值
2021-10-14 17:53:42
109
原创 神经网络----单层感知器
单层感知器结构二分类的单层感知器的学习过程:题目:import numpy as npimport matplotlib.pyplot as plt#输入数据X = np.array([[1,3,3], [1,4,3], [1,1,1], [1,0,2]])#标签Y = np.array([[1], [1], [-1],
2021-10-04 18:36:27
600
原创 逻辑回归----线性逻辑回归与非线性逻辑回归
线性逻辑回归逻辑回归的预测函数逻辑回归的代价函数如果采用线性回归的代价函数的形式,随着自变量θ\thetaθ的变化将会出现很多的局部最小值(如下图左边所示),不适合使用梯度下降法求解参数。所以采用了如下代价函数:所以,合并后的损失函数如下:利用梯度下降法更新参数如下:逻辑回归正则化:python梯度下降法实现逻辑线性回归:import matplotlib.pyplot as pltimport numpy as npfrom sklearn.metrics import
2021-10-03 22:04:02
1553
原创 岭回归,LASSO回归与弹性网
这两种回归主要针对特征之间存在多重共线性或者特征数多于样本量的情况。话句话说就是特征向量组成的矩阵不是一个满秩矩阵(特征数大于对应矩阵的秩)岭回归岭回归的代价函数是经过L2正则化(正则化可以降低模型复杂度)后的代价函数,如下,并对其求导令导数为0,得到参数θθθ(也即www)如下:L2范数惩罚项的加入使得(XTX+λI){( X^TX+\lambda I)}(XTX+λI)满秩,保证了可逆,但是也由于惩罚项的加入,使得回归系数www(或θ\thetaθ)的估计不再是无偏估计。所以岭回归是以放弃无偏
2021-10-02 17:10:47
2028
原创 线性回归-----标准方程法实现线性回归方程
标准方程法推导对于标准方程法,我们得到其损失函数如下(因为损失函数为二次函数,所以图像上只有一个坑,不可能出现多个极小值):将其展开为矩阵形式:对矩阵进行求导:梯度下降法和标准方程法的比较:用python实现标准方程法部分data.csv数据:import numpy as npfrom numpy import genfromtxtimport matplotlib.pyplot as plt# 载入数据data = np.genfromtxt("data.csv",
2021-09-30 17:22:56
1574
原创 非线性回归-----sklearn实现多项式回归
多项式回归用sklearn实现多项式回归:数据:import numpy as npimport matplotlib.pyplot as pltfrom sklearn.preprocessing import PolynomialFeaturesfrom sklearn.linear_model import LinearRegression# 载入数据data = np.genfromtxt("job.csv", delimiter=",")x_data = data[1:
2021-09-26 21:33:25
856
原创 线性回归-----梯度下降法实现线性回归方程
一元线性回归方程:代价函数:梯度下降法:要想拟合一个重合度高的函数,就必须使得其损失函数 J( θ\thetaθ0_00, θ\thetaθ1_11) 的值最小(如果是梯度下降法也可能是局部最小),要使得损失函数变小的速度最快,就得沿着对应参数最陡的方向下降(即对应的偏导方向),所以对θ\thetaθ0_00, θ\thetaθ1_11的下一次迭代值要根据损失函数对自己的偏导来确定。下面是下降的过程图:其中学习率α决定每一步下降的长度,如果太小下降到最低点需要很多步计算,会浪
2021-09-25 16:57:33
434
原创 Mybatis基础
mybatis的开发步骤(查询)mybatis的增删改mybatis核心配置文件测试分页:mybatis相关APImybatis的Dao层的代理开发方式(不用实现Dao层接口,框架自动实现)
2021-09-20 21:34:46
93
原创 spring事务控制
一.基于XML的声明式事务控制二. 基于注解的声明式事务控制在要添加事务的方法上添加@Transactional注解并添加属性
2021-09-20 14:53:37
95
原创 springmvc异常处理
使用springmvc提供的简单异常处理器:step1:配置异常处理器step2:编写异常页面step3:在Controller层调用异常函数,会跳转到我们自己写的异常页面
2021-09-18 22:49:54
77
原创 springmvc开发步骤
springmvc开发步骤步骤①:导入springmvc相关坐标步骤②:配置springmvc前端控制器步骤③④:步骤⑤:配置springmvc的核心配置文件步骤⑥:客户端发起测试请求springmvc执行流程
2021-09-17 16:12:31
606
原创 spring注解与集成Junit
spring注解spring原始注解spring新注解spring集成Junitspring集成Junit的步骤:步骤①:导入spring集成Junit的坐标步骤②③④⑤:
2021-09-03 11:55:16
99
原创 spring数据源
spring数据源数据源(连接池)的作用数据源的开发步骤步骤①:步骤②③④:spring容器注入数据源注入c3p0数据源示例如下:
2021-09-02 15:46:28
63
原创 spring配置值文件
spring体系结构spring 开发步骤步骤①步骤②步骤③④步骤⑤总体结构:spring配置文件基本配置用于获取对象交由spring来创建,默认情况下它调用的是类中的无参构造函数,如果没有无参构造函数则对象不能创建成功。基本属性:id:Bean实例在spring容器中的唯一标识class:Bean的全限定名称scope:对象的作用范围init_method:指定类中的初始化方法名称,在创建对象之后执行(该方法是通过对象调用的)。destroy_method:指
2021-09-02 11:36:48
155
原创 高精度运算
高精度运算在 C++ 中,64 位无符号整型,即unsigned long long最大只能表示到 2642^{64}264-1=18446744073709551615。而有些题目可能需要用到更大的整数类型比如我们做过的 a + b 问题,给你两个数,输出它们的和,非常简单可如果 a,b 的范围超出了unsigned long long所表示的范围那该怎么做呢?对于非常大范围数据的运算,其实我们可以通过数组来模拟实现高精度的运算在学习如何对高精度的数进行运算之前,我们首先来看一看,应该如何读取
2021-05-11 17:02:41
812
原创 Linux定时任务调度
crond任务调度crontab [选项] (任务调度) -e 编辑crontab定时任务 -l 查询crontab任务 -r 删除当前用户的crontab任务 crontab定时任务编辑占位符说明: 第一个*:一小时中的第几分钟(*/10: 每隔10分钟执行一次) 第二个*:一天当中的第几小时 第三个*:一个月当中的第几天 第四个*:一年当中的第几月 第五个*:一周当中的星期几 如:0 0 1,15 * 1 表示每月1号和15号,每周1的0点0分都会执行命令步骤:
2021-04-29 00:01:47
79
原创 Linux进程管理
显示系统执行的进程ps [选项] (显示进程信息) -a 显示 当前 终端的所有进程信息 -u 以用户的格式显示进程信息 -x 显示后台进程运行的参数 -e 显示所有进程 -f 以全格式显示进程信息 一般查看进程情况使用命令: ps -aux | more 查看某一个xxx进程命令: ps -aux | grep xxx 显示查看进程的父进程命令: ps -ef (ppid即为父进程号)au(x) 输出格式 :USER PID %CPU %MEM VSZ RSS TTY STAT
2021-04-28 10:18:17
75
原创 linux实用指令
切换到指定运行级别init [012356]说明:0:关机1:单用户(该模式下root用户登录不用密码,不能远程操作)2:多用户无网络服务3:多用户有网络服务(最常用)4:保留5:图形界面6:重启系统的运行级别的配置文件 /etc/inittab 里面存放了开机的默认运行级别帮助指令当我们对某个指令不熟悉时,我们可以使用linux提供的帮助指令来了解这个指令的使用方法man 命令或者配置文件 获得帮助信息help 命令 获
2021-04-26 19:19:25
109
原创 Linux网络配置
指定固定ip方法:直接修改配置文件/etc/sysconfig/network-scripts/ifcfg-eth0修改目的:为了不让Linux系统每次启动都随机分配一个ip修改内容如下:ONBOOT=yesBOOTPROTO=staticIPADDR=要固定的ipGATEWAY=网关DNS1=与网关保持一致修改后重启网络服务即可生效:service network restart修改主机名改了主机名后可以直接访问主机名而不用访问对应的ip地址步骤:(1)查看当前主机名
2021-04-25 23:54:22
85
原创 Linux 磁盘管理
Linux磁盘管理常用三个命令df:列出文件系统的整体磁盘使用量df [-ahikHTm] [目录或文件名]选项与参数:-a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;-h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;-T :显示文件系统类型(例如 ext3);-i :不用硬盘容量,而以 inode 的数量来显示如:(1)将容量结果以易读的容量格式显示出来[root@www ~] df -hFilesystem
2021-04-24 23:52:29
74
原创 最短段中出现所有数
题目:博览馆正在展出由世上最佳的 M位大师所画的图画。蒜头君想到博览馆去看这几位大师的作品,可是那里的博览馆有一个很奇怪的规定,就是在购买门票时必须说明两个数字 a和 b,代表他要看展览中的第 a幅至第 b幅画(包含 a 和 b)之间的所有图画,而门票的价钱就是一张画一元。为了看到更多大师的画,蒜头君希望入场后可以看到所有大师的图画(至少各一张),可是他又想节省金钱。作为蒜头君的朋友,他请你写一个程序决定他购买门票时的 a值和 b值。输入格式:第一行是 N(1≤M≤10610^6106)和 M (1
2021-04-22 17:49:41
129
原创 连续的01抵消最长段
题目:近来,蒜头君致力于研究班上同学的配对问题(别想太多,仅是舞伴),通过各种推理和实验,他掌握了大量的实战经验。例如,据他观察,身高相近的人似乎比较合得来。万圣节来临之际,蒜头君准备在学校策划一次大型的“非常男女”配对活动。对于这次活动的参与者,蒜头君有自己独特的选择方式。他希望能选择男女人数相等且身高都很接近的一些人。这种选择方式实现起来很简单。他让学校的所有人按照身高排成一排,然后从中选出连续的若干个人,使得这些人中男女人数相等。为了使活动更热闹,蒜头君当然希望他能选出的人越多越好。请编写程序告诉
2021-04-22 16:26:00
155
原创 Linux 用户和用户组及文件权限管理
Linux系统用户账号的管理:1.添加新的用户账号useradd 选项 用户名选项:-c comment: 指定一段注释性描述。-d 目录: 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。-g 用户组: 指定用户所属的用户组。-G 用户组,用户组: 指定用户所属的附加组。-s Shell文件: 指定用户的登录Shell。-u 用户号: 指定用户的用户号,如果同时有-o选项,则可
2021-04-19 12:12:12
931
原创 Linux 文件与目录管理
常见的处理目录的命令:ls(英文全拼:list files): 列出目录及文件名cd(英文全拼:change directory):切换目录pwd(英文全拼:print work directory):显示目前的目录mkdir(英文全拼:make directory):创建一个新的目录rmdir(英文全拼:remove directory):删除一个空的目录cp(英文全拼:copy file): 复制文件或目录rm(英文全拼:remove): 删除文件或目录mv(英文全拼:move file
2021-04-18 23:50:57
65
原创 vim编辑器
1.vim的模式转换:命令模式:用户刚刚启动 vi/vim,便进入了命令模式。u:复原前一个动作,即撤销命令。. :小数点!重复前一个动作的意思。光标移动:[Ctrl] + [f]:屏幕『向下』移动一页,相当于 [Page Down]按键[Ctrl] + [b]: 屏幕『向上』移动一页,相当于 [Page Up] 按键0 或功能键[Home]:这是数字『 0 』,移动到这一行的最前面字符处$ 或功能键[End]: 移动到这一行的最后面字符处G:移动到这个档案的最后一行nG: n 为数
2021-04-18 15:48:24
231
原创 Linux目录结构
1.系统启动必须:/boot:这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。/etc:etc 是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录,如果你更改了该目录下的某个文件可能会导致系统不能启动。/lib:lib 是 Library(库) 的缩写这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。/sys:这是linux2.6内.
2021-04-17 22:10:19
191
原创 java多线程(4/4学习笔记)
创建线程的三种方式:(1)继承Thread类,重写run方法(2)实现Runnable接口,实现run方法(3)实现Callable接口获取线程id和名称:(1)普遍适用:Thread.CurrentThread().getId() / Thread.CurrentThread().getName()(2)继承Thread类适用:this.getId() / this.getName()线程的常见方法:(1)sleep:当前线程主动休眠相应毫秒(2)yied:当前线程主动放弃时间片,回到
2021-04-06 20:03:03
187
1
原创 集合学习总结(4/3学习笔记)
List接口:特点:(1) 有序有下标(2) 可以重复遍历方法:(1)使用for -->list.get(i)(2)使用增强for (3)使用迭代器list.iterator() (4)使用列表迭代器 list.listIterator() [可正反两个方向遍历] 实现类:(1)ArrayList (数组结构实现,线程不安全)对应的线程安全的Vector,如果没用向ArrayList中添加元素时容量为0,一旦添加元素,其容量立即变为10,如果超过当前容量大小,每次扩容
2021-04-03 21:51:01
220
2
原创 快速排序(划分函数partition和主元pivot选取)
快排是一种基于分治思想的排序算法,在如此众多的排序算法中,其综合排序速度最佳(大多情况为O(nlog2n)),这也是快排之所以叫快排的一个原因之一。先来看一下快排的基本轮廓。//快排函数 static void quickSort(int[] arr, int begin, int end) { if (begin < end) {//分治区间大于2就继续划分 ...
2020-02-16 10:44:10
4072
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人