- 博客(333)
- 收藏
- 关注
原创 TBB使用教程
官方tutorial https://software.intel.com/en-us/tbb-user-guide1.parallel_for:常规方式(非lambda函数):1.1串行版本:void SerialApplyFoo( float a[], size_t n ) { for( size_t i=0; i!=n; ++i ) Foo(a[i]);}并行版本:首
2017-03-15 15:09:33
8301
转载 C/C++中函数调用规则(约定)__cdecl __stdcall __thiscall __vectorcall __fastcall __clrcall
转自https://my.oschina.net/ray1421/blog/699540相关文献__stdcallhttps://msdn.microsoft.com/en-us/library/zxk0tw93.aspxC语言函数可变参数详解 - ranpanf的专栏 - 博客频道 - CSDN.NEThttp://blog.csdn.net/ranpanf/arti
2017-02-06 10:54:20
4126
原创 数据分析框架Pandas进阶
广播运算多维数据和一维数据进行运算称为广播,会自动按标签匹配对每个元素执行运算。In [13]: frmOut[13]: 0 1 2a 0 1 2b 3 4 5c 6 7 8In [16]: sr2 = Series([3,2,4],index = range(3))In [17]: frm + sr2Out[17]: 0 1 2a 3 3
2016-05-12 10:54:40
1791
原创 数据分析框架Pandas入门
数据结构:SeriesSeries是一种类似一维数组的数据结构,输出时会同时显示索引和值In [6]: a = Series([3,5,2])In [7]: aOut[7]:0 31 52 2dtype: int64分别得到索引和值In [10]: a.valuesOut[10]: array([3, 5, 2], dtype=int64)In [11]: a.ind
2016-05-09 23:11:21
1896
原创 Github入门教程
0.安装mac和Linux默认预装git windows:https://git-for-windows.github.io/ 安装过程中仔细阅读安装流程,普通用户选择默认选项即可。1.初始设置输入命令: git config --global user.email "you@example.com" git config --global user.name "Your Name"字符串
2016-04-07 21:38:38
765
原创 Stanford 机器学习笔记 Week11 Application Example: Photo OCR
Photo OCRProblem Description and PipelineOCR: Optical Character Recognition 步骤: 1.识别包含文字的图片区域 2.将每块图片中的各个文字分隔开 3.对每个文字进行识别这种算法流程被称为pipeline,前一个模块的输出是下一个模块的输入。Sliding Windows本节分别介绍一下上述三个步骤的实现过程:1.T
2016-04-07 19:54:46
1427
原创 Stanford 机器学习笔记 Week10 Large Scale Machine Learning
Gradient Descent with Large DatasetsLearning With Large Datasets在处理海量数据时对算法会有更高的要求。比如在计算偏导数时,当m很大时对m个元素求和的开销会很大。因此在将算法应用于海量数据时最好先确定算法没有high-bias,方法就是绘制leaning curve,左图是high-varience的,增大数据量会改善算法表现,而右图hi
2016-03-30 14:46:58
1620
原创 Stanford 机器学习笔记 Week9 Recommender Systems
Predicting Movie RatingsProblem Formulation推荐系统举例: 根据各个用户的打分记录,预测某用户对一没看过的电影的打分情况。Content Based Recommendations解决上一节问题的一个方法: 对于每个电影抽象出2个属性,romance 和 action,并手动赋值。再加上bias unit x0 = 1,就构成了表示每个电影属性的向量
2016-03-26 23:35:33
1879
转载 为什么logistic regression要使用sigmoid函数
转自:JUN’S TECH BLOG http://leijun00.github.io/2014/08/logistic-regression/我们知道,线性回归模型输出的是一个连续值,如果我们要输出的不是连续值,该怎么做呢?假设我们的输出只有 1 和 -1. 逻辑回归模型形式上是把线性回归模型做一个变换,让其输出是一个 0 到 1 之间的数,假设我们的变换叫做 g(z)g(z),然后在变换后
2016-03-23 16:58:27
7875
原创 Stanford 机器学习笔记 Week9 Anomaly Detection
Density EstimationProblem Motivation这个算法的目的是发现一个training set中的不规则点。给定一个training set ,如果我们能设计一个模型p,使得p(test) 等于该点是常规点的概率。那么我们就能通过判断p(test)< ε 来确定test是一个不规则点。 显然越接近原training set的中心p(test)越大。该算法可用于质量检测等许
2016-03-22 16:42:49
1632
原创 Stanford 机器学习 Week8 作业:K-means Clustering and Principal Component Analysis
FindClosestCentroidsfor i = 1:size(X,1) dis = sum((centroids - X(i,:)) .^ 2, 2); [t, idx(i)] = min(dis);endComputeCentroidsfor i = 1:K id = find(idx == i); tot = X(id,:); centroids
2016-03-20 23:22:41
1927
原创 Stanford 机器学习笔记 Week8 Dimensionality Reduction
MotivationMotivation I: Data Compression降维可以做数据压缩,减少冗余信息从而减小存储空间。2D向1D降维: cm 和 inches都表示长度,属于冗余信息,可以用z向量做新的维度,用1维就可以表示长度。3D向2D降维: 在左侧的原始数据中,所有点都接近一个平面,这说明存在冗余维度。将所有点投影到该平面形成中间图。用向量z1,z2做新的维度,降到2维
2016-03-19 23:16:33
1146
原创 Stanford 机器学习笔记 Week8 Unsupervised Learning
ClusteringK-Means Algorithm一种经典的聚类算法,步骤很简单,分4步:1.首先随机选择K个聚类中心 2.对于Training Set中的每个点i,计算离i最近的中心c(i),将该点标记为c(i) 3.对于每个中心k,重新计算该位置为:所有标记为k的点的平均位置 4.如果所有中心的位置都不变,算法结束。否则回到步骤2当在第2步时发现对于某中心没有属于的点,可以直接将该中心
2016-03-19 21:12:03
1319
原创 Stanford 机器学习笔记 Week7 Support Vector Machines
Large Margin ClassificationOptimization Objective在logistic回归中,cost function使用了sigmoid函数,从而将θTx的值映射到(0 , 1)范围内。 在SVM中提出了另一种函数cost来替代sigmoid函数,如图: 上图中曲线部分是sigmoid函数,而两段线段组成的部分就是新提出的cost函数,它也满足值域在(0,1)内并
2016-03-11 10:19:59
1052
原创 Stanford 机器学习笔记 Week6 Machine Learning System Design
Building a Spam ClassifierPrioritizing What to Work On本节将会设计一个垃圾邮件分类器,具体方法是这样的:首先设定一些经常在垃圾邮件中出现的单词,比如buy, discount, deal等等,假如有m个。然后对于一封邮件,用一个长度为m的0/1向量表示这些单词是否在这封邮件中出现过。一般来说,这些单词不是人工设定的,而是从训练集中选择出现频率最高
2016-03-05 14:36:24
1887
原创 Stanford 机器学习 Week6 作业:Regularized Linear Regression and Bias v.s. Variance
linearRegCostfunctionm = length(y); J = 0;grad = zeros(size(theta));J = 1.0 / 2 / m * ( sum( (X * theta - y) .^ 2) + lambda * sum(theta(2:end) .^2) );grad = 1 / m * ((X * theta - y)' * X)';grad(2:en
2016-03-04 12:28:16
1561
转载 埃氏筛法和欧拉筛法的区别
转自:点击打开链接Eratosthenes筛法(Sieve of Eratosthenes)由于思想非常简单,故只给出实现。12345678910111213141516171819void eratosthenes_sieve(int n){ totPrimes = 0;
2016-03-03 14:56:19
9848
1
原创 Stanford 机器学习笔记 Week6 Advice for Applying Machine Learning
Evaluating a Learning AlgorithmDeciding What to Try Next当算法效果不好时,你可能会尝试:1. 收集更多数据 2. 增加属性 3.减少属性 4.修改regularition参数lambda,下面几节会告诉你如何选择正确的做法。Evaluating a Hypothesis如何判定是否过拟合了?一种方法是拿出原训练集的70%做新训练集,计算出θ,然
2016-03-02 21:14:40
1354
原创 Stanford 机器学习 Week5 作业: Neural Networks: Learning
randInitializeWeightepsilon_init = 0.12;W = rand(L_out, 1 + L_in) * 2 * epsilon_init - epsilon_init;sigmoidGradientg = sigmoid(z) .* (1 - sigmoid(z));nnCostFunctionTheta1 = reshape(nn_params(1:hidden_
2016-02-29 16:11:52
1593
原创 Stanford 机器学习笔记 Week5 Neural Networks: Learning
Cost Function and BackpropagationCost Function在求取神经网络权重矩阵时,第一步也是要先写出cost function。它的cost function就是带rugularization 的logistic regression的加强版,因为在多种类分类中每个数据不再只有一个输出y(i),而是有K个0/1输出组成一个向量(K为种类数),因此神经网络的cost
2016-02-25 11:24:17
1710
原创 《机器学习实战》实践心得 kNN篇
生成数据:首先建立一个模块KNN.py,写一个生成数据的函数from numpy import *import operatordef createDataSet(): group = array([[1.0,1.1],[1.0,1.0],[0,0],[0,0.1]]) labels = ['A','A','B','B'] return group, labels在pyt
2016-02-23 16:26:23
2415
原创 Stanford 机器学习 Week4 作业 Multi-class Classification and Neural Networks
Vectorizing regularized logistic regressionm = length(y); % number of training examplesJ = 0;grad = zeros(size(theta));J = sum( -y .* log(sigmoid(X*theta)) - (1 - y) .* log(1 - sigmoid(X*theta))) /
2016-02-22 14:20:48
2744
原创 Stanford 机器学习笔记 Week4 Neural Networks: Representation
MotivationsNon-linear Hypotheses线性回归不能解决的问题:在分类问题中,分类边界实际上是一个由各个参数构成的多项式。当参数很少时(比如只有x1,x2),多项式还可以构造出来,但是当参数很多(假设有x1….x100),构造出的多项式的项数将非常多。对于n个参数的2次多项式,项数大约是n^2/2个。一个问题:给定一幅图,如何确定是不是一辆汽车?一种方法是把图片的每个像素点作
2016-02-21 15:26:21
999
原创 Stanford 机器学习笔记 Week3 Regularization
RegularizationThe Problem of Overfitting拟合效果不好有两种情况:欠拟合(Underfitting),指的是预测值和training set匹配程度较差。过拟合(Overfitting),指的是拟合曲线过度追求吻合training set,可能被一些噪音干扰,偏离实际情况。当数据的参数过多时容易发生这种情况。解决过拟合有两种方法:1.减少参数数量,可以人为选择使
2016-02-15 19:27:31
1035
原创 Stanford 机器学习笔记 Week3 Classification and Representation
Classification and RepresentationClassification分类问题的预测返回值为离散量。以0,1两种返回值为例。线性回归算法不适用于解决分类问题,因为画成图像后,数据点的y值只有0,1两种,因此边界上的一个单独的点会对回归直线造成很大影响。Hypothesis Representation相对于线性回归模型会出现预测值>1和<0的情况,逻辑回归(logistic
2016-02-15 19:17:17
975
原创 Stanford 机器学习 Week3 作业 Logistic Regression
Visualizing the datapos = find(y==1); neg = find(y == 0);plot(X(pos, 1), X(pos, 2), 'k+','LineWidth', 2, ... 'MarkerSize', 7);plot(X(neg, 1), X(neg, 2), 'ko', 'MarkerFaceColor', 'y', ... 'M
2016-02-14 20:40:34
1585
原创 Stanford 机器学习 Week2 作业: Linear Regression
Plotting the Datadata = load('ex1data1.txt'); % read comma separated dataX = data(:, 1); y = data(:, 2);m = length(y); % number of training examplesplot(x, y, 'rx', 'Mar
2016-02-08 22:37:09
1500
原创 Stanford 机器学习笔记 Week2
一.多变量线性回归1.1 n个变量的线性回归估计函数为 h(X)=k0+k1x1+k2x2+….+knxn 每个训练样本的n个变量构成一个n维向量X,为方便,在第一个位置添加一个x0=1,(与常数项k0相乘),这样就构成了一个n+1维向量。 同时k0~kn这个n+1个参数构成了另一个n+1维向量K。 那么估计函数就等于 K的转置*X1.2 多变量线性回归中,对于不同的参数向量K,同样有一个
2016-02-08 20:39:34
1160
原创 Octave 基础操作及解决安装绘图工具gnuplot时出现unknown terminal错误
查询关键字信息 help 关键字修改提示符 PS1=(’修改内容’)显示变量的值 disp(var)格式化输出 disp(sprintf(‘任意内容 %0.2f’, var))改变默认数据类型 format long\short生成矩阵 A = [1 2; 3 4; 5 6] %生成一个3*2的矩阵生成均匀数列 v = 起始值:步长:结束值 v = 1:
2016-02-07 15:44:11
3092
原创 python 模块(module)基础讲解
1.使用import命令引入模块,查询import的默认查询路径使用命令:import syssys.path添加搜索路径使用sys.path.append(路径)2.导入模块时最好按标准库模块,第三方模块,自定义模块的顺序,并在之间用空格分开3.加载模块时,被导入的模块的顶层代码会直接被执行,包括设定全局变量和类和函数的声明。4.不管一个模块被import几次,只被加载一次。5.使用例如from
2016-02-01 11:32:14
2073
原创 Stanford 机器学习笔记 Week 1
一.监督学习(supervised learning): 输入中的每个元素都给定了明确的类型,包含: 回归问题:给定训练集,预测输出为一些连续值。 分类问题:给定训练集,预测输出为一些离散值。二.无监督学习(unsupervised learning): 输入中的每个元素都没有指定明确类型,使用聚类算法,按照数据的结构将其分为多个聚类。 cocktail party算法
2016-01-29 10:25:32
888
原创 Python Numpy 数组的初始化和基本操作
一.基础:Numpy的主要数据类型是ndarray,即多维数组。它有以下几个属性:ndarray.ndim:数组的维数 ndarray.shape:数组每一维的大小 ndarray.size:数组中全部元素的数量 ndarray.dtype:数组中元素的类型(numpy.int32, numpy.int16, and numpy.float64等) ndarray.itemsize:每个元素
2016-01-17 13:56:41
225195
原创 Numpy数据类型
Data typeDescriptionbool_ Boolean (True or False) stored as a byte int_ Default integer type (same as C long; normally either int64 or int32) intc Identical to C int (normally int32 or int64) int
2016-01-10 23:46:10
9854
转载 VC键盘VK键值列表
键盘VK键值列表/* Virtual Keys, Standard Set*/VK_LBUTTON 0x01VK_RBUTTON 0x02VK_CANCEL
2015-11-10 10:50:29
2876
原创 HDU 4751 Divide Groups (判断二分图染色模板)
#include #include #include using namespace std;#define maxn 110struct node{ int next,to; node(){} node(int nn,int tt){ next=nn; to=tt; }}G[maxn*maxn];int head[maxn];
2015-10-30 18:55:37
531
原创 bitset 使用指南
MSDN:点击打开链接构造函数(3种):bitset a; //大小为10,值全为0bitset a(6);//大小为10,值为110bitset a("0110");//C type字符串做参数方法:all() //是否均为1any()//是否有一个1count()//1的数量flip(int n)//第N位取反,无
2015-09-22 20:23:37
713
转载 AC自动机模版
//======================// HDU 2222// 求目标串中出现了几个模式串//====================#include #include #include #include #include using namespace std;struct Trie{ int next[500010][26],fail[500010]
2015-09-19 20:03:04
497
转载 为什么python在函数中修改"字典型全局变量"不需要global
转自http://blog.csdn.net/handsomekang/article/details/41392417?utm_source=tuicool:比如下面这段代码[python] view plaincopys = 'foo' d = {'a':1} def f(): s = 'bar'
2015-09-14 19:24:10
8090
1
转载 矩阵模板
struct Matrix{ int mat[15][15]; int n; void init(int _n){ n = _n; memset(mat,0,sizeof(mat)); } Matrix operator *(const Matrix &b)const{ Matrix ret;
2015-09-11 20:24:54
557
原创 Codeforces Round #257 (Div. 1) B. Jzzhu and Cities (记录最短路数量)
首先把K条特殊边处理一下,到同一个点的只保留最短的,其余都去掉并维护答案。这样形成一棵树。然后再把这些边和m条普通边一起跑堆优化的dijkstra,并记录最短路数量。然后对于上一步剩下的每条特殊边,如果最短路长度小于它那一定可以去除,如果最短路长度等于它,就看最短路数量,如果等于1,说明就是这条特殊边,不能删,如果大于1说明有别的路,可以删。下面记录路径写的是简略版,因为本题只关心是不是大于1
2015-09-11 12:24:50
700
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人