What Singles Day can tell us about how retail is changing in China

Paper Title: What Singles Day can tell us about how retail is changing in China Authors: Lambert Bu, Anne Kronschnabl, Kelly Ungerman, Daniel Zipser Year: 2018 Link: What Singles Day can tell us about how retail is changing in China Tags: Open Access: Yes Notes Why Singles Day is the largest single-day sales even over the world, and its influence is becoming wider. Biggest sales $45 billion purchased made in 24-hour period.

Sequences of purchases in credit card data reveal lifestyles in urban populations

Paper Title: Sequences of purchases in credit card data reveal lifestyles in urban populations Authors: Riccardo Di Clemente, Miguel Luengo-Oroz, Matias Travizano, Sharon Xu, Bapu Vaitla & Marta C. González DOI: 10.1038/s41467-018-05690-8 Tags: Year: 2018 Open Access: Yes Notes What A framework was defined using a text compression technique on the sequences of credit card purchases to cluster different patterns of collective behaviors. Five consumer groups which shared similar characteristics were found.

Detecting influenza epidemics using search engine query data

Paper Title: Detecting influenza epidemics using search engine query data Authors: Jeremy Ginsberg, Matthew H. Mohebbi, Rajan S. Patel, Lynnette Brammer, Mark S. Smolinski & Larry Brilliant DOI: 10.1038/nature07634 Tags: Year: 2009 Summary What Propose a method of analyzing large numbers of Google search queries to track influenza-like illness in a population which can shorten reporting lag for 1-2 weeks. Why analyze Google queries possible

Jupyter notebook使用技巧 + nbextentions

Tab! 单按Tab:代码自动补全 Shift + Tab:查看帮助 输出矢量图! import matplotlib import matplotlib.pyplot as plt %matplotlib inline %config InlineBackend.figure_format = 'svg' 上面的最后一行指定了输出的格式是 svg,这样浏览器就能为你渲染矢量图了。 savefig 只要指定文件名后缀是 .pdf 或者 .eps 就能生成能方便地插入 latex 的图片了! plt.savefig('tmp.pdf', bbox_inches='tight') plt.show() magic命令! 参考:https://blog.csdn.net/tianjie5768/article/details/80164142 Magic单元分为两种,一种是line magics,另外一种cell magics。Line magic是通过在前面加%,表示magic只在本行有效。Cell magic是通过在前面加%%,表示magic在整个cell单元有效。 🌰e.g. 下图中使用%%bash,产生了linux下的shell环境(window下不支持,不过可以使用%%cmd),这样就可以运行pwd和ls命令了。 1、输入%lsmagic,可以显示所有magic命令。 2、其中一些比较常用的magic: (1)在jupyter内打印图片 %matplotline inline (2)将本地py文件代码导入进来到当前单元中 %load 🌰e.g. %load test.py (3)运行本地代码 %run 利用这个magic,我们可以把一些头文件,基本设置,共同函数写在不同的notebook内,用的时候运行一下就可以了。 🌰e.g. 将公共的函数写在common_import.ipynb中,一些导入函数的配置文件存在utils.ipynb中,需要的时候使用%run直接运行一下,就可以把公共函数和环境配置好了。这样可以将代码写成不同的模块,而不是全部写进一个notebook。 配置文件命令 便捷获取配置文件所在路径的命令 jupyter notebook --generate-config 注意: 这条命令虽然可以用于查看配置文件所在的路径,但主要用途是是否将这个路径下的配置文件替换为默认配置文件。 如果你是第一次查询,那么或许不会出现下图的提示;若文件已经存在或被修改,使用这个命令之后会出现询问“Overwrite /Users/raxxie/.

在Matlab下利用Libsvm的输出模型画SVM三维特征的二分类曲面

