- 博客(7)
- 收藏
- 关注
原创 机器学习:决策树识别数字
决策树原理代码from math import logimport os'''参数: data:数据集,包含分类返回: 该数据集的熵'''def calS(data): l = len(data) label = {} for i in data: cur = i[-1] if cur not in label.keys(): label[cur] = 0 label[cur]
2020-09-29 10:25:34 892
原创 机器学习:knn识别数字
识别数字原理通过求出测试样例与所有训练样例的距离来判断分类求出试样例与所有训练样例的距离(小学二年级学的距离公式:距离的平方=(x1-x2)^ 2+(y1-y2)^ 2)将距离从小到大排序后取前k个k个中最多是哪个分类结果既是那个分类纯python不依赖任何库代码由该原理易得代码:写完代码后运行可得结果,但是却发现一个致命缺陷,整个过程需要耗费30分钟(训练集2000,测试集1000)加numpy库代码一系列学习后得知,使用numpy库可以大大提高矩阵的运行速度,得知次消息加入nu
2020-09-28 08:23:12 726
原创 virtualbox + ubuntu + hadoop
安装virtualbox下载安装包下载连接下载完成之后运行,一直下一步即可,按需求可更改路径。安装Ubuntu新建虚拟机打开virtualbox,控制—>新建。设置名字,路径分配内存,不宜过小,2-3G即可选择现在创建虚拟硬盘,然后一直下一步按需分配内存,我这里分配了20G设置iso文件(下载地址)路径,进入虚拟机如果感觉显示界面太小,视图—>自动缩放安装系统设置自动缩放后可能需要修改分辨率,右键—>display setting—>按照电脑选择合适
2020-09-22 12:52:12 631
原创 线段树
线段树线段树是一种二叉树,它的每一个节点用于维护一个区间的权值,因为它是平衡二叉树,所以在查找的时候可以把时间复杂度压缩到O(logn)。线段树主要思想是分治回溯通过修改叶节点再向上回溯来更改整棵树的权值。线段树可以用于解很多类问题,如区间修改,单点查询;区间修改,区间查询;单点修改,区间查询;连续最长区间等等。大致给个框架const int N = 1e5+10;const int m...
2019-08-10 14:19:30 111
原创 带权并查集
带权并查集并查集把N个元素分成一些元素的集合,需要反复查该元素所在的集合。主要思路:把每个节点压缩到祖先节点的子节点,使查询时用的时间更少代码int s[N] = {0};//存每个节点的父亲节点下标,祖先为0,所以初值赋0int parent(int n)//求出祖先节点并压缩路径{ int x = n; while(s[x])x = s[x]; s[n] = x; re...
2019-08-10 12:02:49 127
原创 并查集
并查集把N个元素分成一些元素的集合,需要反复查该元素所在的集合。举例有N个人(用1~n代表),给出m个x,y,表示x和y有亲戚关系(如果x和y是亲戚,y和z是亲戚,则x和z是亲戚),判断这n个人最多可以分为多少个家族,并且询问p次,给出p个x和y,判断是否在同一个家族里。思路用一个初始化全为0的数组a来存放每个元素所存在的组号设变量num = 1,ans = 0,变量num用于给元素...
2019-04-24 23:23:03 117
原创 01背包问题
01背包问题有一个可以装m重量的背包有n个物品,每个物品只能被取一次这n个物品的重量为w[i],价值为v[i];用这个背包存下总重量不超过m,总价值最大的物品动态规划核心:状态转移方程:dp[i][j] = max(dp[i-1][j], dp[i-1][j-w[i]] + v[i]);dp为一个初始化全为0的二位数组,dp[n][m] (n,m只表大小,并非实际定义时代码)...
2019-04-18 14:52:25 213
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人