自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

The Zen of Data Analysis

Discover yourself in Data Analysis

  • 博客(102)
  • 收藏
  • 关注

原创 qq表情是否可以贴入博客

贴一个试试

2020-06-26 08:57:17 455

原创 大数据分析平台的演进之路

1、石器时代大数据技术刚起步时平台架构很简单,数据流从日志通过RSYNC(linux系统下的数据镜像备份工具)流入到Hive,然后通过Hive SQL语句统计分析,结果导入到MySQL,最后形成报表展示。整个流程的驱动基于Shell脚本完成,报表系统和数据处理是利用Java实现。所有业务需求都是手工处理,所有报表都要写Java代码开发,这个给开发人员造成了很大的工作量,并且用户获取数据周期长,速度慢。2、铁器时代整合了所有数据、所有计算资源和服务框架,重新构建形成一个大数据平台框架。底层是大

2020-06-26 08:54:29 1552 1

原创 Spark Yarn Cluster模式运行流程

以wordCount功能实现为例:命令行:bin/spark-submit –class WordCount –master yarn –deploy-mode cluster ./WordCount.jar ./input ./outputSpark Yarn Cluster模式运行流程命令行-脚本执行- SparkSubmit- 内部调用Client类里面的main方法并执行...

2020-03-26 12:06:29 568

原创 Spark Yarn Client模式运行流程

以wordCount程序为例:命令行内容:bin/spark-submit –class WordCount –master yarn –deploy-mode client ./WordCount.jar ./input ./output运行流程命令行-脚本执行- SparkSubmit- 调用main(即Driver)-执行代码-初始化SC-任务切分-申请启动Executor...

2020-03-26 11:48:00 453

原创 Spark 内核

Spark内核Spark内核泛指Spark的核心运行机制,包括Spark核心组件的运行机制、Spark任务调度机制、Spark内存管理机制、Spark核心功能的运行原理等。Spark核心组件DriverSpark驱动器节点,用于执行Spark任务中的main方法:将用户程序转化为作业(job);在Executor之间调度任务(task);跟踪Executor的执行情况;通过UI展...

2020-03-26 10:51:42 175

原创 scala的timeStamp格式转换

