区块链 人工智能

Apriori 算法

引言:数据挖掘与机器学习

有时候,人们会对机器学习与数据挖掘这两个名词感到困惑。如果你翻开一本冠以机器学习之名的教科书,再同时翻开一本名叫数据挖掘的教材,你会发现二者之间有相当多重合的内容。比如机器学习中也会讲到决策树和支持向量机,而数据挖掘的书里也必然要在决策树和支持向量机上花费相当的篇幅。可见二者确有相当大的重合面,但如果细研究起来,二者也的确是各自不同的领域。

大体上看,数据挖掘可以视为数据库、机器学习和统计学三者的交叉。简单来说,对数据挖掘而言,数据库提供了数据管理技术,而机器学习和统计学则提供了数据分析技术。所以你可以认为数据挖掘包含了机器学习,或者说机器学习是数据挖掘的弹药库中一类相当庞大的弹药集。既然是一类弹药,其实也就是在说数据挖掘中肯定还有其他非机器学习范畴的技术存在。Apriori算法就属于一种非机器学习的数据挖掘技术。

Read more »

智能合约本质上是一段程序,程序是需要用编程语言来实现的。和以太坊客户端一样,智能合约也有很多语言版本,这里使用的是官方推荐的编程语言Solidity,文件扩展名以.sol结尾。下面简单简单介绍下Solidity的语法。

语法

编译器版本指定

和其他语言一样,Solidity语言也是在不断的发展和改进的,不同的版本支持的功能不同,所以sol文件需要指定版本号,通常在sol文件的第一行需要指定。语法如下:

1
pragma solidity ^0.4.4;

上面的意思这个sol文件需要在0.4.4之后的版本上运行,其中的“^”符号表示不支持0.5.0及之后的版本。

注释

在Solidity中使用“//”表示单行注释,使用“/ … / ”表示多行注释

1
2
3
4
5
6
// 这是但行注释

/*
这是
多行注释
*/

Read more »

K-近邻算法 (KNN)

K-近邻算法 (KNN)工作原理: 存在一个样本数据集合,也称作训练样本集,并且样本集中每个数据都存在标签,即我们知道样本集中第一数据与所属分类的对应关系。输入并没有标签的新数据后,将新的数据每个特征与样本集中数据对应的特征进行比较,然后算法提取样本集中特征相似数据(最近邻)的分类标签。一般来说,我们只选择样本数据休中前k个最相似的数据,这就是k-近邻算法的出处,通常k是不大于20的整数。

  • 优点: 精度高,对异常值不敏感,无数据输入假定
  • 缺点: 计算复杂度高,空间复杂度高
  • 适用数据范围: 数值型和标称型

Note: 如果浏览器无法正常显示该文本的数学公式, 请点击安装GitHub with MathJax 插件

Read more »

本文介绍了如何使用Travis CI自动部署hexo,解决了家里和公司两地写博客的麻烦。本博客实现了博客仓库中的dev分支改动时,自动部署到master分支中。
Travis CI 是在软件开发领域中的一个在线的,分布式的持续集成服务,用来构建及测试在GitHub托管的代码
最重要的一点 Travis CI免费, 免费, 免费

前提条件

  • 你已经有了GitHub 账号
  • 你已经有了Travis CI (travis-ci 用 GitHub账号登陆即可)

