自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

SanFancsgo的博客

业精于勤荒于嬉,行成于思毁于随。

  • 博客(65)
  • 资源 (2)
  • 收藏
  • 关注

转载 【转载】决策树处理缺失值

训练样本出现缺失值一、在选择分裂属性的时候,训练样本存在缺失值,如何处理?(计算分裂损失减少值时,忽略特征缺失的样本,最终计算的值乘以比例(实际参与计算的样本数除以总的样本数))假如使用ID3算法,那么选择分类属性时,就要计算所有属性的熵增(信息增益,Gain)。假设10个样本,属性是a,b,c。在计算a属性熵时发现,第10个样本的a属性缺失,那么就把第10个样本去掉,前9个样本组成新的样本...

2018-09-27 10:30:45 1900

原创 Python Spark MLlib 之决策树回归分析

数据准备选择UCI数据集中的Bike Sharing数据集(http://archive.ics.uci.edu/ml/datasets/Bike+Sharing+Dataset)进行实验。场景:预测共享单车租借数量。 特征:季节、月份、时间(0~23)、节假日、星期、工作日、天气、温度、体感温度、湿度、风速 预测目标:每一小时的单车租用数量1、下载数据集并打开终端输入命令 ...

2018-09-13 18:21:29 3739 1

原创 Python Spark MLlib之决策树多分类

数据准备选择UCI数据集中的Covertype数据集(http://archive.ics.uci.edu/ml/datasets/Covertype)进行实验。点击查看数据集详细信息。1、下载数据集并打开终端输入命令 cd ~/pythonwork/PythonProject/data wget http://archive.ics.uci.edu/ml/machine-le...

2018-09-13 13:58:48 4052

原创 Python Spark MLlib之朴素贝叶斯分类

数据准备和决策树分类一样,依然使用StumbleUpon Evergreen数据进行实验。Local模式启动ipython notebook cd ~/pythonwork/ipynotebook PYSPARK_DRIVER_PYTHON=ipython PYSPARK_DRIVER_PYTHON_OPTS="notebook" MASTER=local[*] pyspark...

2018-09-12 20:43:42 1780

原创 Python Spark MLlib之SVM支持向量机

数据准备和决策树分类一样,依然使用StumbleUpon Evergreen数据进行实验。Local模式启动ipython notebook cd ~/pythonwork/ipynotebook PYSPARK_DRIVER_PYTHON=ipython PYSPARK_DRIVER_PYTHON_OPTS="notebook" MASTER=local[*] pyspark...

2018-09-12 11:56:00 2946 1

原创 Python Spark MLlib之逻辑回归

数据准备和决策树分类一样,依然使用StumbleUpon Evergreen数据进行实验。Local模式启动ipython notebook cd ~/pythonwork/ipynotebook PYSPARK_DRIVER_PYTHON=ipython PYSPARK_DRIVER_PYTHON_OPTS="notebook" MASTER=local[*] pyspark...

2018-09-11 18:16:43 3100

原创 Python Spark MLlib 决策树分类

准备数据StumbleUpon Evergreen数据,来源于Kaggle中的一个题目StumbleUpon Evergreen Classification Challenge。StumbleUpon 是一个个性化推荐引擎,根据用户的兴趣行为给用户推荐网页,而有些网页内容是即时性(ephemeral)的,比如新闻股票网页(用户短暂感兴趣),有些网页是长久性的(evergreen)如体育,...

2018-09-10 18:39:20 3079 4

原创 基于Python Spark的推荐系统

ALS推荐算法Spark MLlib中实现了ALS(Alternating Least Squares)基于协同过滤的推荐算法。MovieLens数据集MovieLens数据集收集了大量用户对不同电影的评分,详情见数据集官网http://grouplens.org/datasets/movielens。下载ml-100k数据至工作目录中,终端输入命令: mkdir -p ...

2018-09-10 10:02:25 9901

原创 在Pycharm中添加外部工具运行Python Spark

终端命令以不同模式运行Python Spark在“终端”中以不同模式运行Python Spark程序需要输入很长的命令,例如分别以local、Hadoop YARN、和Spark Standalone模式运行Python Spark(这里以~/pythonwork/PythonProject/wordcount.py为例)每次都要输入命令:local: cd ~/pythonwork...

2018-09-09 16:07:48 2929

原创 Pycharm(Linux系统)配置Python Spark(导入pyspark)

Linux下配置Python Spark 集成开发环境PycharmPycharm下载:JetBrain官网http://www.jetbrains.com/pycharm/download/#section=linux 将下载之后的文件pycharm-community-2018.2.3.tar.gz移至主文件夹下进行解压安装: tar xvf pycharm-community...

2018-09-09 13:29:14 5822 1

原创 使用 Spark 创建WordCount

使用spark进行WordCount1、终端输入命令,创建目录~/pythonwork/ipynotebook/data及复制文件/usr/local/spark/LICENSE(对LICENSE做WordCount) mkdir -p ~/pythonwork/ipynotebook/data cp /usr/local/spark/LICENSE ~/pythonwork/ipyn...

2018-09-08 14:58:53 394

原创 Python Spark RDD

Python Spark RDDRDD(Resilient Distributed Dataset)弹性分布式数据集是Spark的核心,RDD能与其他系统兼容,可以导入外部存储系统的数据集,例如HDFS、HBase或其他Hadoop数据源。RDD的三种基本运算transformation“转换”运算:RDD执行“转换”运算会产生另外一个RDD;RDD具有lazy特性,“转换”运算并不...

2018-09-08 14:13:58 2214

原创 在IPython Notebook运行Python Spark

安装Anaconda在continuum上下载Anaconda2-2.5.0 for Linux终端命令行: wget https://repo.continuum.io/archive/Anaconda2-2.5.0-Linux-x86_64.sh bash Anaconda2-2.5.0-Linux-x86_64.sh -b -b 指batch,批次安装,自动省略阅读L...

2018-09-07 22:23:47 871

原创 Python Spark的介绍与安装

Spark的Cluster模式架构图摘自Apache官网:其中DriverProgram为设计的Spark程序,在Spark程序中必须定义SparkContext(开发Spark应用程序的入口)。SparkContext通过Cluster Manager管理整个集群,集群中包含多个Worker Node,在每个Worker Node中都有Executor负责执行任务Spa...

2018-09-07 20:10:54 4767

原创 Hadoop Single Node Cluster安装

Hadoop Single Node Cluster安装Hadoop Single Node Cluster 可以用一台机器来建立Hadoop环境。Hadoop Single Node Cluster 只有一台服务器,整合了所有功能: 安装步骤:安装JDK:Hadoop是基于Java开发设置SSH无密码登录:Hadoop必须通过SSH与本地计算机以及其他主机连接,必须设置SS...

2018-09-06 16:34:34 1065 1

原创 VirtualBox虚拟机下Ubuntu安装增强功能

Ubuntu安装增强功能初始安装的Ubuntu会有些问题:屏幕分辨率不够鼠标光标停顿延迟无法与原系统共享剪切板安装增强功能(Guest Additions)来解决这些问题。点击菜单栏的”设备“–>安装增强功能按照提示进行安装。安装完成后,重启系统。...

2018-09-05 22:17:41 7757

原创 Windows环境下VirtualBox虚拟机安装及Ubuntu Linux操作系统安装

VirtualBox的下载与安装在Windows(版本10,64位)下安装VirtualBox 5.0(点击进入下载地址),选择“Windows hosts” 选择默认安装,直接点Next,Next,..Finish,完成安装。启动VirtualBox: 设置VirtualBox存储文件夹Virtual默认在C盘创建一个文件用于存储虚拟主机的所有数据,变更该文件到其他硬...

2018-09-05 21:25:27 2548 1

原创 Spark、Python spark、Hadoop简介

Spark、Python spark、Hadoop简介Spark简介1、Spark简介及功能模块Spark是一个弹性的分布式运算框架,作为一个用途广泛的大数据运算平台,Spark允许用户将数据加载到cluster集群的内存中储存,并多次重复运算,非常适合用于机器学习算法。Spark的核心是RDD(Resilient Distributed Dataset)弹性分布式数据集,...

2018-09-05 18:10:21 6675

原创 红黑树及相关操作

红黑树红黑树是一种常用的平衡二叉树,C++标准模板库中的set正是基于红黑树构造。红黑树具有以下几个性质:(1) 每个节点被着色成红色或黑色。(2) 树的根节点是黑色的。(3) 如果一个节点是红色的,则它的子节点必须是黑色的(即两个红色的节点不能连续出现)。(4) 从一个节点到一个NULL指针的没一条路径必须包含相同数目的黑色节点。一个红黑树的例子 自底向上红黑树...

2018-07-01 20:26:33 582

原创 伸展树及相关操作

伸展树简要提点伸展树(Splay Tree)是一种二叉排序树,能在O(log n)内完成插入、查找和删除操作。伸展树的基本操作都和伸展有关:当带有关键字X的节点被插入时,需要对树进行一系列的伸展旋转使得关键字X的节点成为新的根节点。当查找一个关键字X时,也同样对树进行伸展旋转使得带有关键字X的节点成为根节点。这样下次再查找X时,只需O(1)的时间。伸展树的数据结构使得访问频繁的关...

2018-06-30 21:22:38 999

原创 回溯算法之收费公路重建问题

收费公路重建问题设给定N个点p1,p2,...,pNp1,p2,...,pNp_1, p_2,..., p_N位于x轴上,xixix_i为pipip_i的坐标,假设x1=0x1=0x_1=0且这些点从左至右分布。则每一对点之间都对应一个距离|xi,xj|, (i≠j)|xi,xj|, (i≠j)|x_i, x_j|, \ (i \neq j),共计有N(N-1)/2对点产生...

2018-06-29 14:53:25 3516 1

原创 动态规划求图中所有顶点对的最短路径

动态规划求所有点对最短路径问题描述应用动态规划算法求有向图G=(V,E)G=(V,E)G=(V,E)中每一对顶点的赋权最短路径。从Dijkstra算法中思考Dijkstra算法采用贪心的策略,指定从顶点s开始分阶段进行。图中的每个顶点最终都会被选作中间顶点。如果当前所选顶点是vvv,那么对于vvv的每个邻接点www,dw=min(dw,dv+cv,w)dw=min(dw,d...

2018-06-28 21:20:36 5057 2

原创 斐波那契数的递归算法和动态规划算法

斐波那契数1,1,2,3,5,8,13,21….从第3个数开始,每个数等于它前面的两个数之和。斐波那契公式为: {F(0)=F(1)=0F(n)=F(n−1)+F(n−2)  n≥3{F(0)=F(1)=0F(n)=F(n−1)+F(n−2)  n≥3\left\{ \begin{aligned} & F(0)=F(1)=0 \\ & F(n) =...

2018-06-27 22:10:35 2651

原创 图的深度优先遍历

深度优先遍历和树的先根遍历类似。指定从一个顶点v开始访问,并用一个状态表来记录顶点是否被访问。当v被访问时,标记被访问。当其邻接点未访问时,递归地访问其邻接点以及邻接点的邻接点……直到所有顶点都被访问。例如,上图从顶点v0v0v_0开始,深度优先遍历图的结果为:v0→v1→v3→v2→v5→v6→v4v0→v1→v3→v2→v5→v6→v4v_0 \to v_1 \to v_...

2018-06-27 20:35:01 540

原创 图的最小生成树之Prim算法及Kruskal算法

最小生成树定义:无向图连通图G中,由所有顶点构成且总价值(连接权值和)最低的一棵树(拓扑结构)称为一个最小生成树。最小生成树顶点为|V|个,边数为|V|-1,没有圈。对任一生成树T,如果将图中一条不属于T的边添加至T,则会产生一个圈,从该圈中除去任意一条边,则会又恢复成生成树。下图为一示例: 对于上面的无向有权连通图,其最小生成树为: 解决最小生成树问题有两种算法Prim算法和...

2018-06-27 16:58:32 5044 1

原创 图的有权最短路径及Dijkstra算法

图的有权最短路径和有向无权图不同的是,有向有权图相邻两个顶点间的边上被赋予一个连接权值。有权最短路径就是寻找一条路径使得该路径上的权值相加与其他路径相比最小。例如: 上图,顶点v0v0v_0和v5v5v_5之间存在多条路径,如v0→v3→v5v0→v3→v5v_0 \to v_3 \to v_5、v0→v3→v6→v5v0→v3→v6→v5v_0 \to v_3 \to v_6 \t...

2018-06-24 20:19:47 5341 1

原创 图的无权最短路径算法

无权最短路径对于无权图G(边没有权值或认为权值为1),如果G是连通的,则每个顶点之间都存在路径。最短路径算法就是要找到一条连接不同顶点的最短路径。上图表示一个有向无权图,顶点v2v2v_2到V6V6V_6之间存在多条路径如v2→v0→v1→v4→v6v2→v0→v1→v4→v6v_2 \to v_0 \to v_1 \to v_4 \to v_6为其中的1条,而最短的一条路径为...

2018-06-23 21:15:52 8305

原创 图的邻接表表示及拓扑排序

图的定义图(graph)G=(V, E)G=(V, E)G=(V,\ E),由顶点(vertex)集VVV和边(edge)集EEE组成。每条边为一个点对(v, w)(v, w)(v,\ w)。图的表示① 邻接矩阵表示法:使用一个二维数组A,对每条边(u, v), A[u][v]=1;否则为0。总空间大小为O(|v|2)O(|v|2)O(|v...

2018-06-22 11:53:56 2708

原创 排序算法综合实例

插入排序思想:从数组第二个元素开始,每次选取一个作为待排元素,与已排好的元素依次比较。如果待排元素比已排元素小,则已排元素依次后移。最后把待排元素插入到合适的位置。插入排序的平均复杂度为O(n2)O(n2)O(n^2)。插入排序函数模板template<typename T>void InsertSort(T* list, int n) // 选择排序函数的实...

2018-06-21 13:20:41 2670 1

原创 左式堆及相关操作

左式堆左式堆同样是一种堆结构满足堆序性质。左式堆是一种趋向不平衡的二叉树。零路径长(Null Path Length, NPL):节点X到一个没有两个孩子的最短路径长。具有0个或1个孩子的节点的NPL为0,空节点NPL为-1。任一节点的NPL比它孩子的NPL的最小值多1。且其左孩子的NPL大于或等于右孩子的NPL,这使得树偏向左增加深度。在右路径上有r个节点的左式树必然至少有2r−1...

2018-06-20 20:20:49 366

原创 优先队列(堆)及相关操作

二叉堆(堆)堆是一颗完全二叉树:除了底层每个节点都有两个孩子,底层节点从左到右依次填入(不能有间隔)。一颗高为hhh的完全二叉树有2h∼2h+1−12h∼2h+1−12^{h}\sim 2^{h+1}-1个节点;NNN的节点的完全二叉树的高度为⌊logN⌋⌊log⁡N⌋\lfloor \log N \rfloor。堆可以用数组实现:如果数组下标从1开始,每个位置iii的左孩子下标为2i2...

2018-06-20 19:26:58 432

原创 散列之开放定址法

开放定址散列法分离链表法缺点:需要指针,给新单元分配地址需要时间,导致算法速度减慢,同时还需要实现另一种数据结构。开放定址法:如果有冲突发生,尝试选择另外得单元,直到找出空的单元为止。开放定址散列法数据结构散列表单元不是链表,而是一个个散列项:包含关键字和相关信息(是否为空),数据结构声明如下:typedef struct Entry { // 定义哈希表元...

2018-06-20 15:54:25 1016

原创 散列与分离链表法

散列散列(hashing)是一种数据结构:包含有关键字的固定大小的数组(散列表)。能够以常数平均时间执行插入、删除和查找操作。散列函数(hash function):将每个关键字到散列表中的映射,理想情况下应该能保证不同关键字映射到散列表的不同单元。一个简单的散列函数Index Hash(const char *key, int TableSize){ unsign...

2018-06-20 15:17:52 1664

原创 AVL树及相关操作

AVL树定义AVL树是带有平衡条件的二叉搜索树。对于NNN个节点的AVL树,其深度必然为O(logN)O(log⁡N)O(\log N)一颗AVL树其每个节点的左子树和右子树的高度最多相差1(空树的高度定义为-1)。AVL树的旋转保证AVL树平衡的关键是插入元素过程中的旋转调整。旋转分四种情况:单左旋,单右旋,双左旋及双右旋。1.单左旋:插入某个元素之后,某个结点...

2018-06-19 16:17:57 362

原创 二叉树的非递归遍历:先根遍历、中根遍历、后根遍历

二叉树的非递归遍历二叉树的三种遍历方式也可以通过非递归的方法借助栈来实现。通过控制节点的出栈和入栈先后顺序来实现对树的不同方式的遍历。非递归先根遍历二叉树当栈不为空或者当前节点为不为空,执行操作:从根节点开始,依次访问树中最左端的节点并入栈,当节点为空停止入栈。取栈顶元素为当前节点并出栈,如果当前节点有右子树,则遍历其右子树。void PreorderPrint(...

2018-06-19 14:00:05 7887

原创 二叉搜索树及其相关操作

二叉搜索树简要提点二叉树(binary tree)是一种树型数据结构,其中它的每个节点最多有两个孩子(可以没有,也可以只有一个)。二叉搜索树(binary search tree)是一种特殊的二叉树,对每个节点,其左孩子/左子树的关键字值该节点的关键字值;其右孩子/右子树的关键字值都大于该节点的关键字值。二叉搜索树的平均深度为O(logN)O(log⁡N)O(\log N)。其中,NNN...

2018-06-19 12:43:46 270

原创 循环队列及其相关操作

循环队列简要提点解决队列操作过程中不断出队和入队导致的队满的”假象”(即队尾rear==Maxsize,而队首却不是0)。当队列”假满”时,引入循环,队尾和队首到达数组尾端,又会重新绕回开头。可以把循环队列的存储形象地看成一个“圆环”。循环队列的主要操作有:入队(Enqueue)、出队(Dequeue)、判断队是否空、满。循环队列的数组实现基本数据结构:队首fron...

2018-06-14 21:11:10 409

原创 队列及其相关操作

队列的简要提点队列(queue)是一种先进先出(FIFO, first in first out)的表。有队首和队尾,队尾进(插入)元素,队首出(删除)元素。队列的基本操作主要有:入队(Enqueue)、出队(Dequeue)。队列的实现方式也有两种:基于链表和基于数组。队列的数组实现基本的数据结构:存放元素的数组elemList,表示队首位置的front,表示队尾位置的...

2018-06-14 20:49:11 182

原创 栈及其相关操作

栈简要提点栈(stack)是一个后进先出(LIFO, last in first out)的表,限制在栈顶位置对元素插入和删除。栈的基本操作主要有:Push(进栈)、Pop(出栈)。栈主要有两种实现方式:链表和数组。栈的链表实现说明:利用带头指针的单链表实现:指定头指针为栈顶,入栈和出栈操作头指针及其后面的元素。代码实现(C/C++)#include<...

2018-06-14 20:09:13 225

原创 双链表及其相关操作(C++)

C++代码实现#include<iostream>using namespace std;typedef struct Node { // 定义结点 int date; struct Node *prior, *next;}DNode, *DLinkList;DLinkList initDList() // 初始化链表{ DLi...

2018-06-06 15:21:19 209

StumbleUpon Evergreen 数据集

StumbleUpon Evergreen数据,来源于Kaggle中的一个题目StumbleUpon Evergreen Classification Challenge。 StumbleUpon 是一个个性化推荐引擎,根据用户的兴趣行为给用户推荐网页,而有些网页内容是即时性(ephemeral)的,比如新闻股票网页(用户短暂感兴趣),有些网页是长久性的(evergreen)如体育,理财等(用户持续感兴趣)。现要分辨网页是ephemeral的还是evergreen的,以便向用户推荐更加准确的网页。 这是一个二分类问题。 查看StumbleUpon数据的详细信息:https:www.kaggle.com/c/stumbleupon/data

2018-09-10

用于构造决策树的小数据集

数据挖掘概念与技术课本P218页数据表格式为.csv。。决策树一般采用贪心策略**自顶向下**递归的分治方式构造,从训练元组集和与之相关联的类标号开始,随着树的构建,训练集递归地划分成较小的子集。构造过程大致如下: 1. 构造**根结点**,根据**属性选择度量**(例如ID3的信息增益)来选择合适的属性作为根结点。 2. 根据根结点的属性值(可能是离散的,连续的或二值的)**分枝**,每个分枝代表元组在该属性下可能满足的条件。

2018-04-16

空空如也

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

TA关注的人

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