train_test_split函数解析

08. August 2019 深度学习 0
stratify就是根据指定数据集中的特征比例划分出同样特征比例的训练集和测试集 train_data:所要划分的样本特征集 train_target:所要划分的样本结果 test_size:样本占比,如果是整数的话就是样本的数量 random_state:是随机数的种子。 随机数种子:其实就是该组随机数的编号,在需要重复试验的时候,保证得到一组一样的随机数。比如你每次都填1,其他参数一样的情况下你得到的随机数组是一样的。但填0或不填,每次都会不一样。 stratify是为了保持split前类的分布。比如有100个数据,80个属于A类,20个属于B类。如果train_test_split(… test_size=0.25, stratify = y_all), 那么split之后数据如下:  training: 75个数据,其中60个属于A类,15个属于B类。  testing: 25个数据,其中20个属于A类,5个属于B类。  用了stratify参数,training集和testing集的类的比例是 A:B= 4:1,等同于split前的比例(80:20)。通常在这种类分布不平衡的情况下会用到stratify。 将stratify=X就是按照X中的比例分配  将stratify=y就是按照y中的比例分配  原文链接:https://blog.csdn.net/samsam2013/article/details/80702582

机器学习 线性、逻辑回归

28. April 2018 深度学习 0
1.逻辑回归 h = sigmoid(X*theta); theta1 = [0 ; theta(2:size(theta), :)]; p = lambda*(theta1’*theta1)/(2*m); J = ((-y)’*log(h) – (1-y)’*log(1-h))/m + p; grad = (X’*(h – y)+lambda*theta1)/m; 预测p=sigmoid(X*theta)>=0.5

机器学习 矩阵

24. April 2018 深度学习 0
1.Arthur Samuel定义:在进行特定编程的情况下,给予计算机学习能力的领域。 2.Tom Mitchell定义:一个程序被认为能从经验E中学习,解决任务T,达到性能度量值P,当且仅当有了经验E后,经过P评判,程序在处理T时的性能有所提升。 3.监督学习:对于数据集中的每个数据,都有相应的正确答案(训练集)。种类:线性回归,分类问题。 4.无监督学习:只有一个数据集。种类:聚类算法,鸡尾酒会算法。 5.只有方阵才可能有逆矩阵。 6.正规方程不需要特征变量归一化,特征变量归一化对梯度下降算法极其重要。 7.特征变量的数低于一万,推荐使用正规方程,高于一万推荐使用梯度下降算法。 8.有矩阵A(m1*n1),B(m2*n2),c为一整数。(Octave测试通过) ①:A*B,则n1==m2,结果矩阵为m1*n2 ②:A.*B,若A,B均非向量,则n1==n2,m1==m2,结果m1*n1.若有其中一个为列向量,则m1==m2,结果为m1*max(n1,n2).若有其中一个为行向量,则n1==n2,结果为max(m1,m2)*n1. ③:A*c==A.*c ④:A+c==A.+c ⑤:A-c==A.-c ⑥:A/c==A./c  (c非零) ⑦:A^c 错误,A.^c ⑧:矩阵加减或点加点减需要相同维度,且两种方式结果相同.矩阵除法乘法。 在梯度下降算法中,根据偏导数可得 theta=theta-alpha*(X’*(X*theta-y))/m; 在正规方程中,theta=pinv(X‘*X)*X’y cost函数为:J=sum((X*theta-y).^2)/(2*m);  

希尔排序ShellSort

14. November 2017 深度学习 0
PHP实现 <?php $arr = [1, 4, 3, 2, 7, 9, 33, 23, 6, 77, 44, 99, 12, 5, 6, 3, 1, 91]; function ShellSort(&$arr){ $N=count($arr); $h=1; while ($h<floor($N/3)){ $h=3*$h+1; } while ($h>=1){ for ($i=$h;$i<$N;$i++){ for ($j=$i;$j>=$h&&$arr[$j]<$arr[$j-$h];$j-=$h){ $temp=$arr[$j]; $arr[$j]=$arr[$j-$h]; $arr[$j-$h]=$temp; } } $h=floor($h/3); } } ShellSort($arr); echo implode(\',\',$arr); Python实现 def ShellSort(): N=len(arr) h=1 while h<N/3: h=3*h+1 ...

插入排序InsertSort

11. November 2017 深度学习 0
PHP实现 <?php $arr = [1, 4, 3, 2, 7, 9, 33, 23, 6, 77, 44, 99, 12, 5, 6, 3, 1, 91]; function InsertSort(array &$arr):Int{ $n= count($arr); $number=0; for($i=$n-1;$i>0;$i--){ if($arr[$i]<$arr[$i-1]){ $temp=$arr[$i-1]; $arr[$i-1]=$arr[$i]; $arr[$i]=$temp; $number++; } } if($number==0){ return 0; } for($i=2;$i<$n;$i++){ $v=$arr[$i]; $j=$i; while ($v<$arr[$j-1]){ $arr[$j]=$arr[$j-1]; $j--; } $arr[$j]=$v; } return 1; } InsertSort($arr); echo ...

二分查找BinarySearch

07. November 2017 深度学习 0
php实现: <?php $arr = [1, 4, 3, 2, 7, 9, 33, 23, 6, 77, 44, 99, 12, 5, 6, 3, 1, 91]; function BinarySerch(int $key, array $arr): int { $lo = 0; $hi = count($arr) - 1; while ($lo <= $hi) { $mid = $lo + intval(($hi - $lo) / 2); if ($key < $arr[$mid]) ...

堆排序——day6

25. April 2017 深度学习 0
//第六天,堆排序 import java.util.Arrays; public class heapSort_day6 {     static final int Max=10;     private int[] arr;          public heapSort_day6(int[] arr){         this.arr = arr;     }     public void sort(){         int len = arr.length - 1;         int ...

快速排序——day5

19. April 2017 深度学习 0
//第五天 快速排序 public class quickSort_day5 { staticfinalintMax = 10; staticint[] array1 = new int[Max]; public static void main(String[] args) { int i; for (i = 0; i < Max; i++) { array1[i] = (int) (100 + Math.random() * (100 + 1)); } System.out.println(\"排序前数据为:\"); for (i = 0; i < Max; i++) { System.out.print(array1[i]+\" \"); } ...

shell排序——day4

18. April 2017 深度学习 0
//第四天,shell排序 public class shellSort_day4 { staticfinalintMax=10; public static void main(String[] args) { // TODO Auto-generated method stub int[] array1=new int[Max]; int i; for(i=0;i<Max;i++){ array1[i]=(int)(100+Math.random()*100);//产生随机数组 } System.out.println(\"排序前:\"); for(i=0;i<Max;i++){ System.out.print(array1[i]+\" \"); } System.out.println(\"n\"); shellSort(array1); System.out.println(\"排序后:\"); for(i=0;i<Max;i++){ System.out.print(array1[i]+\" \"); } System.out.println(\"n\"); } private static void shellSort(int[] array1) { // TODO Auto-generated method stub int i,j,temp,t; for(i=array1.length/2;i>=1;i=i/2){ for(j=i;j<array1.length;j++){ t=j-i; ...