- 博客(63)
- 收藏
- 关注
原创 决策树(手写代码+隐形眼镜项目)
决策树作为一个分类问题,以信息增益作为特征分类的参考依据,作为一个分类算法,决策树可以将分类过程可视化,而且对于模型所不熟悉的数据,决策树也可以从中提炼出一系列的规则,然后根据数据来创造规则,决策树的优点:易于理解,可以处理不相关的数据等等。其缺点也很明显:可以会过拟合。
2023-04-26 00:14:22
706
原创 K近邻算法(手写代码+图像识别实践)
k近邻算法作为一个分类算法,他通过计算不同特征值之间的距离来进行分类,它的工作原理是存在一个样本集合作为训练样本集,且每个样本都存在一个标签,此时,输入一个新的样本不存在标签,我们通过计算这个新样本到这些训练样本集的距离,找出k个最靠近的样本,再对这些样本的标签进行统计,数量最多的则为新样本的标签。
2023-04-24 23:01:37
638
原创 随机森林项目实战---气温预测
随机森林项目实战---气温预测实战项目的三个任务:1.使用随机森林算法完成基本建模:包括数据预处理,特征展示,完成建模并进行可视化展示分析。2.分析数据样本量与特征个数对结果的影响,在保证算法一致的前提下,增加样本个数,观察结果变化,重新进行特征工程,引入新的特征后,观察结果走势。3.对随机森林算法进行调参,找到最合适的参数,掌握机器学习中两种调参方法,找到模型最优参数。...
2022-07-30 00:31:24
4501
原创 线性回归模型笔记(2)
多项式回归,处理非线性数据的方法:将高次方的特征值当做一个新的特征,使用sklearn包中的PolynomialFeatures()
2022-07-13 21:39:44
643
原创 信用卡诈骗检测(经过测试)
import pandas as pdimport matplotlib.pyplot as pltimport numpy as npdata =pd.read_csv(r'')count_classes = pd.value_counts(data['Class'],sort=True).sort_index()count_classes.plot(kind='bar')plt.xlabel('class')plt.ylabel('frequency')""""上面是对原始数据进行展.
2022-03-08 17:47:22
1040
1
原创 java位运算
对于位运算,是指对二进制数的每一位进行运算,其中有与或非,同或等操作,与位| ,或为&,非为~,异或为^,对于与运算来说,如果两个数都为1,则结果为1,或运算,如果两个数有一个为1,则结果为1,异或,两个数不同的话,结果为1。对于异或运算来说,可以用于消除重复等等操作以一个题目为例:存在一个长1001的数组,中间存放着1~1000的数还有一个与其中同样的一个数,现在需要将这个数找到,请设计算法import java.util.Arrays;import java.util.Rando
2022-01-09 22:31:58
343
1
原创 python (tfidf的计算与输出)
tfidf做为计算每个词在文件中的频率,可以过滤掉常见词语,保留重要词语在编程中可以使用jieba包自带的方法进行计算import jieba.analysetest1 =""fencilist=[]with open(r"testtxt",'r',encoding="UTF-8") as test: for line in test: line.strip() test1+=linefencilist=jieba.cut(test1)fencil
2021-09-22 00:11:26
687
原创 java线索二叉树
对于线索二叉树,相对于一般的二叉树,多了指出每一棵树的前驱与后继,此处利用的是二叉链表中的空指针域,线索化是写出一个节点的下一个节点或者前驱。在编写程序中,要建立一个前驱指针,在每次节点向后移动时,前驱节点移动到之前的地方。然后lefttype与righttype是用于判断是左子树还是前驱的package tree;class binarytreess{ private newnode root; //建立一个前驱节点 newnode prenode =null; public
2021-09-22 00:03:47
115
原创 java二叉树的顺序存储
二叉树顺序存储就是根据数组来存放二叉树,通过如果这个节点下标为n,其左子节点为2n+1,右节点为2n+2来判断。在二叉树顺序存储中只考虑完全二叉树。package tree;public class arrdinarytree { public static void main(String[] args) { int[] arr = {1,2,3,4,5,6,7}; arrbinarytree tree=new arrbinarytree(arr); System.out.p
2021-09-21 23:54:20
159
原创 python文本分词及去除停用词
对于文本分词,此处使用的是python自带的jieba包进行,首先我们要先读取我们所需要分词的文章,然后使用jieba.cut进行分词,注意分词时要将这些段落归并成同一个字符串,然后输出的是一个列表。最后写入一个文件中import jieba.analysetest1 =""fencilist=[]with open(r"testtxt",'r',encoding="UTF-8") as test: for line in test: line.strip()
2021-09-17 14:06:10
12378
原创 java二叉树查找与删除
二叉树的查找思路(以前序为例):先判断是否为空树,然后判断根节点是否为目标节点,如果不是的话,判断左子节点是否为空,如果非空,则向左子树遍历查找,如果没有找到,则向右子树进行相同的步骤。二叉树的删除思路(此处是以删除非叶子节点就是直接删除这个子树):先判断是否为空树,然后判断根节点是否为目标节点,如果不是的话,判断左子节点是否为空且左子节点是否为删除目标,如果不是,向左子树进行递归,如果没有找到,则向右子树进行相同的步骤。class binarytrees{ node root; publi
2021-09-17 13:59:24
169
原创 java二叉树的遍历
二叉树顾名思义只有两个分支,而对于二叉树的遍历存在前序,中序,后序,对于前序,其顺序为从根节点到左子树再到右子树,中序为左子树到根节点再到右子树,后序为左子树到右子树再到根节点。为了遍历方便,这里使用回溯算法。class binarytree{ private heronode root; public void setroot(heronode root) { this.root=root; } public void preorder() { if(this.root!=n
2021-09-16 21:09:38
178
原创 java哈希表
哈希表又称为散列函数,作用为读取数据中的缓冲层的概念,可以通过关键码值来访问一系列的信息,特点是速度快。其中包含了链表,所以要构建链表import java.util.Scanner;class emp{ public int id; public String name; public emp next;//这里定义了一个指针 public emp(int id,String name) { super(); this.id=id; this.name=name; }}
2021-09-15 23:07:37
168
原创 java斐波那契查找法
斐波那契查找法类似与二分查找法,但是不同的是,是以黄金分割点来进行查找的,而斐波那契数列的相邻两项之比正好与黄金分割相似,所以可以利用斐波那契数列的值来计算。在这个算法中,必须使用顺序数组,而且在判断目标数在黄金分割点的左右两边的取值法都有所不同,这里可以通过图解来得出import java.util.Arrays;public class fibonacisearch { public static int maxsize =20; public static int[] fibo.
2021-09-15 23:03:10
213
原创 java插值查找
插值查找类似于二分查找法,所以代码类似,但是唯一的不同是mid的计算方式,由于插值查找具有自适性,所以此处的mid=low+(high-low)*(traget-arr[low])/(arr[high]-arr[low])。import java.util.ArrayList;import java.util.Arrays;import java.util.*;public class insertsearch { public static ArrayList<Integer>
2021-09-01 17:22:05
153
原创 java二分查找法
二分查找法只适用于顺序数组,首先要确立一个中间值,可以通过首尾的索引值来得到,然后得到的书数值与我们想要找到的值进行比较,如果大于,则向右移动,利用递归算法来得到目标数字的索引值,左边也是如此,然后当数字重复时,我们可以通过Arraylist来进行操作,最终得到我们目标数字的全部下标。import java.util.ArrayList;import java.util.List;public class Binarysearch { /** * * @param arr查找数组
2021-09-01 17:18:06
122
原创 java线性查找
利用遍历从数组的第一个开始查找找到放入数组中继续找第二个,直到找不到为止import java.util.ArrayList;import java.util.List;public class seqsearch { public static ArrayList<Integer> seqsearch(int[] arr,int findval) { ArrayList <Integer> resindexlist=new ArrayList<Intege
2021-09-01 17:12:58
104
原创 蓝桥杯(2)
小蓝准备用256 MB 的内存空间开一个数组,数组的每个元素都是32 位二进制整数,如果不考虑程序占用的空间和维护内存需要的辅助空间,请问 256 MB 的空间可以存储多少个32 位二进制整数?import java.math.BigInteger;public class day2 { public static void main(String[] args) { BigInteger a=new BigInteger("8"); BigInteger b=new BigIntege
2021-09-01 17:10:47
64
原创 java每日一题(24)
利用递归方法求5!。public class day10extra1 { public static int calculate(int a) { if(a==1) { return 1; } else { return a*calculate(a-1); } } public static void main(String[] args) { System.out.print(calculate(5)); }}...
2021-09-01 17:10:03
65
原创 java每日一题(23)
一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程 找出1000以内的所有完数。完数的意思是将所有因数加起来的和等于这个数.比如28= 1+2+4+7+14public class day10 { public static void main(String[] args) { for(int i=1;i<=1000;i++) { int b=0; for(int j=1;j<i;j++) { if(i%j==0)
2021-09-01 17:09:22
176
原创 蓝桥杯(1)
请计算:7 ^ 2020 mod 1921,其中 A mod B 表示 A 除以 B 的余数在这里使用了java中bigint的类。其中bigint拥有读入,进制转换,比较大小,类型转换等方法,在此处使用基本运算即可import java.math.BigInteger;public class day1 { public static void main(String[] args) { BigInteger sum; BigInteger x= new BigInteger
2021-08-31 17:33:14
55
原创 Java并归排序
并归排序分别有两个动作,1,分:首先要将所有数据进行分组,分为1个数字一组,在这里可以使用回溯算法。2,合:合就是将这个数据进行排序后然后放入同一个数组中。import java.util.Arrays;public class mergesort { public static void mergesort(int[] arr,int left ,int right,int [] temp) { if(left<right) { int mid =(left+right)
2021-08-31 16:59:50
86
原创 java基数排序
基数排序作为桶排序的升级版,其属于分配式排序,通过键值的各个位来进行排序,然后将各个元素分配到不同的桶中,以此来进行排序。首先要将每一个数化为同一数位的数eg:将4变成百位即变成004,然后从最小位开始排序。import java.util.Arrays;public class radixsort { public static void radixsort(int[] arr) { int max = arr[0]; for (int n = 0; n < arr.leng
2021-08-31 16:56:21
58
原创 java每日一题(22)
有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。//有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。public class day9extra1 { public static void main(String[] args) { double a=2,b=1,temp; double sum=0; for(int i=1;i<21;i++) { sum=su
2021-08-31 16:52:10
52
原创 java每日一题(21)
输出9*9口诀。public class day9 { public static void main(String[] args) { for(int i=1;i<10;i++) { for(int j=1;j<10;j++) { System.out.print(i+"*"+j+"="+i*j+" "); } System.out.println(); } }}
2021-08-31 16:51:18
43
原创 java希尔算法
希尔算法作为插入算法的升级版,通过对数据进行分组,对插入算法进行优化,在此处设置了两个方法:一个是交换法;一个是位移法。其中位移法与插入算法更加类似。希尔算法就是通过从小组进行比较,再到大组比较来实现时间的优化。import java.util.Arrays;public class xiersort { public static void shellsort(int[] arr) { for(int gap=arr.length/2;gap>0;gap=gap/2)
2021-08-28 15:31:40
156
原创 java每日一题(20)
将一个正整数分解质因数。import java.util.*;public class day8extra { public static int[] calculate(int a) { int[] arr=new int[100]; for(int i=2;i<a;i++) { if(isprime(i)&&a%i==0) { arr[i-2]=i; } } return arr; } public static
2021-08-28 15:27:29
53
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人