自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 收藏
  • 关注

原创 JVM高效并发----线程安全与锁优化

目录1. 概述2. 线程安全2.1 Java中的线程安全2.2 线程安全的实现方法3. 锁优化3.1 自旋锁与自适应自旋3.2 锁消除3.3 锁粗化3.4 轻量级锁3.5 偏向锁参考:1. 概述如何实现并发的正确性,如何实现高效性2. 线程安全2.1 Java中的线程安全按照安全程度由强到弱:不可变不可变的对象一定线程安全。...

2019-05-25 14:27:50 218

原创 JVM高效并发----Java内存模型与线程

目录1 概述2 硬件效率与一致性3 Java 内存模型3.1 主内存和工作内存3.2 内存间的交互操作3.3 volatile 变量的特殊规则3.4 原子性、可见性、有序性3.5 先行发生原则4 Java 与线程4.1 线程的实现4.2 Java线程的实现4.3 Java线程调度4.4 状态转换参考:1 概述如何实现多线程 多线程...

2019-05-25 13:23:06 346

原创 JAVA自动内存管理机制

目录1. Java内存区域和内存溢出异常1.1 概述1.2 运行时数据区1.2.1 程序计数器1.2.2 Java虚拟机栈1.2.3 本地方法栈1.2.4 Java堆1.2.5 方法区1.2.6 运行时常量池1.2.7 直接内存1.3 HotSpot虚拟机对象1.3.1 对象创建1.3.2 对象的内存布局1.3.3 对象的访问定位2. 垃...

2019-05-18 23:40:58 1280

原创 虚拟机执行子系统之字节码执行引擎

目录1. 概述2.运行时栈帧结构2.1 局部变量表2.2 操作数栈2.3 动态连接2.4 方法返回地址2.5 附加信息3.方法调用3.1 解析3.2 分派3.2.1 静态分派3.2.2 动态分派3.2.3 单分派与多分派3.2.4 虚拟机动态分派实现3.3 动态类型语言支持4.基于栈的字节码解释执行引擎4.1 解释执行4.2 ...

2019-05-14 21:13:42 197

原创 虚拟机执行子系统之类加载机制

目录1. 概述2. 类加载的时机3. 类加载过程3.1 加载3.2 验证3.3 准备3.4 解析3.5 初始化4.类加载器4.1 类和类加载器4.2 双亲委派模型4.3 破环双亲委派模型1. 概述java中,类的加载、连接和处事话在程序运行期间完成。类加载机制:虚拟机吧描述类的数据从Class文件加载到内存,并对数据进行校验、转化解析和初...

2019-05-14 19:54:48 136

原创 虚拟机执行子系统之类文件结构

目录1. 概述2.无关性基石3. 类文件结构3.1 魔数和Class文件版本3.2 常量池3.2.1 常量池容量计数3.2.2 常量池3.3 访问标志3.4 类索引、父类索引、接口索引集合3.5 字段表集合3.6 方法表集合3.7 属性表集合3.7.1 Code 属性3.7.2 Exceptions属性3.7.3LineNumberT...

2019-05-14 18:42:34 140

原创 程序编译和代码优化(JVM)

目录早期(编译期)优化1.概述2.javac编译器2.1 解析和填充符号表2.2 注解处理器2.3 语义分析和字节码生成3. 语法糖3.1 泛型和类型擦除3.2 自动装箱、自动拆箱和遍历循环3.3 条件编译3.4 其他晚期(运行期)优化1. 概述2. HotSpot 虚拟机内的即时编译器2.1解释器和编译器2.2 编译的对象和触发的条...

2019-05-13 15:58:32 144

原创 树和堆(Python)

目录树利用字典实现完全实现插入删除和查询前、中、后遍历和层序遍历测试堆自带实现树利用字典实现import jsonfrom collections import defaultdictdef tree(): return defaultdict(tree)完全实现#二叉树#二叉查找树:插入、删除、查找class Node:...

2019-03-12 15:59:16 203

原创 字符串和哈希表(Python)

目录字符串:Trie树:朴素的字符串匹配算法:相关练习:哈希表:LRU缓存淘汰算法:相关练习:字符串:Trie树:class Trie(object): def __init__(self): """ Initialize your data structure here. """ ...

2019-03-08 18:31:22 734

原创 排序和二分查找(Python)

目录[排序]归并排序快速排序:插入排序:冒泡排序选择排序相关练习:[查找]二分查找:模糊二分查找:相关练习[排序]归并排序#归并def mSort(nums): #分为两个列表,分别排序 if len(nums)<=1: return nums else: m = len(nums)/...

