深度学习和机器学习光学习理论是远远不够的,最终还是要落实到实践上面,两个一起结合起来效果才更好,宏伦工作室带着了解一些库和运行一些python代码,记录一些干货。
近年来大数据(BigData)的概念获得不行,python已经成为机器学习热门的工具。建议安装anaconda,把与python有关的库(numpy,scipy等等)都打成一个包。pycaffe 的安装以及 notebook 环境配置是为了更方便的去使用深度学习框架。notebook 使用浏览器作为界面使用,可以编写和执行 python 代码。
从个人角度出发,在时间有限和资源有限的条件下,实现一些个人能力足以完成的、简单而有趣的数据工程和数据应用。
数据工程:采集、存储、清洗、分析、可视化
编程语言:C++、Java和Python都需要涉及,R统计分析语言,web:php、html、css、javascript
结合
Python2基本语法
(1)解释性(无需编译)、交互式、面向对象、跨平台、简单好用
(2)变量名:可以包含英文、数字以及下划线,但不能以数字开头,区分大小写
(3)变量类型:弱类型语言、无需声明
(4)注释:#,三引号
(5)保留字符:and,not,class,def,等等
(6)行和缩进
(7)运算符:
(8)条件
If…
If..else…
If…elif..else
(9)循环
while
continue
pass//占一行代码,不会执行任何操作
(10)时间:time.time()
(11)文件:读写文件
(12)异常
(13)函数:def
实战:西游记用字统计
统计《西游记》中共出现了多少个不同的汉字;每个汉字出现了多少次;出现得最频繁的汉字有哪些
设计内容:读文件、列表的使用、字典的使用、字典的排序、写文件
示例:
import sys
reloda(sys)
sys.setdefaultencoding('utf8')
import json
fr = open('xyj.txt','r')
characters = []
start = {}
for line in fr:
line = line.strip()
if len(line) == 0;
continue
line =unicode(line)
print type(line)
for x in xrange(0, leng(line));
if line[x] in [' ','\t','\n',',','。','、','【','】','“','”',':',';','(',')','《','》','‘','’','{','}','?']
continue
if not line[x] in characters:
characers.append(line[x])
if not start.has_key(line[x])
start[line[x]] = 0
start[line[x]] += 1
fw = open('result.json','w')
fw.write(json.dumps(start))
fw.close()
start = sorted(start.iteritems(),key=lambda d:d[1], reverse=True)
forx in xrange(0.20):
print characters[x]
print '*' * 20
for x in xrange(0,20):
print start[x][0],start[x][1]
fw = open('result.csv','w')
for item in start:
fw.write(item[0] + ',' + str(item[1]) + '\n')
fw.close()
fr.close()
3.1数据的结构(类似地铁数据):
3.2数据的组成
3.3数据的类型
4.1访问一个网页
url:协议 + 域名/IP + 端口 + 路由 + 参数
4.2开发者工具
显示网页源代码、检查
① Element:页面渲染之后的结构,任意调整,即时显示
② Consule:打印调试
③ Source:使用到的文件
④ NetWork:全部网络请求
4.3Http请求
Http是目前最通用的web传输协议
① GET:参数包含在url中
② POST:参数包含在数据包中,url中不可见
4.4Url类型
①html:返回html结构页面,通过浏览器渲染后呈献给用户
②API:Application Programming Interfaces,请求完后完成某些功能,例如返回数据
5.1 发起GET请求
import sys
reload(sys)
sys.setdefaultencoding('utf8')
import urllib2
import urllib
import json
from bs4 import BeatyfulSoup
url = 'http://kaoshi.edu.sina.com.cn/college/scorelist?tab=batch&wl=1&local=2&batch=&syear=2 013'
request = urllib2.Request
response =urllib2.urlopen(request,timeout=20)
result = unicode(response.read())
print result
5.2发起POST请求
import sys
reload(sys)
sys.setdefaultencoding('utf8')
import urllib2
import urllib
import json
from bs4 import BeatyfulSoup
# GET
''' url = 'http://kaoshi.edu.sina.com.cn/college/scorelist?tab=batch&wl=1&local=2&batch=&syear=2 013' request = urllib2.Request response =urllib2.urlopen(request,timeout=20) result = unicode(response.read()) print result '''
# POST
url = 'http://shuju.wdzj.com/depth-data.html'
data = urllib.urlencode({'typel':1,'type2':2,'status':0,'wazjPlatId':59})
request = urllib2.Request(url)
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor())
result = response.read()
for key in json.loads(result).keys():
print key
5.3 处理返回结果
Html:BeautifulSoup,需要有一些 CSS 基础
API:JSON
#!/usr/bin/env python
# coding:utf8
import sys
reload(sys)
sys.setdefaultencoding('utf8')
import urllib
import urllib2
import json
from bs4 import BeautifulSoup
tags = []
url = 'https://movie.douban.com/j/serch_tags?type=movie'
request = urllib2.Request(url=url)
response = urllib2.urlopen(request,timeout=20)
result = json.loads(response,read())
tags = result['tags']
movies = []
for tag in tags:
limit = 0
while 1:
url ='https://movie.douban.com/j/serch_tags?type=movie&tag=' + tag + '&sort=recommend&pages_'
response = urllib2.urlopen(request,timeout=20)
result = json.loads(response,read())
result = result['subjects']
if len(result) == 0:
break
limit+=20
for item in result:
movies.append(item)
#####
break
#####
break
for x in xrange(0,len(moivies)):
item = movies[x]['name']
request = urllib2.Request(url=item['url'])
response = urllib2.urlopen(request,timeout=20)
result = response.read()
html = BeautifulSoup(result)
html.select('h1')[0]
title = title.select('span')[0]
title = title.get_text()
movies[x]['title'] = title
fw = open('moive.txt','w')
for item in movies
tmp = ''
for key,value in item.items():
tmp += str(value) + ','
fw.close()
info = html.select("#info span .pl")
values = html.select("#info span.attrs")
for i in xrange(0,len(keys)):
print keys[i].get_text()
print values[i].get_text()