优达(Udacity)-机器学习基础-数据集与问题(安然数据集)
优达(Udacity)-机器学习基础-数据集与问题(安然数据集)
课程全部代码:
#!/usr/bin/python
# -*- coding: utf-8 -*-
""" Starter code for exploring the Enron dataset (emails + finances);loads up the dataset (pickled dict of dicts).The dataset has the form:enron_data["LASTNAME FIRSTNAME MIDDLEINITIAL"] = { features_dict }{features_dict} is a dictionary of features associated with that person.You should explore features_dict as part of the mini-project,but here's an example to get you started:enron_data["SKILLING JEFFREY K"]["bonus"] = 5600000"""import pickleenron_data = pickle.load(open("../final_project/final_project_dataset.pkl", "r"))#数据集中有多少数据点(人)?
print(len(enron_data))#对于每个人,有多少个特征可用?
print(len(enron_data["SKILLING JEFFREY K"]))#在安然数据中查找 POI(也就是说,计算 data[person_name]["poi"]==1 时,字典中条目的数量。)
print (len(dict ((key,value) for key,value in enron_data.items() if value["poi"] == True)))#存在多少 POI?
poi_reader =open("../final_project/poi_names.txt", "r")
fr=poi_reader.readlines();
print(len(fr[2:]))
poi_reader.close()#和任何字典一样,个人特征可以通过以下代码访问:
#enron_data["LASTNAME FIRSTNAME"]["feature_name"]
#或者
#enron_data["LASTNAME FIRSTNAME MIDDLEINITIAL"]["feature_name"]#James Prentice 名下的股票总值是多少?
print(enron_data["PRENTICE JAMES"]["total_stock_value"])#我们有多少来自 Wesley Colwell 的发给嫌疑人的电子邮件?
print(enron_data["COLWELL WESLEY"]["from_this_person_to_poi"])#Jeffrey Skilling 行使的股票期权价值是多少?
print(enron_data["SKILLING JEFFREY K"]["exercised_stock_options"])#这三个人(Lay、Skilling 和 Fastow)当中,谁拿回家的钱最多(“total_payments”特征的最大值)?
#这个人得到了多少钱?people=["LAY KENNETH L","SKILLING JEFFREY K","FASTOW ANDREW S"]
money = 0
who = ""
for i in people:if money < enron_data[i]["total_payments"]:money = enron_data[i]["total_payments"]who = i
print(money,who)#此数据集中有多少雇员有量化的工资?已知的邮箱地址是否可用?
count_salary,count_email = 0,0
for i in enron_data:if enron_data[i]["salary"] !="NaN":count_salary += 1;if enron_data[i]["email_address"]!="NaN":count_email += 1;
print(count_salary,count_email)#(当前的)E+F 数据集中有多少人的薪酬总额被设置了“NaN”?数据集中这些人的比例占多少?
count_totalpay=0
for i in enron_data:if enron_data[i]["total_payments"]=="NaN":count_totalpay += 1;
#这里要用float,不然会得到整型0
print(count_totalpay,count_totalpay/float(146))#E+F 数据集中有多少 POI 的薪酬总额被设置了“NaN”?这些 POI 占多少比例?
count_totalpoi=0
poi_num=0
for i in enron_data:if enron_data[i]["poi"]==True:poi_num+=1if enron_data[i]["total_payments"]=="NaN":count_totalpoi += 1
print(poi_num,count_totalpoi/float(poi_num))#POI 中,股票总值为“NaN”的人数变成了多少?
count_t_s_v=0
for i in enron_data:if enron_data[i]["poi"]==True:if enron_data[i]["total_stock_value"]=="NaN":count_t_s_v += 1
print(count_t_s_v)
用到的资料补充:
python2对于中文的处理能力很弱,所以使用中文注解的时候会报错
解决方案:
在.py文件前加编码注释, 选用utf-8编码即可使用中文.
# -*- coding: utf-8 -*-
附上用到的一些python方法:
dict.items( )
Python 字典(Dictionary) items() 函数以列表返回可遍历的(键, 值) 元组数组。实例:
#!/usr/bin/python
# coding=utf-8dict = {'Google': 'www.google.com', 'Runoob': 'www.runoob.com', 'taobao': 'www.taobao.com'}print "字典值 : %s" % dict.items()# 遍历字典列表
for key,values in dict.items():print key,values
输出:
字典值 : [('Google', 'www.google.com'), ('taobao', 'www.taobao.com'), ('Runoob', 'www.runoob.com')]
Google www.google.com
taobao www.taobao.com
Runoob www.runoob.com
pickle.load(file)
只有一个参数 file ,对应于上面 dump 方法中的 file 参数。这个 file 必须是一个拥有一个能接收一个整数为参数的 read() 方法以及一个不接收任何参数的 readline() 方法,并且这两个方法的返回值都应该是字符串。这可以是一个打开为读的文件对象、StringIO 对象或其他任何满足条件的对象。
实例:
# -*- coding: utf-8 -*-import pickle
# 也可以这样:
# import cPickle as pickleobj = {"a": 1, "b": 2, "c": 3}# 将 obj 持久化保存到文件 tmp.txt 中
pickle.dump(obj, open("tmp.txt", "w"))# do something else ...# 从 tmp.txt 中读取并恢复 obj 对象
obj2 = pickle.load(open("tmp.txt", "r"))print obj2
Python File readlines() 方法
readlines() 方法用于读取所有行(直到结束符 EOF)并返回列表,该列表可以由 Python 的 for… in … 结构进行处理。
如果碰到结束符 EOF 则返回空字符串。
语法: fileObject.readlines( );
实例:
文件数据:
1:www.runoob.com
2:www.runoob.com
3:www.runoob.com
4:www.runoob.com
5:www.runoob.com
代码(循环读取文件内容)
#!/usr/bin/python
# -*- coding: UTF-8 -*-# 打开文件
fo = open("runoob.txt", "r")
print "文件名为: ", fo.namefor line in fo.readlines(): #依次读取每行 line = line.strip() #去掉每行头尾空白 print "读取的数据为: %s" % (line)# 关闭文件
fo.close()
输出结果:
文件名为: runoob.txt
读取的数据为: 1:www.runoob.com
读取的数据为: 2:www.runoob.com
读取的数据为: 3:www.runoob.com
读取的数据为: 4:www.runoob.com
读取的数据为: 5:www.runoob.com
优达(Udacity)-机器学习基础-数据集与问题(安然数据集)相关推荐
- asu计算机工程师,优达udacity无人驾驶工程师第一二三期(全)
第一学期 - 第一部分 简介 在这节课中,你将会了解无人驾驶车的组成系统和工作原理,并着手迎接你的第一个实战项目:检测车道线.同时,我们会介绍整个纳米项目和课程期间提供的各项学习服务. 第一学期 - ...
- 机器学习基础(二十七)—— 数据集的使用
1. ORL 人脸库 (1)每幅人脸:112*92 = 10304 个像素 (2)40*10,40人,每人10张 应用场景: (1)SVM 多类别人脸识别(先使用 PCA 进行降维) 2. Movie ...
- Udacity 优达学院机器学习深度学习课程
课程目录 │ ├─1 神经网络 │ 1.欢迎.zip │ 2.Anaconda.zip │ 3.Jupyter NoteBooks.zip │ 4.应用深度学习.zip │ 5. 回归模型.zip │ ...
- 【直播】陈信达:零基础计算机视觉之机器学习基础
零基础计算机视觉之机器学习基础 直播信息 分享嘉宾:陈信达,Datawhale成员,上海科技大学硕士. 直播时间:2021年07月30日 20:00 直播内容: 线性回归与指针读数识别 逻辑回归原理与 ...
- python人工智能入门优达视频_机器学习:优达教你搭建Python 环境的正确姿势
原标题:机器学习:优达教你搭建Python 环境的正确姿势 为机器学习搭建好 Python 环境听起来简单,但有时候坑还不少.如果此前没有配置过类似的环境,很可能会苦苦折腾各种命令好几个小时.可是我明 ...
- python人工智能入门优达视频_python入门视频教你搭建机器学习Python环境的正确姿势...
为机器学习搭建好Python环境听起来简单,但有时候坑还不少.如果此前没有配置过类似的环境,很可能会苦苦折腾各种命令好几个小时.可是我明明只是想马上搞起来我的机器学习! 在优达学城(Udacity)此 ...
- 优达学城计算机视觉pkl,优达学城机器学习工程师纳米学位项目介绍
本文由 meelo 原创,请务必以链接形式注明 本文地址,简书同步更新地址 一对一的项目辅导是优达学城纳米学位的一大亮点.本文将简要介绍优达学城机器学习工程师纳米学位的6个项目.项目覆盖了机器学习的主 ...
- 零基础如何学习优达学城的《无人驾驶入门》?
因为感兴趣,而且看好无人驾驶行业,我学习了优达学城的<无人驾驶入门>课程.最近整理了无人驾驶领域的资料,写成文章分享给大家. 作为系列文章的第一篇,我想介绍一下<无人驾驶入门> ...
- Udacity(优达学院)上的Google安卓开发教程
简介 Google与在线平台Udacity(优达学院)推出了一系列的安卓开发课程.主要有<Google:Android基础纳米学位>和<Google: Android开发者学位> ...
最新文章
- 我对“重构(refector)”的看法
- SringBoot+Redis整合
- hacs增加源_基于病案首页加强对医院获得性问题的管理
- python用什么软件编程-python用什么软件编写
- 编程基本功:工作中,高低境界如何迁就?
- 正确理解三极管的放大区、饱和区、截止区
- mathtype过期,不用每次都去回顾教程
- 马士兵Java自学之路
- QTTabBar功能是灰色,无法启用的解决办法
- 「上帝粒子」发现10周年
- 手动编译kernel和supplicant使树莓派支持wpa3
- 华为帐号登录游戏显示无法连接服务器,玩手机游戏提示无法连接服务器
- 高中python编程例题-Python进入高中教学
- 域名转为服务器IP地址的几种方式
- HbuildX打包AndroidAPP使用教程
- 有限域和离散对数问题(ECC椭圆曲线算法2)
- AIGC、ChatGPT、GPT系列?我的认识
- SpringBoot定时任务简单应用
- Python-Django毕业设计租房管理信息系统(程序+Lw)
- 【无标题】java求等腰梯形面积
热门文章
- HDU 5238 Calculator(中国剩余定理+线段树)
- hevc_nvenc 详细分析2 ——preset分析
- 【视频开发】【CUDA开发】ffmpeg nvenc编码
- 人工智能入门:第一章 人工智能课程介绍及环境配置
- 短视频批量伪原创 视频md5修改手机版
- 前后端交互之form表单和模板引擎
- 初探 ModBus4j -简单使用指南
- 太原科技大学计算机宿舍,太原科技大学宿舍条件怎么样,有独立卫生间和空调吗...
- linux+scrtopic.exe,!截图
- MT6765 datasheet手册,MT6765参考设计,MT6765芯片资料