前言
这是按照我为自己定的学习计划与职业发展方向进行的总结学习,以期理清思路,最大效率地把所学知识用起来,同时随着我经验与技能的增加,这将是一份不断更新的概念,这一课是《数据科学》,
什么是数据科学家?
数据科学家:了解数学与统计学知识,具备编程技能,可以通过代码建立统计模型,收集数据,并将数据转化为全面的分析,编制信息图,形成报告,并传递给其他人。简单说,数据科学家的价值流程是:收集——》存储——》分析——》展示——》预测、改进。
数据科学家需要了解要提出的问题,能够解释数据和了解数据结构。现在都是团队工作,一个人不一定面面俱到,如果具有很强的黑客技能(擅长收集数据),或者精通统计学(擅长分析数据),也可以成为数据科学家团队的一份子,当然,全栈最好。
现实应用:
--推荐电影,根据用户以前观看的内容推荐影片
--社交网络推荐,推荐相关联的人,如,推荐有共同好友的人认识
--分析解决交通拥堵
--生物科学领域,标注基因组与序列
--天文领域,储存、分析数据,预测行星运动
--医疗,分析电子病历,调动医疗设备,早做准备
--运动,收集球员动作和打球风格数据,分析比赛动态,改善教练决策
数据科学家最常用的工具:
--Numpy:支持多维数组与矩阵
--Pandas:存储数据,利于分析
Numpy:
--均值(Mean) numpy.mean()
--中位数(Median) numpy.median()
--标准差(Stardard deviation) numpy.std()
--矩阵乘法(Matrix Mutiplication) numpy.dot()
Pandas:
--DataFrame函数 二维的表格型数据结构
--Series 一维数组(处理相同数据结构)
--Index
--pandas.describe() 计算数值数据均值、中位数、标准差、最大、小值
矩阵乘法:当矩阵A列数等于矩阵B行数时,AB可以相乘 C = AB,C = numpy.dot(A,B)
1.C的行数等于A的列数, C列=B列
2.C的第m行第n列元素=A第m行与B第n列元素乘积之和,不满足交换律
二、数据来源与处理
数据来源
--文件
--数据库
--互联网
通用的数据格式:
CSV
XML
JSON
XML与JSON都可以嵌套数据
读取CSV数据,返回dataframe 数据
import Pandas
data = pandas.read_csv(path)
写CSV数据
dataW = data.to_csv(path)
关系型数据库
sql语句:
查询:SELECT *FROM _table_;
查20条:SELECT district, subdistrict FROM_table_ [LMT] 20;
SELECT *FROM _table_ WHERE district = __;
聚焦函数:AVG,COUNT,MAX,MIN,SUM
SELECT district,SUM(__) FROM _table_ GROUP BY district;
SELECT district,subdistrict, SUM(__) FROM _table_ GROUP BY district,subdistrict;
数据丢失原因:
1.偶然的系统错误
2.人为示提供数据
怎么处理?
1,部分删除
1.1 成列删除?
1.2 成队删除?
样本量较小时,用删除法,会危害数据的代表性
2. 插补
2.1 在缺失值插补其他数据的均值
2.2 画线性回归图
数据分析
正态分布
T检验
--单样本T检验
--双样本T检验
--P值
统计学侧重收集数据作出结论
机器学习侧重于做出预测
机器学习类型:
--监督式学习
--非监督式学习
数据————》》模型————》》预测
数据可视化:
有效的可视化组成元素
--视觉线索
位置、长度、角度、方向、形状、面积、体积、饱和度、颜色(精确度从大—》小排列)
--坐标系
--数据类型
--上下文内容
用python 绘图
*许多包
--Matplotlib 非常流行
--ggplot
*为什么选择ggplot?
--好识别
--图形化的语法
--ggplot(data, aes(xvar, yvar)) + geom_point(color = 'red') + geom_line(color = 'red') + ggtitle('title') + xlab('x-label') +ylab('y-label') data = pandas.dataFrame
--ggplot(hr_by_team_year,aes(x = 'yearID', y = 'HR',color = 'teamID')) + geom_point() + geom_line() + ggtitle('Title') + xlab('yearID') + ylab('HR')
数据类型:
--数值数据
--离散数据
--连续数据
--分类数据
--代表特性
--可以用数值表示,但不具备数学意义
--有序数据,数值数据与分类数据的混合,一般都是从低到高排序
--时间序列数据
--通过长时间重复测量而获得的观察数据的集合,
--与数值数据一样,但多了连续的时间
图形化时间序列数据
--散点绘制
--位置
--上下文
--线图
--减小散点图的缺陷
--强调趋势
--聚焦时间变化,不会覆盖全部趋势
--黄土曲线
--强调长期趋势
--黄土(Loess):是加权回归
--多变量图形
--怎么组合多变量?
--大小
--颜色/饱和度
Mapreduce
--适用于大数据,数据量要大于1T以上
--把整体数据,分为不同的小部分进行操作