2019-03-06 15:34:20 327

原创 堆栈和队列(Python)

目录【堆栈】顺序栈链栈相关题目【队列】顺序队列循环队列链队列相关题目【递归】【堆栈】 顺序栈 实现和操作。注:和线性表的区别只在于数据输入和输出的位置是固定的。import ctypes#顺序栈class Stack(): def __init__(self): self._capacity = 1...

2019-03-02 19:36:48 265

原创 数组和列表(Python)

目录【动态数组】编程实现相关类型题:【合并两个有序数组】【缺失的第一个正数】【链表】(单列表)编程实现相关类型题:【环形列表】【合并两个有序链表】【动态数组】 编程实现 实现,以及增删改查操作:#参考:https://www.cnblogs.com/kumata/p/9098137.htmlimport ctypesclass Dy...

2019-02-28 20:53:04 406

原创 【算法梳理】决策树

目录1. 信息论基础(熵 联合熵 条件熵 信息增益 基尼不纯度)2.决策树的不同分类算法(ID3算法、C4.5、CART分类树)的原理及应用场景3. 回归树原理4. 决策树防止过拟合手段5. 模型评估6. sklearn参数详解,Python绘制决策树1. 信息论基础(熵 联合熵 条件熵 信息增益 基尼不纯度)熵(信息熵)度量样本集合纯度最常用的指标。假设样本集合...

2019-01-08 21:55:30 532

原创 【算法梳理】逻辑回归

目录1、逻辑回归与线性回归的联系与区别2、 逻辑回归的原理3、逻辑回归损失函数推导及优化4、 正则化与模型评估指标5、逻辑回归的优缺点6、样本不均衡问题解决办法7.LR介绍提纲8、sklearn参数逻辑回归也叫逻辑斯蒂回归、对数几率回归、对率回归。1、逻辑回归与线性回归的联系与区别由线性回归到逻辑回归1)线性模型如何用在回归学习中?      广义...

2019-01-05 23:02:14 577

原创 【算法梳理】线性回归

目录1.机器学习的一些概念:2.线性回归的原理3.线性回归损失函数、代价函数、目标函数4.优化方法(梯度下降法、牛顿法、拟牛顿法等)5.线性回归的评估指标6.sklearn参数详解1.机器学习的一些概念:有监督vs无监督       根据学习样本是否具有标记信息,学习任务分为有监督学习(样本有标记,比如分类任务和回归任务)和无监督学习(样本没有标记,比如聚类)...

2019-01-04 14:26:50 277

原创 【算法梳理Task3】XGB算法梳理

目录1.XGB2.CART树3.损失函数4.分裂结点算法5.正则化6.算法(怎么学习)7.对缺失值处理8.优缺点9.应用场景10.sklearn参数1.XGBXGBoost(eXtreme Gradient Boosting)是一种tree boosting的可扩展机器学习系统。这个系统可以作为开源的软件包使用。XGBoost是一个优化的分布式梯...

2018-12-24 12:22:33 645

原创 【算法梳理Task2】GBDT算法梳理

