Skip to content

Commit

Permalink
update
Browse files Browse the repository at this point in the history
  • Loading branch information
lofyer committed Jun 8, 2015
1 parent 144efcc commit 410c661
Showing 1 changed file with 35 additions and 22 deletions.
57 changes: 35 additions & 22 deletions source/posts/ch04.rst
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@

**不要以编程开始你的机器学习之旅,这样容易使思维受限于语言,从模型和结果思考去达到你的目的,编程只是手段之一。**

-------------
4.1 数据收集
-------------

Expand All @@ -20,38 +21,39 @@
为了省去一些学习的麻烦,我找了一些 `“大”数据 <http://www.quora.com/Where-can-I-find-large-datasets-open-to-the-public>`_ ,有些上百TB的数据对非行业内的人来说可能毫无意义,但是,先来些数据吧,但是对学习者来说还是比较实用的。

简单抓取
~~~~~~~~
=========

动手写一个最简单的爬虫
***********************
-----------------------

实际使用时遇到的问题
*********************
----------------------

分布式抓取
~~~~~~~~~~~
===========

scrapyd
*********
--------

scrapy-redis
*************
-------------

使用Nutch + Solr
~~~~~~~~~~~~~~~~~
-----------------

-------------
4.2 爬虫示例
-------------

58同城
~~~~~~~
=======

我简单写了一个 `收集58同城中上海出租房信息的爬虫 <https://github.com/lofyer/myspiders/tree/master/tongcheng>`_ ,包括的条目有: *描述* 、 *位置* 、 *价格* 、 *房间数* 、 *URL* 。

由于这些信息都可以在地图上表示出来,那我除了画统计图以外还会画它们在地图上的表示。

知乎
~~~~
====

http://blog.javachen.com/2014/06/08/using-scrapy-to-cralw-zhihu/

Expand All @@ -60,10 +62,11 @@ http://segmentfault.com/blog/javachen/1190000000583419
https://github.com/KeithYue/Zhihu_Spider.git

新浪微博
~~~~~~~~
=========

https://github.com/followyourheart/sina-weibo-crawler

---------------
4.3 numpy 快查
---------------

Expand Down Expand Up @@ -126,11 +129,12 @@ https://github.com/followyourheart/sina-weibo-crawler
# 最小二乘,参数为[x,y,degree],degree为多项式的最高次幂,返回值为所有次幂的系数
np.polyfit(a,c,1)
4.4 机器学习常用分类算法及Python实现
-------------------------------------
---------------------------------
4.4 监督学习常用算法及Python实现
---------------------------------

信息分类基础
~~~~~~~~~~~~~
=============

信息的不稳定性为熵(entropy),而信息增益为有无样本特征对分类问题影响的大小。比如,抛硬币正反两面各有50%概率,此时不稳定性最大,熵为1;太阳明天照常升起,则是必然,此事不稳定性最小,熵为0。

Expand Down Expand Up @@ -171,7 +175,7 @@ https://github.com/followyourheart/sina-weibo-crawler
其中,dataSet为所有特征向量,caclShannonEnt()计算特征向量的熵,splitDataSet()切除向量中的value列;infoGain即为信息增益,chooseBestFeatureToSplit返回最好的特征向量索引值。
K邻近算法
~~~~~~~~~~
==========

kNN的算法模型如下:

Expand Down Expand Up @@ -210,7 +214,7 @@ kNN的算法模型如下:
此种算法的优点为精度高、对异常值不敏感、但缺点也比较明显,即数据量大时开支相对较大,适用于数值-标称型数据。

决策树
~~~~~~~~~~
======

决策树即列出一系列选择,根据训练集中的大量形似(A、B、C)以及结果D的向量来预测新输入(A'、B'、C')的结果D'。

Expand Down Expand Up @@ -295,7 +299,7 @@ kNN的算法模型如下:


朴素贝叶斯
~~~~~~~~~~
===========

贝叶斯模型是基于独立概率统计的,思想大概可以这么说:

Expand Down Expand Up @@ -374,7 +378,7 @@ kNN的算法模型如下:
整体来说,朴素贝叶斯分类方法在数据较少的情况下仍然有效,但是对数据输入比较敏感。

Logistic回归
~~~~~~~~~~~~~
=============

在统计学中,线性回归是利用称为线性回归方程的最小二乘函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析。这种函数是一个或多个称为回归系数的模型参数的线性组合。只有一个自变量的情况称为简单回归,大于一个自变量情况的叫做多元回归。( `维基百科 <https://zh.wikipedia.org/zh-cn/%E7%B7%9A%E6%80%A7%E5%9B%9E%E6%AD%B8>`_ )

Expand Down Expand Up @@ -548,7 +552,7 @@ Sigmoid函数具有单位阶跃函数的性质,公式表示为:
可以这样理解此算法:

从前有一座山,一个懒人要爬山,他从山脚下的任意位置向山顶出发,并且知道等高线图的每个环上都有一个宿营点,他希望在这些宿营点之间修建一条路,路到两旁的
从前有一座山,一个懒人要爬山,他从山脚下的任意位置向山顶出发,并且知道等高线图的每个环上都有一个宿营点,他希望在这些宿营点之间修建一条路,路到两旁的宿营点的垂直距离差的平方和尽可能小。

返回回归系数:

Expand All @@ -567,20 +571,28 @@ Sigmoid函数具有单位阶跃函数的性质,公式表示为:
weights = weights + alpha * dataMatrix.transpose()* error #matrix mult
return weights
其中,误差值乘以矩阵的转秩代表梯度。
待修改。

SVM
~~~~
===

SVM(Supprot Vector Machines)即支持向量机,其理论

AdaBoost
~~~~~~~~
========

---------------
4.5 无监督学习
---------------

---------------
4.6 数据可视化
---------------

数据统计
~~~~~~~~
=========

Gephi

Expand All @@ -591,14 +603,15 @@ python-matplotlib
Microsoft Excel 2013 PowerView

地理位置表示
~~~~~~~~~~~~
=============

`百度地图API <http://developer.baidu.com/map/index.php?title=%E9%A6%96%E9%A1%B5>`_

`MaxMind GeoIP <http://dev.maxmind.com/geoip/geoip2/geolite2/>`_

Microsoft Excel 2013 PowerView

-----------------
4.7 机器学习工具
-----------------

Expand Down

0 comments on commit 410c661

Please sign in to comment.