前言 在做毕设的时候用到了支持向量机(SVM)做分类,当特征为3维的时候,想画一个分类面出来。因为在matlab中使用的Libsvm包,没有画三维分类面的功能,所以参考了stackoverflow上的一个问题,写了一下画三维分类曲面的程序。 所用软件 Matlab R2017b Libsvm-3.22 (安装在matlab的toolbox中) 所用数据 变量名 说明 model 用Libsvm建模输出的模型 train_data 标准化后的训练数据,每一行是一个样本,每一列是一个特征 train_target 样本标记,0-1向量 数据示例 说明 negative样本在前,positive样本在后 negative样本标记0,positive样本标记1 train_data已经标准化到-1、1之间(标准化后方便svm的训练和曲面的展示) 训练svm的核函数为RBF,若训练时使用了其他的核函数,则需要修改funRBF train_data train_target 训练模型 model = svmtrain(train_target,train_data, ['-t 2 -c 100 -g', num2str(1/3),' -b 1 -q']); 代码 Main Code | 主代码 close all clear clc tic % 开始计时 %% load data 加载数据 load('model','train_data','train_target') Xdata_scaled = train_data; group = train_target; %% code GN3Dplot(Xdata_scaled,sum(group==0),sum(group==1),0,0,0,0); %plot samples 画三维图 xlabel('F1');ylabel('F3'); zlabel('F6'); ylim([-1 0]); yticks([-1 -0.

Mac下matlab2014b安装libsvm

环境&软件说明 系统:macOS High Sierra 10.13.3 matlab版本:matlab2014b xcode版本:Xcode9.1, SDK版本10.13 (必须要有xcode才行) libsvm版本:libsvm3.22 下载libsvm 1)在libsvm主页下载最新的libsvm 2)直接在Downloads下解压 3)将解压后的文件夹复制到/Applications/MATLAB_R2014b.app/toolbox/下 (P.S. 从Finder中的Application里找到Matlab,右键显示包内容) 下载xcode、安装command line tool 1)安装command line tools:打开终端(Terminal),输入 xcode-select --install 然后点击安装,等待下载安装即可。 2)确认xcode的SDK版本 从Finder进入 /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs , 看到SDK版本为10.13(Xcode9.1) 3)修改xml文件【MATLAB2017b可跳过这一步直接编译】 参考:https://blog.csdn.net/wukong1981/article/details/72805084) 因为matlab2014b不支持(自动识别)10.13版本的SDK,所以要在XML里添加几行 打开matlab,在command window中输入 edit ([matlabroot '/bin/maci64/mexopts/clang_maci64.xml']) 查找"10.9"关键词,得到例如: <dirExists name=" /Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk"/><cmdReturnsname="find/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk"/><cmdReturnsname="find -name MacOSX10.9.sdk" /> 在下面依次的加入10.12,10.13加好之后应该是这个样子的 </XCODE_AGREED_VERSION> <ISYSROOT> <and> <cmdReturns name="xcode-select -print-path"/> <or> <dirExists name="$$/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk" /> <dirExists name="$$/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk" /> <dirExists name="$$/Platforms/MacOSX.

chap 11 - 特征选择(特征选取) 与 稀疏学习

1 - 子集搜索与评价 1.1 - 特征 特征的定义:Feature,属性 按照对当前学习任务是否有用,可分为: 有用 → 相关特征 Relevant Feature 没用 → 无关特征 Irrelevant Feature 1.2 - 特征选择 Feature Selection 概述: 从给定的特征集合中选择出相关特征子集的过程 一个重要的数据预处理(data preprocessing)过程 原因(Why): ①属性过多造成“维数灾难” ②去除不相关特征可降低学习任务的难度 注意 必须确保不丢失重要特征,缺失重要特征会影响后续学习过程。 数据集相同,不同的学习任务的重要特征往往不同。 冗余特征(redundant feature, 可通过其他特征推演得出): ①大多数情况无用 ②有时可以降低学习难度 → 该特征对应学习任务所需的某一“中间概念” ⭐️假定: ①数据中不涉及冗余特征 ②初始的特征集合中包含了所有重要信息 1.3 - 如何选取特征子集? 若无背景知识作为先验假设,只能遍历所有可能子集 → 不可行,组合爆炸 选用“候选子集”,在此基础上增减特征,根据评价准则得到最优特征子集 1.4 - 子集搜索 (subset search) 特征选择方法

目录 周志华机器学习笔记

写在前面 最近搭建了自己的个人主页,以前一直用印象笔记做学习笔记。现在决定整理一部分笔记放在个人网站上,与大家一起交流学习,就从机器学习相关笔记开始吧。 目录 chap 01 - 绪论 chap 01 - ex chap 02 - 模型评估与选择 chap 02 - ex chap 03 - 线性模型 | Linear Model chap 03 - ex chap 04 - 决策树 | Decision Tree chap 04 - ex chap 05 - 神经网络 | Neural Network chap 05 - ex chap 06 - 支持向量机 | Support Vector Machine,SVM chap 06 - ex chap 07 - 贝叶斯分类器 | Bayesian Classifier chap 07 - ex chap 08 - 集成学习 | Ensemble learning chap 08 - ex chap 09 - 聚类 | Clustering chap 09 - ex chap 10 - 降维与度量学习 chap 10 - ex chap 11 - 特征选择(特征选取) 与 稀疏学习 chap 11 - ex

chap 10 - 降维与度量学习

