爬虫入门
python爬虫书目推荐.xmind 基本内容 爬虫通俗来说就是一个模拟人类请求网站行为的程序。可以自动请求网页、并把数据抓取下来,然后使用一定的规则则提取有价值的数据。也可以理解为使用某种编程语言(这里当然是使用Python语言) 按照一定的顺序、 规则主动抓取互联网特定信息的程序或者脚本。 爬虫可以分为通用爬虫和聚焦爬虫 各大搜索引擎是通用爬虫一个很好的例子,通用爬虫在爬取内容时并不会对网页内容进行筛选,将网页的全部内容给爬取下来。 聚焦爬虫则是只爬取网页上自己需要的内容。 使用语言: php:多线程异步处理能力弱 C/C++:学习成本高,运行速度快但学习和开发成本高 Java:生态圈完善,python爬虫的最大竞争对手。但Java语言本身笨重,代码量大。重构成本搞(有的网站会更新网页编码的规则,需要不断重构来匹配规则) python:语法优美,代码简洁,开发效率高。相关的HTTP请求模块和HTML解析模块非常丰富。还有Scrapy和Scrapy-redis框架让我们开发爬虫变得异常简单。 http协议 HTTP协议:全称是HyperText Transfer Protoco1 ...
神经网络学习
发展 1958年,计算科学家Rosenblatt提出了由两层神经元组成的神经网络,并将之命名为“感知器”(Perceptron)。 感知器有两个层次:输入层和输出层。 输入层里的“输入单元”只负责传输数据,不做计算。 输出层里的“输出单元”则需要对前面一层的输入进行计算。 感知器是当时首个可以学习的人工神经网络。Rosenblatt现场演示了其学习识别简单图像的过程。 按照不同的连接方式,神经网络可以分为: 感知器模型 多层感知机模型 前向多层神经网络 Hopfield神经网络 动态反馈网络 自组织神经网络等。 1986年,Rumelhar和Hinton等人提出了反向传播(Back Propagation,BP)算法,解决了两层神经网络所需要的复杂计算量问题,从而带动了使用两层神经网络研究的热潮。 两层神经网络除了包含一个输入层,一个输出层以外,还增加了一个中间层。 中间层和输出层都是计算层。 理论证明,两层神经网络可以无限逼近任意连续函数。 面对复杂的非线性分类任务,带一个隐藏层的两层神经网络可以取得很好的分类结果。 2006年,Hinton在《Science》和相关期刊上发表 ...
聚类分析
聚类是一种无监督学习,聚类的方法几乎可以应用于所有对象。 聚类分析根据聚类算法将数据或样本对象划分成两个以上的子集。 每一个子集称为一个簇,簇中对象因特征属性值接近而彼此相似。不同簇对象之间则彼此存在差异。 把相似的对象归于统一组,不同对象归于不同组。需要一种相似度的计算方法 相似度的计算方法 Manhattan Distance(曼哈顿距离)(l1范数) Euclidean Distance(欧式距离),距离测度中简单直观的适合于二、三维的距离测度(l2范数): d=∑i=1n(xi−yi)2d=\sqrt{\sum_{i=1}^n(x_i-y_i)^2} d=i=1∑n(xi−yi)2 Minkowski Distance(闵可夫斯基距离),可以理解为n维空间的欧式距离: d=∑i=1n(xi−yi)qqd=\sqrt[q]{\sum_{i=1}^n(x_i-y_i)^q} d=qi=1∑n(xi−yi)q Cosine Distance(余弦距离)(n维向量夹角) Mahalanobis Distance马氏距离 聚类分析方法 划分法(Partit ...
产生和加载数据集
速查表pdf 文本数据读写 python 读取文件常用的一种方式是 open()函数,open 里写文件的路径,读取后返回一个文件对象,借助 file_obj.read()函数可以调取出文件对象的数据(返回字符串),这种情况下要记得使用 close 函数把读取的文件关闭,以免造成损害。 另外一种读取文件的方法是利用 with 关键词来打开文件建立对象,打开的文件对象会在 with 区块内跳出时关闭文件对象。 逐行读取文件 逐行读取的第一种方法是直接通过循环对文件对象进行操作,每次读取出的一行行末的换行符可通过 restrip()函数删除 第二种方法是直接调用文件对象的 readline()方法,该方法将会返回一个字符串组成的列表,列表中每一个字符串包含一行,且有结尾换行符。通过对返回列表的操作可以实现对数据的组合 file_obj=open("D:/test.txt") data=file_obj.read() print(data) for line in file_obj: print(line) #print(line.strip()) #print( ...