设置GitHub Personal Access Token

  1. 进入到 GitHub Setting页面
  2. 在左边菜单栏中选择 “Personal access tokens”
  3. 点击右上角的 “Generate new token”,进入“New personal access token”页面。
  4. 设置Token description(其实就是名称),选择相应的权限,如下图所示
  5. 点击”Generate token” 按钮,生成Personal access tokens
    注意:这行token只会在刚刚创建完成后显示一次,以后不再显示。 因此,复制并保存到本地

    配置Travis CI

    登录并配置Travis CI

    1. Travis CI是目前新兴的开源持续集成构建项目。可以直接使用GitHub账号登录
    2. 将鼠标放在用户名上,在弹出的菜单中点击“Accounts”,将会显示你在GitHub上的仓库。如下图所示
    3. 找到自己的博客项目,点击X号,将其变成√号。再点击右侧的齿轮,进入该仓库的配置页面
    4. 在项目的设置中开启 Build only if .travis.yml is present 这一项。如下图所示

      好了,基本的配置已经完成了,下面即将开启 Travis CI之旅

    本地安装Travis

    1. 首先安装Ruby,直接官网下载,双击安装就OK了
    2. 在Windows下,安装travis之前,需要解决一个问题:SSL证书问题,否则不能成功安装。详情请点击该链接:参考教程
    3. 安装travis

      1
      2
      3
      $ gem install travis
      # 或者可以指定travis版本
      $ gem install travis -v 1.8.8 --no-rdoc --no-ri

      注意
      请确保你安装了ruby 2.3以上版本,否则 gem install travis会出错误

      1
      $ ruby -v

      MAC OS下可以使用 Homebrew来安装或者升级ruby

      1
      2
      3
      4
      5
      6
      $ brew install ruby

      # 如果本地已经存在比较老的ruby版本,请执行以下命令
      $ brew link --overwrite ruby

      $ ruby -v

    创建并修改配置文件

    1. 打开博客项目文件夹,在项目根目录新建.travis.yml配置文件

      1
      $ touch .travis.yml
    2. 本地登陆 travis

      travis login 是走的是GitHub线路,所以,请放心使用

      1
      2
      3
      $ travis login --debug
      $ Username: XXXXX
      $ Password for XXXXX: *******
    3. 执行下面的命令,加密上面生成的GitHub Personal access tokens,并添加到.travis.yml配置文件

      1
      2
      3
      # 这里的 REPO_TOKEN 是变量名,在后面的配置文件中会用到
      # TOKEN 是上面github生成的Token
      travis encrypt 'REPO_TOKEN=<TOKEN>' --add

      上述命令指向完后,.travis.yml配置文件的内容如下所示

      1
      2
      3
      env:
      global:
      secure: soX2ds4ospOgwxNd4OSV.......
    4. 编辑 .travis.yml配置文件 (注意 GitHub信息要换成你自已的)

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      33
      34
      35
      36
      37
      38
      39
      40
      41
      42
      43
      44
      45
      46
      47
      48
      49
      50
      51
      52
      53
      language: node_js
      node_js: node
      # - "6.9.4" # nodejs的版本
      branches:
      only:
      - dev # 设置自动化部署的源码分支
      cache:
      directories:
      - node_modules

      # ------------------------------------------------
      # 下面是Token加密信息
      # ------------------------------------------------
      env:
      global:
      secure: soX2ds4ospOgwxNd4OSV...........Akuok=

      before_install:
      - export TZ='Asia/Shanghai'
      # ------------------------------------------------
      # 设置github账户信息 注意修改成自己的信息
      # ------------------------------------------------
      - git config --global user.name "githubUsername"
      - git config --global user.email emailAddr@126.com


      # 安装依赖组件
      install:
      - npm install hexo-cli -g
      - npm install hexo --save
      - npm install
      - npm install hexo-generator-feed --save
      - npm install hexo-deployer-git --save
      - npm install hexo-renderer-ejs --save
      - npm install hexo-renderer-stylus --save
      - npm install hexo-renderer-marked --save
      - npm install hexo-generator-search --save

      before_script:
      - npm install -g gulp

      # 执行的命令
      script:
      - hexo clean
      - hexo generate
      # 执行的成功后执行
      after_success:
      # - hexo deploy
      - cd ./public
      - git init
      - git add --all .
      - git commit -m "Auto Builder From Travis"
      - git push --quiet --force https://$REPO_TOKEN@github.com/githubUsername/githubUsername.github.io.git master

Hexo

Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。

Note: 如果你并不了解 Markdown语法, 请花5分钟阅读 Markdown语法说明: https://www.appinn.com/markdown

Hexo介绍

Hexo是基于NodeJs的静态博客框架,简单、轻量,其生成的静态网页可以托管在Github和Heroku上

  • 超快速度
  • 支持MarkDown
  • 一键部署
  • 丰富的插件
  • 由于是静态,所以可以部署到 GitHub Pages

安装

  1. 安装 NodeJs
    Mac OS 下可以使用 Homebrew 来安装

    1
    $ brew install node
  2. 安装hexo

    1
    $ npm install hexo-cli -g

    注意 Mac OS 则需要:

    1
    $ sudo npm install hexo-cli -g

    安装完成之后,执行 hexo --version,看到如下信息,恭喜你,你已成功的迈出了艰难的第一步

    1
    2
    3
    4
    hexo-cli: 1.1.0
    node: 8.9.1
    v8: 6.1.534.47
    ...
Read more »