源码如下:import java.text.SimpleDateFormatimport java.util.Dateobject timeStamp { def main (args : Array[String]) : Unit = { val timeStamp = "1584864313644".toLong val day =new Date(timeStam...

2020-03-22 16:30:17 1906

原创 tensorflow神经网络练习

import tensorflow as tfimport numpy as np#定义隐藏层def add_layer(inputs,in_size,out_size,activation_function=None): #默认无activation_function,则为linear_function Weights = tf.Variable(tf.random_normal...

2020-02-01 11:50:08 181

原创 tensorflow之palceholder

tensorflow的palceholder必须配合字典 `feed_dict`使用

2020-01-30 06:01:27 189

原创 TensorFlow之variables

TensorFlow的变量处理

2020-01-29 18:44:52 152

原创 Tensorflow之Session

Tensorflow有两种Session的运行方式,案例如下:import tensorflow as tfmatrix1 = tf.constant([[3,3]])matrix2 = tf.constant([[2], [2]])product = tf.matmul(matrix1,matrix2)#matrix multiply 类似n...

2020-01-29 17:43:43 208

原创 Tensorflow梯度下降优化案例

安装tensorflow之后,先用命令查看一下相关版本及路径,然后再开始完成第一个梯度下降优化的小案例。

2020-01-29 16:45:37 212

原创 Python-Numpy语法总结-数组的索引和切片

普通索引和切片像列表一样的索引和切片a=np.arange(15).reshape(3,5)aarray([[ 0, 1, 2, 3, 4], [ 5, 6, 7, 8, 9], [10, 11, 12, 13, 14]])a[1][1]6a[[1,2]] #列表是不允许这样切的array([[ 5, 6, 7, 8, ...

2019-12-07 21:55:35 531

原创 Python-Numpy语法总结-数组的排序及重塑

一维数组排序np.random.seed(2)a=np.random.randn(5)print(a)np.argsort(a) #返回一个索引的排序(默认升序)[-0.41675785 -0.05626683 -2.1361961 1.64027081 -1.79343559]array([2, 4, 0, 1, 3], dtype=int64)print(a.argso...

2019-12-07 21:06:41 222

原创 Python-Numpy语法总结-数组的创建

NumPy 是什么?NumPy是使用Python进行科学计算的基础软件包。除其他外,它包括:功能强大的N维数组对象。精密广播功能函数。集成 C/C+和Fortran 代码的工具。强大的线性代数、傅立叶变换和随机数功能。#全部行都能输出from IPython.core.interactiveshell import InteractiveShellInteractiveShell....

2019-12-06 11:35:31 920

原创 机器学习-推荐系统之基于物品的协同过滤

推荐系统可以把那些最终会在用户( 推荐系统可以把那些最终会在用户( 推荐系统可以把那些最终会在用户( 推荐系统可以把那些最终会在用户( 推荐系统可以把那些最终会在用户( 推荐系统可以把那些最终会在用户( User )和物品( )和物品( Item Item )之间产生的 )之间产生的 连接 提前找出来。 提前找出来。 提...

2019-11-23 16:24:45 329

原创 机器学习-推荐系统之基于用户的协同过滤

人以群分 – 基于用户的协同过滤(User Collaborative Filtering,简称User CF)生活中可能有这样的朋友:他喜欢的书、电影,你也喜欢;他喜欢的衣服款式、美食餐厅你也十分推崇;……基本原理:通过用户对不同内容(物品)的行为,来评测用户之间的相似性,找到“邻居”基于这种相似性做出推荐:这种推荐的本质是,给相似的用户推荐其他用户喜欢的内容;这就是我们经常看...

2019-11-23 08:28:50 744

原创 Sklearn中的深度学习基础算法-神经网络MLP

sklearn是专注于机器学习的库,它在神经网络的模块中特地标注:sklearn不是用于深度学习的平台,因此这个神经网络不具备做深度学习的功能,也不具备处理大型数据的能力,所以神经网络在sklearn中颇有被冷落的意思。原理讲解也非常简单,并没有详细的描述。但是使用神经网络的类还是有很多参数,写法详细。以多层感知机为基础的类:MLPClassifier-神经网络分类器class sklear...

2019-11-22 12:19:50 5747

原创 深度学习基础算法-神经网络

2层神经网络的实现使用Numpy矩阵来实现神经网络。我们先使用最简单的网络去实现,这个神经网络去掉了偏置和激活函数,只有权重。这里我们假设每条线上对应的权重就是各自的数字,那么如果用函数来表示的话,应该是可以看到,这样的表示方法非常的复杂,不方便,因此我们把神经网络的表示方法,改变成矩阵的乘法形式:实现该神经网络时,要注意X ,W ,Y 的形状,特别是X和W的对应维度的元素个数是否一致...

2019-11-22 12:02:29 320

原创 深度学习基础算法-神经网络之激活函数

神经网络算法神经网络算法试图模拟生物神经系统的学习过程,以此实现强大的预测性能。不过由于是模仿人类大脑,所以神经网络的模型复杂度很高也是众所周知。在现实应用中,神经网络可以说是解释性最差的模型之一,商业环境中很少使用神经网络。然而除了商业分析,还有许多算法应用的部分,其中最重要的是深度学习和人工智能的领域,现在大部分已经成熟的人工智能技术:图像识别,语音识别等等,背后都是基于神经网络的深度学习算...

2019-11-22 11:03:00 410

原创 机器学习-二分类SVC中的样本不均衡问题:重要参数class_weight

样本不均衡问题对于分类问题,永远都逃不过的一个痛点就是样本不均衡问题。样本不均衡是指在一组数据集中,标签的一类天生占有很大的比例,但我们有着捕捉出某种特定的分类的需求的状况。比如,我们现在要对潜在犯罪者和普通人进行分类,潜在犯罪者占总人口的比例是相当低的,也许只有2%左右,98%的人都是普通人,而我们的目标是要捕获出潜在犯罪者。这样的标签分布会带来许多问题。首先,分类模型天生会倾向于多数的类,...

2019-11-13 18:28:00 6776

原创 机器学习-SVM硬间隔与软间隔:重要参数C

SVM在软间隔数据上的推广到这里,我们已经了解了线性SVC的基本原理,以及SVM如何被推广到非线性情况下,还了解了核函数的选择和应用。但实际上,我们依然没有完全了解SVM用于二分类的全貌。我们之前在理论推导中使用的数据都有一个特点,那就是他们或是完全线性可分,或者是非线性的数据。在我们对比核函数时,实际上用到了一种不同的数据,那就是不完全线性可分的数据集。比如说如下数据集:这个数据集和我们最...

2019-11-13 18:14:41 8169

原创 机器学习:SVM核函数的优势和缺陷

看起来,除了Sigmoid核函数,其他核函数效果都还不错。但其实rbf和poly都有自己的弊端,我们使用乳腺癌数据集作为例子来展示一下:from sklearn.datasets import load_breast_cancerfrom sklearn.svm import SVCfrom sklearn.model_selection import train_test_splitim...

2019-11-12 10:27:53 4958

原创 机器学习:非线性SVM核函数在不同数据集上的表现

问题引入除了"linear"以外的核函数都能够处理非线性情况,那究竟什么时候选择哪一个核函数呢?遗憾的是,关于核函数在不同数据集上的研究甚少,谷歌学术上的论文中也没有几篇是研究核函数在SVM中的运用的,更多的是关于核函数在深度学习,神经网络中如何使用。在sklearn中,也没有提供任何关于如何选取核函数的信息。但无论如何,还是可以通过在不同的核函数中循环去找寻最佳的核函数来对核函数进行一个选取...

2019-11-12 09:43:19 1219

原创 线性SVM决策过程的可视化

使用sklearn中的式子来可视化决策边界,支持向量,以及决策边界平行的两个超平面。导入需要的模块from sklearn.datasets import make_blobs #导入创造数据集的包from sklearn.svm import SVC #支持向量机分类器import matplotlib.pyplot as pltimport numpy as np实...

2019-11-11 22:42:01 1955

原创 非线性SVM-重要参数kernel

非线性SVM的决策函数:将数据从原始的空间投射到新空间中,这种变换非常巧妙,但也带有一些实现问题。 首先,我们可能不清楚应该什么样的数据应该使用什么类型的映射函数来确保可以在变换空间中找出线性决策边界。极端情况下,数据可能会被映射到无限维度的空间中,这种高维空间可能不是那么友好,维度越多,推导和计算的难度都会随之暴增。其次,即使已知适当的映射函数,我们想要计算类似于这样的点积,计算量可...

2019-11-04 20:36:45 927

原创 SVC在非线性数据上的推广

为了能够找出非线性数据的线性决策边界,我们需要将数据从原始的空间投射到新空间中。是一个映射函数,它代表了某种非线性的变换,如同我们之前所做过的使用r来升维一样,这种非线性变换看起来是一种非常有效的方式。使用这种变换,线性SVM的原理可以被很容易推广到非线性情况下,其推导过程和逻辑都与线性SVM一模一样,只不过在定义决策边界之前,我们必须先对数据进行升维度,即将原始的转换成。如此,非线性S...

2019-10-27 20:02:07 196

原创 机器学习:线性SVM转换拉格朗日对偶函数和决策函数

拉格朗日函数转换为拉格朗日对偶函数Why need求极值,最简单的方法还是对参数求导后让一阶导数等于0。先来试试对拉格朗日函数求极值,在这里对参数向量和截距分别求偏导并且让他们等于0。这个求导过程比较简单:由于两个求偏导结果中都带有未知的拉格朗日乘数αi,因此还是无法求解出ω和b,必须想出一种方法来求解拉格朗日乘数αi。幸运地是,拉格朗日函数可以被转换成一种只带αi,不带ω和b的形式,这...

2019-10-26 07:09:41 1221

原创 机器学习:线性SVM损失函数转换拉格朗日乘数

线性SVM的拉格朗日对偶函数和决策函数有了损失函数,就需要对损失函数进行求解。这个求解过程异常复杂,涉及到的数学的难度不是推导损失函数的部分可比。并且,在sklearn当中,我们作为使用者完全无法干涉这个求解的过程。因此作为使用sklearn的人,这部分属于进阶内容。之前得到了线性SVM损失函数的最初形态:minω,b∣∣ω∣∣22min_{ω,b}\frac {{||ω||}^2}2min...

2019-10-20 21:55:00 676

原创 机器学习:线性SVM的损失函数

要理解SVM的损失函数,先定义决策边界。假设现在数据中总计有个训练样本,每个训练样本i可以被表示为(xi)(x_i)(xi​),其中是这样的一个特征向量,每个样本总共含有个特征。二分类标签的取值是{-1, 1}。如果n等于2,则有,分别由我们的特征向量和标签组成。此时我们可以在二维平面上,以为横坐标, 为纵坐标, 为颜色,来可视化我们所有的N个样本:我...

2019-10-20 12:20:33 814

原创 机器学习:支持向量机SVM

支持向量机(SVM,也称为支持向量网络),是机器学习中获得关注最多的算法没有之一。它源于统计学习理论,与集成算法一样,也是强学习器。从算法的功能来看,SVM几乎囊括了所有常用算法的功能:有监督学习:线性二分类与多分类(Linear Support Vector Classification)非线性二分类与多分类(Support Vector Classification, SVC)普通连续...

2019-10-19 21:48:14 716

原创 机器学习:算法模型的偏差 vs 方差

一个集成模型(f)在未知数据集(D)上的泛化误差E(f;D),由方差(var),偏差(bais)和噪声(ε)共同决定。E(f;D)=bias2(x)+var(x)+ϵ2E(f;D)=bias^2(x)+var(x)+\epsilon^2E(f;D)=bias2(x)+var(x)+ϵ2关键概念:偏差与方差观察下面的图像,每个点就是集成算法中的一个基评估器产生的预测值。红色虚线代表着这些预测值...

2019-10-19 12:20:03 1089

原创 机器学习模型的评估指标

机器学习的参数调整是为了更好的模型拟合度,那么其评估标准是什么,如何调整参数来提升模型的整体效果呢?调参的方式总是根据数据的状况而定,所以没有办法一概而论。通过画学习曲线,或者网格搜索,能够探索到调参边缘(代价可能是训练一次模型要跑三天三夜),“业界广泛流传:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已”。但是在现实中,高手调参恐怕还是多依赖于经验,而这些经验,来源于:1...

2019-10-19 11:13:38 459

原创 sklearn机器学习:AdaBoost回归器

上篇博文讨论了AdaBoost分类器,接下来一起看一下AdaBoost回归器如何工作。核心参数至于弱分类器,还是使用决策树,用一个小例子一起来看AdaBoostRegressor的使用。#AdaBoostRegressor#导入所需的模块和包import numpy as npimport matplotlib.pyplot as pltfrom sklearn.tree imp...

2019-10-18 22:23:29 4513

原创 sklearn机器学习:AdaBoost分类器

AdaBoostAdaBoost,是英文"Adaptive Boosting"(自适应增强)的缩写,由 Yoav Freund 和 Robert Schapire在1995年提出。它的自适应在于:前一个基本分类器分错的样本会得到加强(也就是得到更高的权重),加权后的全体样本再次被用来训练下一个基本分类器。同时,在每一轮中加入一个新的弱分类器,直到达到某个预定的足够小的错误率或达到预先指定的最大迭...

2019-10-18 21:59:08 7169

原创 sklearn机器学习:随机森林回归器RandomForestRegressor

sklearn随机森林回归器类的格式sklearn.ensemble.RandomForestRegressor (n_estimators=’warn’, criterion=’mse’, max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features=’au...

2019-10-18 16:43:30 36097 2

原创 sklearn机器学习:随机森林分类器RandomForestClassifier

以下以随机森林为例讨论集成算法。sklearn随机森林分类器随机森林是非常具有代表性的Bagging集成算法,它的所有基评估器都是决策树,分类树组成的森林就叫做随机森林分类器,回归树所集成的森林就叫做随机森林回归器。我们先来看RandomForestClassifier,随机森林分类器。class sklearn.ensemble.RandomForestClassifier (n_est...

2019-10-16 22:05:25 18816 2

原创 机器学习:集成算法概述

集成学习(Ensemble learning)就是将若干个弱分类器通过一定的策略组合之后产生一个强分类器,是时下非常流行的机器学习算法,它本身不是一个单独的机器学习算法,而是通过在数据上构建多个模型,集成所有模型的建模结果。基本上所有的机器学习领域都可以看到集成学习的身影,在现实中集成学习也有相当大的作用,它可以用来做市场营销模拟的建模,统计客户来源,保留和流失,也可用来预测疾病的风险和病患者的易...

2019-10-16 19:44:49 747

原创 sklearn机器学习:基于密度的聚类算法DBSCAN

DBSCANK-Means是最常见的聚类方法,能够实现快速聚类,但局限于其算法构架,K-Means对非球形边界的数据很难达到一个较好的分类效果,因此我们需要借助另外的数学理理论工具对其进行进一步的完善。这里介绍一种利用密度进行聚类的方法:DBSCAN。一方面作为聚类算法的补充内容,一方面需要掌握面一个新算法如何利用scikit-learn快速上手应用实践的方法,当然最重要的一点,是要树立关于...

2019-10-15 06:42:10 4769

原创 sklearn机器学习:K-Means之提前停止迭代

重要参数max_iter & tol:让迭代停下来之前描述K-Means的基本流程时我们提到过,当质心不再移动,K-Means算法就会停下来。但在完全收敛之前,我们也可以使用max_iter,最大迭代次数,或者tol,两次迭代间Inertia下降的量,这两个参数来让迭代提前停下来。有时候,当我们的n_clusters选择不符合数据的自然分布,或者为了业务需求,必须要填入与数据的自然分布不...

2019-10-14 21:58:57 2943

原创 sklearn机器学习:K-Means初始质心怎么放

重要参数init & random_state & n_init在K-Means中有一个重要的环节,就是放置初始质心。init如果有足够的时间,K-means一定会收敛,但Inertia可能收敛到局部最小值。是否能够收敛到真正的最小值很大程度上取决于质心的初始化。init就是用来帮助我们决定初始化方式的参数。random_state初始质心放置的位置不同,聚类的结果很可...

2019-10-14 21:35:22 8393

空空如也

空空如也

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

TA关注的人

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