优达(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)-机器学习基础-数据集与问题(安然数据集)相关推荐

  1. asu计算机工程师,优达udacity无人驾驶工程师第一二三期(全)

    第一学期 - 第一部分 简介 在这节课中,你将会了解无人驾驶车的组成系统和工作原理,并着手迎接你的第一个实战项目:检测车道线.同时,我们会介绍整个纳米项目和课程期间提供的各项学习服务. 第一学期 - ...

  2. 机器学习基础(二十七)—— 数据集的使用

    1. ORL 人脸库 (1)每幅人脸:112*92 = 10304 个像素 (2)40*10,40人,每人10张 应用场景: (1)SVM 多类别人脸识别(先使用 PCA 进行降维) 2. Movie ...

  3. Udacity 优达学院机器学习深度学习课程

    课程目录 │ ├─1 神经网络 │ 1.欢迎.zip │ 2.Anaconda.zip │ 3.Jupyter NoteBooks.zip │ 4.应用深度学习.zip │ 5. 回归模型.zip │ ...

  4. 【直播】陈信达:零基础计算机视觉之机器学习基础

    零基础计算机视觉之机器学习基础 直播信息 分享嘉宾:陈信达,Datawhale成员,上海科技大学硕士. 直播时间:2021年07月30日 20:00 直播内容: 线性回归与指针读数识别 逻辑回归原理与 ...

  5. python人工智能入门优达视频_机器学习:优达教你搭建Python 环境的正确姿势

    原标题:机器学习:优达教你搭建Python 环境的正确姿势 为机器学习搭建好 Python 环境听起来简单,但有时候坑还不少.如果此前没有配置过类似的环境,很可能会苦苦折腾各种命令好几个小时.可是我明 ...

  6. python人工智能入门优达视频_python入门视频教你搭建机器学习Python环境的正确姿势...

    为机器学习搭建好Python环境听起来简单,但有时候坑还不少.如果此前没有配置过类似的环境,很可能会苦苦折腾各种命令好几个小时.可是我明明只是想马上搞起来我的机器学习! 在优达学城(Udacity)此 ...

  7. 优达学城计算机视觉pkl,优达学城机器学习工程师纳米学位项目介绍

    本文由 meelo 原创,请务必以链接形式注明 本文地址,简书同步更新地址 一对一的项目辅导是优达学城纳米学位的一大亮点.本文将简要介绍优达学城机器学习工程师纳米学位的6个项目.项目覆盖了机器学习的主 ...

  8. 零基础如何学习优达学城的《无人驾驶入门》?

    因为感兴趣,而且看好无人驾驶行业,我学习了优达学城的<无人驾驶入门>课程.最近整理了无人驾驶领域的资料,写成文章分享给大家. 作为系列文章的第一篇,我想介绍一下<无人驾驶入门> ...

  9. Udacity(优达学院)上的Google安卓开发教程

    简介 Google与在线平台Udacity(优达学院)推出了一系列的安卓开发课程.主要有<Google:Android基础纳米学位>和<Google: Android开发者学位> ...

最新文章

  1. 我对“重构(refector)”的看法
  2. SringBoot+Redis整合
  3. hacs增加源_基于病案首页加强对医院获得性问题的管理
  4. python用什么软件编程-python用什么软件编写
  5. 编程基本功:工作中,高低境界如何迁就?
  6. 正确理解三极管的放大区、饱和区、截止区
  7. mathtype过期,不用每次都去回顾教程
  8. 马士兵Java自学之路
  9. QTTabBar功能是灰色,无法启用的解决办法
  10. 「上帝粒子」发现10周年
  11. 手动编译kernel和supplicant使树莓派支持wpa3
  12. 华为帐号登录游戏显示无法连接服务器,玩手机游戏提示无法连接服务器
  13. 高中python编程例题-Python进入高中教学
  14. 域名转为服务器IP地址的几种方式
  15. HbuildX打包AndroidAPP使用教程
  16. 有限域和离散对数问题(ECC椭圆曲线算法2)
  17. AIGC、ChatGPT、GPT系列?我的认识
  18. SpringBoot定时任务简单应用
  19. Python-Django毕业设计租房管理信息系统(程序+Lw)
  20. 【无标题】java求等腰梯形面积

热门文章

  1. HDU 5238 Calculator(中国剩余定理+线段树)
  2. hevc_nvenc 详细分析2 ——preset分析
  3. 【视频开发】【CUDA开发】ffmpeg nvenc编码
  4. 人工智能入门:第一章 人工智能课程介绍及环境配置
  5. 短视频批量伪原创 视频md5修改手机版
  6. 前后端交互之form表单和模板引擎
  7. 初探 ModBus4j -简单使用指南
  8. 太原科技大学计算机宿舍,太原科技大学宿舍条件怎么样,有独立卫生间和空调吗...
  9. linux+scrtopic.exe,!截图
  10. MT6765 datasheet手册,MT6765参考设计,MT6765芯片资料