1.GBDT思想GBDT是集成学习Boosting家族的成员。弱学习器限定了只能使用CART回归树模型,迭代是思路是:在本轮迭代中找到一个CART回归树模型的弱学习器使得本轮的损失函数最小。即拟合误差。(Adaboost是利用前一轮迭代弱学习器的误差率来更新训练集的权重,这样一轮轮的迭代下去。)GBDT的思想使其具有天然优势可以发现多种有区分性的特征以及特征组合。 回归树(Regre...

2018-12-21 15:41:06 787

原创 【算法梳理Task1】 随机森林算法梳理

1. 集成学习概念构建并通过多个学习器来完成学习任务的方式。也称为多分类器系统或者基于委员会的学习。 同质集成:只包含同类个体学习器。(称为基学习器)。异质集成:学习器由不同的学习算法生成。(称为组件学习器) 核心:如何产生“好而不同”的个体学习器。 根据个体学习器的生产方式,分为两类: 个体学习器之间存在强相关,必须串行生成的序列化方法。如Boosting 个体学习器之间不存...

2018-12-19 21:51:27 623

原创 关于序列最小最优化SMO

SMO是SVM的实现问题 思路: 所有变量满足KKT条件,即为最优解 选择两个变量,固定其他变量,从而简化为二次规划问题。提高了整个算法的速度。 两个方面的问题: 两变量二次规划的解析求法 选择变量的启发式方法。 关于两变量二次规划的求解问题:选择两变量之后的子问题为:二变量的范围限制:二变量最优解为:求解过程如下:关于变量的选择...

2018-12-05 20:00:47 206 1

原创 关于支持向量回归SVR

能够容忍一定范围内的预测和真值的偏差。 SVR问题的形式:引入松弛变量之后的问题形式:问题对应的拉格朗日函数为:原问题的对偶问题为极大极小问题:先求拉格朗日函数在w,b以及松弛变量变化下的极小问题,求偏导等于零得到如下结果:带入后得到如下结果:即原问题的对偶问题为极大化如下结果:上述问题成立(对偶问题极值相等的条件)的...

2018-12-05 19:27:10 385

原创 SVM实战注意点

SVM可以执行线性非线性的分类、回归、异常值检测。适用于中小型复杂数据集 SVM对特征缩放很敏感,可以在输入之前采用StandardScaler处理 如果SVM模型过拟合,可以通过降低C来进行正则化。 LinearSVC灰度偏执正则化,需要减去平均值,StandardScaler会自动处理 处理非线性数据集的方法之一是添加更多的特征,比如多项式特征。 关于SVC(kernel = "li...

2018-11-24 21:22:17 800 2

原创 关于SVM的推导和理解

实际问题到SVM的原始问题:对于二分类问题,希望找到一个分类超平面将两类样本点分开。在众多的分类超平面中哪个才是最好的边界?在此认为可以容忍最大误差的‘最中间’的分类超平面是最好的。所以有:采用函数间隔表示:因为w和b的可伸缩性,不妨设函数间隔为1,可以得到如下等价的问题,我们称为原始问题。该凸优化问题求解出最优解有即可得到如下的分离超平面和决策函数:...

2018-11-21 20:34:58 176

原创 【sklearn】SVM用于分类(SVC)

API说明:中文:http://sklearn.apachecn.org/cn/0.19.0/modules/svm.html英文:https://scikit-learn.org/stable/modules/svm.htmlAPI使用:(SVC)(Support Vector Classification.)from sklearn import svmX = [[0...

2018-11-20 13:49:32 4293

原创 【LeetCode】48. 旋转图像

给定一个 n × n 的二维矩阵表示一个图像。将图像顺时针旋转 90 度。说明:你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。 def rotate(self, matrix): """ :type matrix: List[List[int]] :rtype: void Do...

2018-10-15 16:20:17 164

原创 关于matplotlib

采用面向对象技术来实现,组成图标的各个元素都是对象。快速绘图matplotlib的pyplot模块:绘图模块 matplotlib——pyplot和pylab区别 对Pyplot的解说:“方便快速绘图matplotlib通过pyplot模块提供了一套和MATLAB类似的绘图API,将众多绘图对象所构成的复杂结构隐藏在这套API内部。”对pylab的解说:“matplotlib...

2018-07-20 13:18:35 217

原创 关于SciPy

常数和特殊函数物理常数、单位信息优化-optimize最小二乘拟合leastsq():误差函数和带确定参数的初值。函数最小值不同的fmin*()参数不同。非线性方程组的解fsolve()通过fprime参数传递雅可比矩阵,在方程组的未知数很多有关联的未知数较少的情况可以提高计算速度插值--interpolateB样条 外推和Spline拟合 二维...

2018-07-18 20:02:17 203

原创 关于NumPy

list:对于数值运算来说浪费内存和计算时间 array模块:可以直接保存数值,但不支持多维数组,没有运算函数,不适合数值运算。 NumPy:提供了ndarray(存贮单一数据类型的多维数组)和ufunc(对数组进行处理的函数)ndarray对象创建:1.序列对象,通过array()转为数组2.创建数组的函数。    arange(); linspace();logspace...

2018-07-17 20:28:56 302

原创 python面向对象

Python 文件I/O键盘输入raw_input([prompt]) 函数从标准输入读取一个行,并返回一个字符串(去掉结尾的换行符): input 可以接收一个Python表达式作为输入,并将运算结果返回。str = input("请输入:")print "你输入的内容是: ", str请输入:[x*5 for x in range(2,10,2)]你输入的内容是: [10, 20, 3...

2018-07-13 22:27:55 166

原创 Python第一步

1.Python是一种解释性语言,没有了编译环节。py和pyc  所以是有没有编译?2.像Perl一样遵循GPL(GNU General Public License)协议。3.脚本化:可以嵌入到C/C++程序。4.可扩展:需要一段运行很快的代码,或者不愿公开的代码,可以使用C或C++完成那部分程序,再用Python调用。注:关于Python的更细节的东西,在不断理解的基础上深化。Python 标...

2018-07-13 14:58:38 227

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除