- 博客(19)
- 收藏
- 关注
原创 Python实现:利用GBDT产生新特征(GBDT+Linear Regression)
Python实现:利用GBDT产生新特征(GBDT+Linear Regression)最近实习接了个任务,利用GBDT产生新特征,加入到已有特征中,再训练线性模型,预测价格。算法思想:训练集上,用已有特征训练GBDT模型,然后利用GBDT模型学习到的树来构造新特征,最后把这些新特征加入原有特征一起训练模型。构造的新特征向量是取值0/1的,向量的每个元素对应于GBDT模
2017-08-15 14:11:50 9204 3
原创 数据挖掘一般流程(数据清洗,特征提取,建模,调参)
最近一直在实习,好长时间没更新博客了。哎,懒惰之心不可有啊!!实习的岗位是数据挖掘相关的,所以正好把到目前为止实习期间遇到的一些问题、学到的一些东西总结一下,并参考了一些博客,自我提升。嘿嘿嘿~数据挖掘的一般流程:1.问题定义:属于分类问题还是回归问题2.数据获取:根据数据挖掘任务的具体要求,从相关数据源中抽取相关数据集。(以前在实验室的时候用到的都是现成的数据,直接拿过来用就行了
2017-08-07 11:57:48 25707 1
原创 常用排序算法总结(插入、冒泡、快速,堆、选择、希尔、归并)
对科研中常见的几种排序方法做个总结,方便日后查看与回顾。(对本人认为比较简单易懂的排序方法过程比较简略,对比较复杂的排序方法过程就比较详细)编程语言:C++(经过本人验证,可以正常运行)。一、直接插入排序(稳定):思想:“一趟一个“地将待排序记录插入到已经排好序的部分记录的适当位置中,使其成为一个新的有序序列,直到所有待排序记录全部插入完毕。分析:空间:仅需使用一个辅助单元。故
2017-05-19 19:20:20 1383
原创 中兴蓝剑计划机试题(FIFO缓存)
题目描述:在操作系统中,有一种虚拟内存管理技术是先进先出(FIFO)缓存。当所请求的存储页面不在缓存而缓存已满时,应该从缓存中移除持续时间最长的页面,以腾出空间给请求的页面。如果缓存未满,那么可以简单地将请求的页面添加到缓存,给定的页面应当在缓存中最多出现一次。当请求某个页面而在缓存中未找到此页面时发生缓存未命中。给定缓存的最大尺寸和页面请求列表,计算缓存未命中数。输入函数
2017-05-16 20:25:22 1902
原创 机器学习总结(十一):深度学习算法(CNN,SAE,等)及常见问题总结
(1)CNN层级结构:输入层->卷积层->激励层->卷积层->激励层。。。数据输入层(数据预处理):三种方法:去均值(即0均值化,CNN常用,训练集所有像素值减去均值,把输入数据各个维度中心化到0,测试集也减相同的均值);归一化(幅度归一化到同样的范围);PCA/白化(降维,白化是对数据每个特征轴上的幅度归一化)。去均值的目的:(1)数据有过大的均值可能导致参数的梯度过大,在梯度回
2017-05-06 10:54:48 15536 2
原创 机器学习总结(十):常用聚类算法(Kmeans、密度聚类、层次聚类)及常见问题
任务:将数据集中的样本划分成若干个通常不相交的子集。性能度量:类内相似度高,类间相似度低。两大类:1.有参考标签,外部指标;2.无参照,内部指标。距离计算:非负性,同一性(与自身距离为0),对称性,直递性(三角不等式)。包括欧式距离,曼哈顿距离等等。(1) K均值聚类步骤:1.随机选择k个样本作为初始均值向量;2.计算样本到各均值向量的距离,把它划到距离最小的簇;3.计算新的均值
2017-05-06 10:48:02 7785
原创 机器学习总结(九):梯度消失(vanishing gradient)与梯度爆炸(exploding gradient)问题
(1)梯度不稳定问题:什么是梯度不稳定问题:深度神经网络中的梯度不稳定性,前面层中的梯度或会消失,或会爆炸。原因:前面层上的梯度是来自于后面层上梯度的乘乘积。当存在过多的层次时,就出现了内在本质上的不稳定场景,如梯度消失和梯度爆炸。(2)梯度消失(vanishing gradient problem):原因:例如三个隐层、单神经元网络:则可以得到:
2017-04-01 10:07:05 67709 19
原创 机器学习总结(八):常用机器学习算法优缺点对比、适用条件
这个面试的时候也经常会问,让你比较某几个算法的适用条件,数据、特征量到什么规模时选用哪种算法。(1)决策树适用条件:数据不同类边界是非线性的,并且通过不断将特征空间切分为矩阵来模拟。特征之间有一定的相关性。特征取值的数目应该差不多,因为信息增益偏向于更多数值的特征。优点:1.直观的决策规则;2.可以处理非线性特征;3.考虑了变量之间的相互作用。缺点:1.容易过拟合(随机森林);
2017-03-31 10:05:50 4540 1
原创 机器学习总结(七):基本神经网络、BP算法、常用激活函数对比
1. 神经网络(1)为什么要用神经网络?对于非线性分类问题,如果用多元线性回归进行分类,需要构造许多高次项,导致特征特多学习参数过多,从而复杂度太高。(2)常用的激活函数及其优缺点阶跃函数sgn(x)(理想,但不连续,不光滑);Sigmoid函数(下图左):优点:能够把输入的连续实值压缩到0到1之间;缺点:(1)容
2017-03-31 09:45:33 23282 2
原创 机器学习总结(六):集成学习(Boosting,Bagging,组合策略)
(也是面试常考)主要思想:利用一定的手段学习出多个分类器,而且这多个分类器要求是弱分类器,然后将多个分类器进行组合公共预测。核心思想就是如何训练处多个弱分类器以及如何将这些弱分类器进行组合,个体分类器应该“好而不同”。弱分类器如何选择:一般采用弱分类器的原因在于将误差进行均衡,因为一旦某个分类器太强了就会造成后面的结果受其影响太大,严重的会导致后面的分类器无法进行分类,,常用的弱分类器可以
2017-03-30 12:43:01 9120
原创 机器学习总结(五):基本的决策树算法
(1) 特征选择a. 信息增益:特征A对训练数据集D的信息增益g(D,A),定义为D的经验熵H(D)与特征A给定条件下D的经验条件熵H(D|A)之差,即g(D,A)= H(D)- H(D|A):b.信息增益比:信息增益g(D,A)与训练数据集D个关于特征A的值的熵HA(D)之比,其中HA(D)为(2)ID3算法基本思想:以信息增益度量属
2017-03-30 12:40:47 955
原创 机器学习总结(四):朴素贝叶斯(Naive Bayes)
(1)基本思想:基于贝叶斯定理与特征条件独立假设的分类方法;首先基于特征条件独立假设学习输入/输出的联合概率分布,然后基于此模型,对给定的输入x,利用贝叶斯定理求出后验概率最大的输出y。(2)为什么叫“朴素”:对条件概率分布作了条件独立性的假设,因为这是一个较强的假设。条件独立性假设:根据贝叶斯定理推导:(3)为什么要后验概率最大化:等价于期
2017-03-29 16:41:10 1834
原创 Java和C++ 笔试常用输入输出方法
C++:1.输入数组长度n,然后再输入数字,一维数组: (1)vector a(m); a.push_back(5/6); a[0];(2) int n;cin>>n;int *a=new int[n];for(int i=0;i{cin>>a[i];}.... d
2017-03-29 12:10:45 1108
原创 机器学习总结(三):SVM支持向量机(面试必考)
基本思想:试图寻找一个超平面来对样本分割,把样本中的正例和反例用超平面分开,并尽可能的使正例和反例之间的间隔最大。算法推导过程:(1)代价函数:假设正类样本y =wTx+ b>=+1,负类样本y =wTx+ b1右边,负类样本位于H2左边,所以原始的代价函数就为:函数间隔(functional margin):几何间隔(geometric margi
2017-03-29 10:19:21 16437 2
原创 机器学习总结(二):线性回归、逻辑斯谛回归(LR)、softmax回归、过拟合
1. 什么是回归是一种监督学习方式,用于预测输入变量和输出变量之间的关系,等价于函数拟合,选择一条函数曲线使其更好的拟合已知数据且更好的预测未知数据。2. 线性回归代价函数(平方误差代价函数,加1/2是为了方便求导):梯度下降法: ->(1) 批处理梯度下降法:每次对全部训练数据进行求导后更新参数,能求得最优解;(2) 增量梯度下降法
2017-03-28 22:30:05 2062 2
原创 机器学习总结(一):生成模型与判别模型的区别
生成模型:由数据学习联合概率分布P(X,Y),然后求出条件概率分布P(Y|X)作为预测的模型,即生成模型:P(Y|X)=P(X,Y)/P(X),表示了给定输入X产生输出Y的生成关系。包括:朴素贝叶斯法、隐马尔科夫模型。特点:收敛速度更快。判别模型:由数据直接学习决策函数f(X)或者条件概率分布P(Y|X)作为预测的模型,即判别模型,包括:逻辑斯谛回归、k近邻、感知器、决策树、SVM等。特点:准
2017-03-28 22:20:52 1433
原创 KUAN滤波和Lee滤波的C++结合opencv实现
KUAN滤波和Lee滤波的opencv实现。#include "stdafx.h" #include "cv.h"#include "highgui.h"#include #include #include #include #include "opencv2/imgproc/imgproc.hpp" #include using namespac
2016-12-27 19:56:15 2781 2
原创 qt5.6 中文字体显示乱码问题解决方法
环境:qt5.6+vs2015+opencv问题:在程序中添加中文字体后,在界面中显示的时候出现大量的乱码信息解决方法:1.在所有用到中文字体的头文件或源文件中添加以下代码: #pragma execution_character_set("utf-8") 即可解决,其他的在网上找的方法在qt5.6中好像都不太适用。
2016-12-09 15:49:20 1982
原创 QT5.6+opencv2.49+vs2015生成的exe可执行程序打包方法
由于研究生工作关系,用到了qt写界面,程序写好了,但是当exe文件拷贝出来到其他电脑上时总是提醒缺少各种dll文件,搞了半天,终于还是把exe文件打包好了,测试可以在室友们的电脑上正常运行。下面把相关步骤大致写一下。环境:qt5.6(vs版本的),opencv2.49,vs2015问题:因为qt已经集成到vs里面,而且opencv的环境在vs里面也已配置好,所以为了省事我先是直接打包vs在
2016-12-02 10:21:24 4859 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人