自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(143)
  • 收藏
  • 关注

原创 机器学习与各种技术之间的关系

在36氪上看到一篇很好的关于机器学习的文章,对机器学习与各个领域的结合讲得非常清晰。现小结一下如下。基本定义:机器学习方法是计算机利用已有的数据(经验),得出了某种模型(迟到的规律),并利用此模型预测未来(是否迟到)的一种方法。机器学习与人类对历史经验的归纳,类比图如下:机器学习的范畴,见下图:下面逐个介绍机器学习与各领域之间的关系。模式识别=机器学习。一个源自工业界,一个源自计算机学科。数据挖掘...

2018-04-14 18:31:33 2594

原创 服务器登录几个问题的解决

1、登录服务器方式一:账号密码      登录服务器方式二:ssh密钥登录。借助xshell图形化工具链接linux服务器,用xftp传输文件。也可以用SftpNetDriverFree传输文件。      后者更加安全。2、xftp文件乱码。打开文件-》属性-》选项,勾选连接下的“使用UTF-8编码”。3、雷柏鼠标发光,下载驱动关闭发光功能。

2016-06-20 15:53:23 1176

原创 数据预处理技术

进行数据挖掘和机器学习之前,必须保证数据是可靠、可用的。这就要通过一定技术,对数据进行处理和转换,将原始数据转化成算法和模型需要的格式和内容。这就是数据预处理技术,其对数据挖掘效果的好坏,预测结果的正确性具有基础性的作用。数据预处理一般包括:数据清洗、集成、转换、规约。数据清洗:目的:格式标准化、异常数据清理、错误纠正、重复数据清除。主要任务:缺失值处理、去噪。

2016-05-25 16:15:41 1841

原创 随机森林、EM、HMM、LDA