10.1 k近邻学习(k-Nearest Neighbor, kNN) 类型:监督学习 工作机制: 给定测试样本,基于某种距离度量计算出训练集中与该样本距离最近的k个训练样本,然后基于这k个“邻居”的信息来进行预测。通常,在分类任务中采取“投票法”,回归任务中采取“平均法”,还可基于距离的远近使用“加权投票法”或“加权平均法”。 特点: 懒惰学习(lazy learning)的著名代表。此类学习技术在训练阶段仅仅保存训练样本,训练时间开销为零,待收到测试样本之后再处理。 之前的算法都是“急切学习”(eager learning)算法,即收到训练样本就马上处理。 kNN的关键: k取值不同,分类结果会显著不同; 距离度量的计算方式会导致同一测试样本有不同的“近邻”。 举一个例子🌰: 分类性能: 假设距离计算是“恰当”(能恰当找到$k$个近邻)的,取$k=1$,讨论“最近邻分类器”($1NN, k=1$)在二分类问题上的性能。 给定测试样本$x$,若其最近邻样本为$z$,则最近邻分类器出错的概率就是$x$与$z$类别标记不同的概率,即 假设样本i.i.d.,且对任意$x$和任意小正数$δ$,在$x$的$δ$邻域内总能找到一个训练样本;换言之,对任意测试样本,总能在任意近的范围内找到式(10.1)中的训练样本$z$。 即假设训练样本密度足够大,或称为“密度采样”(dense sample)。 令$c^\ast = \arg \max_{c \in \cal{Y}} P(c \,|\, \boldsymbol{x})$表示贝叶斯最优分类器的结果,有 可以看出,1NN虽然简单,但其泛化错误率不超过贝叶斯最优分类器错误率的两倍。 【严格分析参阅[Cover and Hart, 1967]】 10.2 低维嵌入 维数灾难 kNN的缺陷:“密度采样”难以满足。 属性维数越多,要满足密度采样条件的样本数目是无法达到的; 如,取$δ=0.001$,仅考虑单个属性,则需$1000$个样本点平均分布在归一化后的属性取值范围内;若属性维数为$20$,则至少需$(10^3)^{20}=10^{60}$个样本。【作为参照:宇宙间基本粒子的总数约为$10^{80}$(一粒灰尘中含有几十亿个基本粒子)】 在高维空间计算距离十分困难。 如,当维数很高时计算内积都十分困难。 以上在高维情形下出现的数据样本稀疏、距离计算困难等问题,是所有机器学习方法共同面临的严重障碍,被称为“维数灾难”(curse of dimensionality). [Bellman, 1957]最早提出,亦称“维数诅咒”、“维数危机”。 如何缓解维数灾难 特征选择(chap 11) 降维(dimension reduction)/ 维数约简:通过某种数学变换将原始高维属性空间转变为一个低维“子空间”(subspace)。在子空间内,样本密度大幅提高,距离计算变得简单。 可以降维的原因:

chap 09 - 聚类 | Clustering

9.1 聚类任务 clustering 类别:无监督学习 (unsupervised learning) 常见的无监督学习任务: 聚类(clustering)、密度估计(density estimation)、异常检测(anomaly detection) 聚类:将样本集划分为若干个通常是不相交的子集,每个子集称为一个“簇”(cluster)。每个簇可能对应某个潜在(事先不知道,需要聚类后命名)的类别。如对西瓜聚类,可能得到“浅色瓜”“深色瓜”“外地瓜”“本地瓜”等。 聚类的数学表示: 假定样本集$D = {\boldsymbol{x}_1, \boldsymbol{x}_2, \cdots, \boldsymbol{x}_m}$包含$m$个无标记样本,每个样本$\boldsymbol{x} = {x_1;x_2; \cdots,x_n }$是一个$n$维特征向量,则聚类算法将样本集$D$划分为$k$个不相交的簇${Cl \, | \, l=1,2,\cdots, k}$其中$C{l’} \cap_{l’ \neq l}Cl = \varnothing$且$D = \cup{l=1}^k C_l$. 相应地,用$\lambda_j \in {1,2,\cdots , k}$表示样本$\boldsymbol{x}_j$的“簇标记”(cluster label),即$\boldsymbol{x}j \in C{\lambda_j}$.于是,聚类的结果可用包含$m$个元素的簇标记向量$\boldsymbol{\lambda}=(\lambda_1; \lambda_2; \cdots, \lambda_m)$表示。 聚类的适用场景: 可作为单独过程,寻找数据内在的分布结构; 也可作为分类任务的先驱过程。 举一个例子: 商业应用中先对顾客进行聚类后,把顾客分为几个类型。然后用分类后的数据做训练集训练分类器,等有新顾客来的时候就能判断新顾客的类型。 9.2 性能度量 聚类性能度量:有效性指标(validity index) 好的聚类:“物以类聚”。聚类结果的“簇内相似度”(intra-cluster similarity)高且“簇间相似度”(inter-cluster similarity)低。 分类: 外部指标 external index:将聚类结果与某个参考模型(reference model)比较【如,将领域专家划分结果作为参考模型】; 内部指标 internal index:直接考察聚类结果。 外部指标 对数据集$D = {\boldsymbol{x}_1, \boldsymbol{x}_2, \cdots, \boldsymbol{x}_m}$,假定通过聚类给出的划分结果为$\cal{C}={C_1, C_2, \cdots, C_k}$, 参考模型给出的簇划分为$\cal{C}^\ast = {C_1^\ast, C_2^\ast, \cdots, C_s^\ast}$.