shlyのspace

每天进步一点点


  • 首页

  • 分类

  • 归档

  • 标签

jquery源码分析之isArraylike()

发表于 2016-06-16   |   分类于 学习笔记 , 前端学习   |  

在js的学习中经常见到描述一个对象为类数组对象,那么到底什么样的对象可以称为类数组对象呢?

类数组对象有两个要求:

  1. 对象有一个整数类型的length属性
  2. length属性的值大于对象中元素的最大索引
    阅读全文 »

jQuery each方法

发表于 2016-06-16   |   分类于 学习笔记 , 前端学习   |  

jQuery中有两个each方法,一个是$().each(callback),一个是$.each();
API中对$().each(callback)的描述如下:
以每一个匹配的元素作为上下文来执行一个函数。

阅读全文 »

降维方法之PCA

发表于 2016-06-15   |   分类于 学习笔记 , 数据挖掘   |  

为什么要降维

在数据挖掘中,实际起作用的特征往往是未知的,因此在挖掘的过程中为了保证结果的准确性往往会引入大量的特征,但是这些特征包含的信息量各不相同,有些甚至与结果完全不相关,另外,特征之间也不一定是彼此独立的,有些是有交叉的,有共性的,相关的。在很多的应用中,数据特征数量十分庞大,不移除这些无关的特征会预测算法也不会有好的运行效果。

阅读全文 »

二叉树遍历java版(递归与非递归)

发表于 2016-06-14   |   分类于 学习笔记 , 数据结构   |  

今天复习了一下二叉树的遍历,包括递归与非递归形式,记录一下
首先定义一个简单的二叉树结构,包括节点的值与左子节点和右子节点

阅读全文 »

SVM学习笔记(一)

发表于 2016-06-12   |  

一些基本概念介绍

  1. 线性可分:可以用一条直线将正样本与负样本分隔
  2. 间隔最大化
    2.1 函数间隔:可以表示分类预测的正确性及确信度,
    2.2 几何间隔
  3. 特征空间:
  4. 特征向量:
  5. 欧氏空间
  6. 希尔伯特空间
  7. 分离超平面:wx+b = 0
  8. 支持向量

SVM基本介绍

  1. SVM(支持向量机)是一种二类分类模型,基本模型是定义在特征空间上的间隔最大的线性分类器
  2. 包含由简至繁的模型:
    (1)线性可分支持向量机(又称硬间隔支持向量机)
    训练数据线性可分,通过硬间隔最大化学习的线性分类器
    (2)线性支持向量机(又称软间隔支持向量机)
    训练数据近似线性可分,通过软间隔最大化学习的线性分类器
    (3)非线性支持向量机
    训练数据线性不可分,通过使用核技巧和软间隔最大化学习的非线性支持向量机

ROC与AUC

发表于 2016-06-01   |   分类于 学习笔记 , 数据挖掘   |  

这篇文章只要是介绍分类算法评估标准,介绍标准之前首先介绍一下评价算法的前提,混淆矩阵,如图

阅读全文 »

mergeSort

发表于 2016-05-27   |   分类于 学习笔记 , 数据结构   |  

归并排序算法总结(稳定,时间复杂度n*logn)

public void mergeSort(int[] arr, int left, int right) {
        if(left<right){
            int center = (right+left)/2;
            mergeSort(arr,left,center);
            mergeSort(arr,center+1,right);
            merge(arr,left,right,center);
        }

    }
    /**
     * 将两个数组进行排序,排序前两个数组有序,排序后依然有序
     * @param arr 要排序的数组
     * @param left 左数组第一个元素的索引
     * @param right 右数组最后一个元素的索引
     * @param center 左数组最后一个元素的索引,center+1是右数组第一个元素的索引
     */
    public void merge(int[] arr,int left,int right,int center){
//        与待排序数组等长的临时数组
        int[] temp = new int[arr.length];
//        右侧数组的索引
        int mid = center+1;
//        third 中间数组的索引
        int third = left;
//        记录左侧数组的第一个元素的索引,用于将临时数组的元素复制到原数组时
        int tmp = left;
        while(left <= center && mid <= right){
//            从两个数组中取出小的放入中间数组
            if(arr[left]<=arr[mid]){
                temp[third++]=arr[left++];
            }else{
                temp[third++]=arr[mid++];
            }
        }
//        剩余部分依次加入到中间数组
        while(mid<=right){
            temp[third++]= arr[mid++];
        }
        while(left<=center){
            temp[third++]= arr[left++];
        }
//        将中间数组的内容复制回原数组
        while(tmp<=right){
            arr[tmp] = temp[tmp++];
        }
    }

heapSort

发表于 2016-05-26   |   分类于 学习笔记 , 数据结构   |  

java堆排,记录一下。(选择排序,时间复杂度O(n*logn),不稳定排序)

public void heapSort(int[] arr) {
        int arrLength = arr.length;
        for(int i = 0;i<arrLength-1;i++){
            int lastIndex = arrLength-1-i;
            buildMaxHeap(arr,lastIndex);
            swap(arr,0,lastIndex);
        }
    }
    public void buildMaxHeap(int[] arr,int lastIndex){
        for(int i = (lastIndex-1)/2;i>=0;i--){
            int k = i;
            while(k*2+1<=lastIndex){
                int biggerIndex = 2*k+1;
                if(biggerIndex<lastIndex){
                    if(arr[biggerIndex]<arr[biggerIndex+1]){
                        biggerIndex++;
                    }
                }
                if(arr[k]<arr[biggerIndex]){
                    swap(arr,k,biggerIndex);
                    k = biggerIndex;
                }else{
                    break;
                }
            }
        }
    }

其他排序算法见 https://github.com/shly/datastructure

css3变形

发表于 2016-05-25   |   分类于 学习笔记 , 前端学习   |  

css3变形是一些效果的集合,比如平移,旋转,缩放和倾斜,每个效果都被称为变形函数,它们可以控制元素发生旋转、缩放、平移等变化。

CSS变形属性及函数

  1. CSS3变形中具有X/Y可用的函数:translateX()、translateY()、scaleX()、scaleY()、skewX()和skewY()
  2. css3 2D变形函数包括:translate(),scale(),rotate()和skew()。translate()函数接受CSS的标准度量单位;scale()函数接受一个0~1之间的十进制值;rotate()和skew()函数都接受一个径向的度量单位deg。除了rotate()函数外,每个函数都接受X轴Y轴的参数。2D变形中还有一个矩阵matrix()函数,包含6个参数
  3. CSS3 3D变形包括:rotateX(), rotateY(),rotate3d(),translateZ(),translate3d(),scaleZ()和scale3d()。3D变形中也还有一个矩阵matrix3d()函数,包含16个参数。

思考

发表于 2016-05-24   |   分类于 随手日记   |  

之前一直想同样环境下学习的两个人,为什么取得的成果会有很大的不同,得出的结论就是思考。也就是说,为什么同样的学习,有些人也看起来更努力一些,结果往往还不如那些看起来不努力的人?那除了智商的原因,还有什么其他的东西导致了人与人之间的不同?通过长时间的观察研究,我得出的结论是,同样的学习,有些人一边学习,一边思考一边总结,那他掌握东西就比那些不思考的人掌握的更多更深刻。俗话讲的失败乃成功之母,你失败了不去总结经验,下次还是失败。所以说人一定要不断学习不断思考总结。

阅读全文 »
1…3456
shly

shly

To get one thing, the best way is to prove that you deserve it

52 日志
11 分类
50 标签
GitHub Weibo
© 2017 shly
由 Hexo 强力驱动
主题 - NexT.Pisces