本篇简单介绍这些概念。随机森林(Random Forest)是一种分类和回归算法,它包含了多个决策树,形成一个森林,随机森林的类别是所有决策树分类回归结果的众数决定。由于它优点很多,适应比较广泛.1、能够处理高维数据,不用做特征选择,自动选出那些特征重要。2、训练速度快,分类精度高。3、能检测到特征之间的相互影响。4、不会产生过拟合。期望最大化(Expe

2016-05-23 16:55:07 2189 1

原创 异常点检测原理和系统设计

在机器学习和数据挖掘过程中,经常会遇到异常点。如何处理这些点,关系到后期模型的正确度和精确度,也关系到模型和算法的效率。对于明显的、人能分辨的异常点,比如人的年龄大于150岁,电脑价格20万人民币,这种显而易见的异常点,可以直接忽略,剔除掉。对于人无法直观判断的异常点,需要借助模型和数学工具进行分析,然后决定采取何种方式处理。异常检测的基本步骤:1、选定容易出错

2016-05-21 21:29:45 1734

原创 准确率、召回率、F-score——信息检索、分类、推荐系统评估标准

在分类和推荐系统中,对其结果进行评价,经常用到准确率、召回率、F-score这些指标。下面介绍其概念,举例阐述。准确率(Precision):检索出的相关文档/检索出的文档总数,衡量的是系统的查准率。召回率(Recall):检索出的相关文档/文档中所有相关文档总数,衡量的是系统的查全率。F-score是两者的综合评价标准:准确率和召回率的取值范围都在[0,1],越高越好

2016-05-21 20:08:59 6642 2

原创 TF-IDF与余弦相似度

在文本处理中,经常用到TF-IDF,其英文是Term Frequency - Inverse Document Frequency,词频-逆文档频率。 作用是提取文档的关键词,思路是文档的出现最多的词,乘以逆文档作为权重的结果。 然后按照数值进行排序,就能得到文档的关键词从高到低的顺序。 基于每篇的词频向量,计算余弦相似度,就等得到文件之间的相似度。 从而完成相似文章推荐,相似文章添加评论。

2016-05-21 18:12:15 3927

原创 机器学习中各种距离计算

机器学习中,经常需要计算各种距离。 比如KNN近邻的距离,Kmeans距离,相似度中的距离计算。 这种距离不一定都是欧氏距离,针对不同需求,数据的不同特点,距离的计算方式不同。 下面给出机器学习中常用的距离计算方式,及其应用特点。对于距离,有如下基本特性: 1、d(x, x)=0 //到自己的距离为0 2、d(x ,y)>=0 //距离非负 3、d(x, y)=d(

2016-05-21 16:54:56 6111

原创 机器学习的数据归一化方法

作用:对于不同的特征向量,比如年龄、购买量、购买额,在数值的量纲上相差十倍或者百千倍。如果不归一化处理,就不容易进行比较、求距离,模型参数和正确度精确度就会受影响,甚至得不出正确的结果。 举个例子:用梯度下降法求解最优解时,下图展示没有归一化和归一化处理两种情况下的求解过程。 左图表示没有归一化的求解过程;右图表示有归一化的处理过程。 X1、X2表示特征向量,数值区间分别为[0,2000]

2016-05-21 12:09:51 4820

原创 凸集、凸函数、凸优化问题

机器学习中,经常会用到凸集、凸函数、凸优化问题。 这里对这些概念进行介绍,简单介绍其关系。凸集:如果集合A中任意两个元素的连线上的点也在集合内,则为凸集。见下图。 凸函数:函数任意两点连线上的值大于对应对应自变量出的函数值,则为凸函数。见下图。 凸优化:目标函数是凸函数,变量集合属于凸集,则可以用凸优化处理问题。或者目标函数是凸函数,变量集合的约束函数是凸集合,则也可以用凸优化处理问题

2016-05-21 00:35:57 4159

原创 机器学习中牛顿法/梯度下降法

机器学习中,很多时候是求最优化问题,优化问题的求解通常有两种求解方法:牛顿法、梯度下降法。牛顿法:使用迭代的方法,寻找使f(theta) = 0,找到 theta的具体取值。数学表达式如下: 简单理解:先随机选取一点,求出f在该点的切线即导数; 切线等于0的位置,即下一次迭代的值; 知道f逼近等于0的点。 具

2016-05-21 00:23:19 643

原创 机器学习的最优化问题

机器学习的最优化问题机器学习中的大多数问题都可以转化为最优化问题。 过程为:把一些经典问题,转化为最优化数学模型,然后用最优化方法求解。机器学习和数据挖掘中,哪些属于最优化问题,见下表。 无约束的最优化问题,一般是描述得到最优化目标函数f(x),然后求最值min/max f(x). 基本解法包括:梯度下降法、牛顿法(DFP、BFGS)在机器学习中,将问题转化为最优化问题,对应如下: 线性

2016-05-20 23:55:33 1766

原创 特征选择/特征提取

特征提取:将原始数据转换成一组具有明显物理的特征,或者核的特征。 特征选择:从一组特征中选择一组具有统计意义的特征。也叫特征子集选择。 两者都能实现降维效果。但特征提取关注数据和特征的转换;特征选择关注特征在统计意义上的选择。 特征提取包括:PCA,SVD。 特征选择包括如下步骤:产生子集;评价函数;停止准则(一般跟评价函数相关,达到一个阈值即停止搜索);验证过程(在测试集上验证选择后的特征

2016-05-20 23:14:18 2987

原创 机器学习中过拟合问题分析及解决方法

机器学习中过拟合问题分析及解决方法表现:在训练集上的误差特别小,在测试集上的误差特别大。 原因:模型过于复杂,过分拟合数据噪声和outliers(离群值). 解决方法: 1、正则化。模型中添加先验知识,降低模型复杂度,降低噪声和离群值outliers的扰动影响。 举例1:抛硬币,推荐正面朝上的概率。如果抛五次结果都是正面朝上,得出结果正面朝上的概率是1——过拟合。

2016-05-20 22:31:00 2179

原创 海量数据处理分析经验和技巧

海量数据处理分析经验和技巧什么叫海量数据: 1. 数据量函数过千万,或者过亿,必须用程序处理; 2. 数据量达到TB,普通机器无法处理,必须借助特殊的工具和程序。 海量数据处理的软硬件要求: 3. 合理使用工具; 4. 合理分配系统资源; 5. 利用适当的方法。 对程序员的要求:没有通用方法,有通用原则和原理。 1. 丰富的经验; 2. 灵活的处理方式。海量数据

2016-05-20 17:55:53 2695

原创 百分点推荐引擎——需求与架构——案例分析

百分点推荐引擎,实现了多种推荐算法,适应不同商务网站对不同推荐结果的要求。为了设计大数据下、高可用高可靠、实时、可扩展、便于管理的推荐系统引擎。百分点设计了如下推荐系统架构。主要分4大部分:存储层、算法层、业务层、管理层。存储层:存储用户原始浏览数据、用户数据、网站数据,作为算法层的基础数据。算法层:核心关键部分,根据业务层不同需求,从存储层获取不同数据,调用不同算法,或者混合

2016-05-20 11:10:56 1069

原创 电子商务网站商品推荐案例分析

本案例的主要目的是通过分析用户和网站数据,使用数据挖掘技术,分析老客户忠诚度下降的原因。建立客户忠诚度模型,提高其忠诚度。一、分析方法和过程数据来源:客户信息、交易信息分别存放在网站数据库的客户表、订单表、订单明细中。数据抽取:去除不需要的电话、身份证等不重要信息,抽取重要信息,如反应客户个人身份背景、学历等反应其交易心理的相关信息。数据转换:将抽取的信息转换成能被数据

2016-05-20 10:46:59 4019

原创 数据挖掘基础知识

随着计算机技术、网络技术、通讯技术的快速发展,企业产生了大量的业务数据。这些数据体量大,通常以TB计算;这些数据包含企业运行中非常有价值的信息。这些海量信息无法通过常用的方法提取有价值的信息。为了分析这些数据,发掘企业运行中有规律的信息、为商业决策提供辅助,使企业获取更高利润;或者使政府决策部门做出更加科学合理的公共决策。我们采用数据挖掘技术,是一个强有力的工具。简单地

2016-05-19 20:41:20 1146

原创 数据库设计基本知识

数据存储对整个软件系统至关重要,对软件的效率和效果具有决定性影响。设计数据库系统时,典型的步骤如下:1、系统目标设计。从大的方面确定数据库的作用和意义。是只读还是增删改查都可以。2、开发设计思想。3、开发和运行环境选择。4、系统功能分析。5、系统功能模块确定。6、数据库设计:1、需求分析(包括内容要求和处理要求),产生数据文档(包括数据项、数据结构、数据流)。2

2016-05-19 11:57:37 579

原创 HBase介绍

HBase是Hadoop家族的一员,主要存储数据,支持pig和hive的API访问。HBase是分布式的、面向列,开源数据库。适应与非结构化数据的存储。适应于列而非行。技术特点:1、大表:一个表有上亿行,百万列。2、面向列:面向列族的存储和权限控制,列族独立检索。3、稀疏:对于null的列,并不占用空间,所以表可以设计的非常稀疏。表存储结构:1、

2016-05-18 11:15:25 384

原创 海量数据的KNN分类、Kmeans聚类

针对海量数据,如何进行KNN分类和聚类,比如10万行的数据。本篇给出基本思路,具体实现未介绍。问题:如何对海量数据(5000万行)进行分类分析:进行分类的前提是,已经有相同格式数据分类完毕;接下来,是如何将新的海量数据(5000行),进行合理分类。思路1:bayes分类,根据数据的特征向量,计算其不同分类下的概率值,取最大概率所属类,即是分类结果。思路2:KNN分类,计

2016-05-16 23:39:55 3973

原创 算法模型好坏、评价标准、算法系统设计

算法模型好坏的评价通用标准:1、解的精确性与最优性。基于正确性基础上。2、计算复杂度,时间成本。3、适应性。适应变化的输入和各种数据类型。4、可移植性。5、鲁棒性。健壮性。 鲁棒性(robustness)就是系统的健壮性。它是在异常和危险情况下系统生存的关键。比如说,计算机软件在输入错误、磁盘故障、网络过载或有意攻击情况下,能否不死机、不崩溃,就是该软件的鲁棒性。所谓“

2016-05-15 17:44:26 10716

原创 spark基础知识二

偶然看到spark的一篇概述PPT,来自中国移动,总结的很清晰全面。这里对其主要内容小结,加深理解。spark历史:2009年诞生于伯克利大学。2014年成为apache顶级项目。spark成为最为活跃的大数据处理平台和框架。特点:架构先进:采用简洁的scala语言,akka作为通信框架,DAG作为执行引擎减少计算中间结果写入到HDFS,统一抽象的RDD。高

2016-05-15 12:32:48 366

原创 spark中协同过滤算法分析

spark的MLlib是其机器学习算法库。其中协同过滤算法叫做ALS,交替最小二乘法。下面对算法思路和执行代码进行分析。算法思想:1、对于用户、商品、评分构成的打分矩阵。一般来说是稀疏的矩阵,因为用户没有对所有商品打分,很多地方评分是未知数。2、我们的目的是要将这个打分矩阵填满,从而预测用户对某个商品的打分,继而进行推荐。3、计算这个原始矩阵的计算量是非常巨大的,而

2016-05-15 00:27:55 1676

原创 spark的DataFrame介绍及使用示例分析

DataFrame是spark推荐的统一结构化数据接口。基于DataFrame能实现快速的结构化数据分析。它让spark具备了大规模结构化数据的处理能力。暗示了spark希望一统大数据处理的决心和野心。spark通过DataFrame希望满足所有数据处理工程师的需求,包括R工程师、SQL商业分析师。DataFrame处理的基本步骤是:1、创建sqlContext,它

2016-05-14 20:10:00 4693

原创 spark程序解析——WordCount

本篇解析spark的词频统计源程序代码。java源码如下:package sparkTest;import java.util.Arrays;import org.apache.spark.SparkConf;import org.apache.spark.api.java.JavaPairRDD;import org.apache.spark.api.java.Jav

2016-05-14 17:18:46 1414

原创 spark程序——统计包含字符a或者b的行数

本篇分析一个spark例子程序。程序实现的功能是:分别统计包含字符a、b的行数。java源码如下:package sparkTest;import org.apache.spark.SparkConf;import org.apache.spark.api.java.JavaRDD;import org.apache.spark.api.java.JavaS

2016-05-14 11:54:30 4395

原创 sparkPi源码解析

在ubuntu的eclipse系统上,基于maven建立了第一个spark程序sparkPi,顺利执行正确结果。现在对sparkPi源码进行解析,借此熟悉spark java API,为后面基于java的spark编程做准备。sparkPi源码如下:package sparkTest;/* * Licensed to the Apache Software Foundat

2016-05-14 00:18:06 1013

原创 基于maven创建spark工程、调试并运行

建立spark工程有两种方式:java工程、maven工程。由于maven管理jar包很方便,本篇基于maven构建spark工程。spark支持四种语言:scala、java、python、R。其中scala是基于java的语言,必须有JDK支持。同时也是spark源码语言,官方API文档对scala的支持是最好的。如果能选择scala语言作为spark程序的开发,是

2016-05-12 12:13:04 2149

原创 spark第一个简单示例的源码解读

本篇解读spark官方文档上的第一个shell示例程序。解读spark程序必须具备scala基础知识,关于scala基础参考文章1.完整代码如下:scala> val textFile = sc.textFile("file:///usr/local/spark/README.md")textFile: org.apache.spark.rdd.RDD[String] =

2016-05-10 23:58:27 933

原创 spark shell编程基础知识

shell编程提供对spark api最简单,也是最直接的调用。支持两种脚本语言:scala、python。启动shell编程: ./bin/spark-shell.sh执行顺序是:spark-shell-->spark-submit-->spark-classspark-shell启动时,最好启动hadoop.最好启动master、slaves,这样能通过http://loc

2016-05-10 17:33:09 757

原创 127.0.0.1、192.168.0.111、本机地址、URL

127.0.0.1是本机地址(就是本地的另一种表示形式,只不过用这种形式表达)。不管本地是否连上网络,本机都具备这个地址。主要用于测试,ping 127.0.0.1时,不联网也能通。这个地址一定是指本机。192.168.0.111/123是本机地址在局域网分配的IP。192.168.1.111是一种最常见的局域网类型。其它还有a类、b类。这种形式是c类。它能容纳25

2016-05-09 21:52:46 12171

原创 spark基础知识

预备知识1、如果要跑spark例子程序,最好配置环境变量时,加入如下内容。省区频繁输入调用jar包。注意不同的spark版本,对应路径不同。2、修改配置文件(这里针对standalone模式)host文件:Master(Master):127.0.0.1(名称与IP对应关系)slave1(Worker):127.0.0.1(名称与IP对应关系)slave2(Wo

2016-05-08 23:57:49 894

原创 linux下zip文件、7z文件的解压和压缩

linux下zip文件的解压命令:unzip;压缩命令:zip。具体参考文章1。linux下7z文件的解压命令:7za x;压缩命令:7za a。具体参考文章2.注意:1、linux默认情况下没有安装7z文件的解压缩命令,需要安装。2、在线安装命令为:sudo apt-get install p7zip-full。3、7za解压时,注意添加解压目录,不然解压默认目录是用户根目录

2016-05-08 12:21:25 14486

原创 面试题小结二

题一:求数组中最长递增子序列。利用动态规划解题。java源码如下:package test;public class LongestSubArray { public static int getLongestSubArray(int[] array) { Integer[] lis = new Integer[array.length]; for(int i = 0;

2016-05-07 11:04:54 270

原创 面试题小结

一、求平面点集中,离所有点距离和最小的点坐标和距离值。问题的关键是:1、距离定义2、找出某个新的点坐标,离所有已知点距离和最近3、用计算机实现。此问题类似于机器学习中的回归问题。当我们用一条直线拟合离散点时,也会用距离和最小评价拟合的程度的好。而回归中使用是梯度下降法,所以这个也可以用梯度下降法,语言最好用python,这样就能用已知的库和函数求解了。二、找

2016-05-07 00:28:08 827

原创 动态规划算法实例三则

动态规划属于不好理解的计算机基本算法之一。需要经过多次实践,才能体会其精妙之处。其精妙的地方在于:降低运算量。下面通过实例理解动态规划解题思路。实例一:求数组的最大连续和子数组。参考文章用动态规划来解,首先得考虑状态和状态转移方程。如果我们把题述数组看成序列,那么是不是可以用序列DP来考虑呢? 我们不妨考虑一个这样的序列:1,-3,5,-2,4 a[i]表示这个

2016-05-06 21:28:37 2338

原创 hadoop程序开发实践——简单程序

本篇在hadoop上实践了几个hadoop程序。分别是:词频统计(wordcount)、数据去重、数据排序、平均成绩、单表关联、多表关联、倒排索引。对hadoop程序的运行机制,特别是mapreduce的运行过程、接口规范、shuffle有了进一步了解。对mapper、combine、reducer三个重要函数进行了重写。对输入输出文件夹input、output文件的删除、更新、上

2016-04-28 15:30:06 727

原创 mapreduce程序开发及伪分布式调试小结

在eclipse上编写好mapreduce程序后,就可以调试程序。调试有两种方式,本地、hdfs.博主只有一台电脑,因此用伪分布式模拟远程hdfs。问题一:输入的input、output位置默认情况下,输入的input、output文件位于mapreduce程序根目录下。若要调试mapreduce程序在远程hdfs下的运行效果,效率问题,就需要设置远程hdfs的地址和端

2016-04-27 14:47:19 837

原创 hadoop编程遇到的jvm问题为内存不够的解决办法

在ubuntu系统下开发hadoop程序时,遇到几个问题,小结如下。问题:内存不足,报错:There is insufficient memory for the Java Runtime Environment to continue解决方法如下:1、使用进程查看命令:ps -e | grep java。然后删除过多的java进程,释放出内存资源。这种方法治标。打开系

2016-04-26 16:19:26 4075

空空如也

空空如也

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

TA关注的人

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