一、数据科学导论
用数据的方法来研究科学
生物信息,天体信息,数字地球等
用科学的方法来研究数据
统计学,机器学习,数据挖掘等
数据分析
数据类型
简单划分大致分为以下三部分:
数据的数学结构
主要困难
1.数据量大
2.数据维数高(最难)
3.数据类型复杂
算法角度看处理大数据的思路
1.降低算法的复杂度(随机梯度下降SGD)
2.分布式计算(MapReduce)
数据科学的课程体系
二、数据科学(一)----数据的初步诊断与探索
数据类型
数据科学中的几个概念
数据集
数据的集合,也是我们大数据技术处理的对象(个人想法)
样本(samples or examples)
数据集由样本构成,一个数据对象表示一个实体
特征
连续型/离散型
数据的基本统计方法
度量集中趋势(Central Tendency)
度量数据散布度
距离/相似度
使用pandas 读取数据集
import pandas as pd
titanic = pd.read_csv(“challenge.csv”)
# 获取字段名称
cols = list(titanic.columns)
# 获取字段数量
col_num = len(cols)
# 获取样本数量
sam_num = titanic.shape[0]
# 获取样本前5行样本
five_data= titanic.head()
print(cols)
print(col_num)
print(sam_num )
print(five_data)
三、 数据科学(二)-----数据预处理
缺失值处理和离群值检测
数据缺失的原因
1.采集过程数据缺失
2.网络传输错误
3.数据整合过程中引入缺失值
解决方法
删除法
简单粗暴。删除特征/样本。
缺点:破坏了信息的完整,造成资源浪费
均值填补
使用非缺失值的平均值(数值型)或众数(非数值型)进行填补。
缺点:导致特征的方差被低估
大大弱化特征之间的相关性。
随机填补
基于模型的填补
离群值
离群值检测方法
基于统计的方法
基于近邻的方法
常用的数据转换方法
特征编码
非数值型特征转换为数值特征
数字编码
将不同的变量用数字表示
缺点:引入了次序关系
One-Hot编码
将K个取值的离散特征转换成K个二元特征(取值0/1)
优点:
缺点:特征显著增多,增加了特征的相关性,影响 做线性回归
哑变量方法(dummy encoding)
将K个取值的离散特征转换成K-1个二元特征(取值0/1)
数据标准化
Z-core标准化
Min-Max标准化(离差标准化)
小数定标标准化
Logistic标准化
特征离散化
区间段
切分点
元数
类型
等距离散化
等频离散化
聚类离散化
信息增益离散化
卡方离散化
import pandas as pd
import numpy as np
example_data = pd.Series([1,2,3,np.nan,4])
# 判断是否含有缺失值
boolean_array = pd.isnull(example_data)
print(boolean_array)
# 缺失值替换
new_data = example_data.fillna(‘missing’)
#缺失值替换为非缺失值的均值
new_data =data.fillna(data.mean())
print(new_data)
#最大最小值标准化
minmax_scaling_data = (data[‘birth_rates’] - data[‘birth_rates’].min())/(data[‘birth_rates’].max()-data[‘birth_rates’].min())
############################################
import pandas as pd
data = pd.read_csv(‘birthrate.csv’)
#四分位切分数据
data_qcut =pd.qcut(data[‘birth_rates’], 4)
print(data_qcut)
#####################################
import numpy as np
import pandas as pd
###z-score 标准化 ###
def standard_scale(col):
return (col - col.mean()) / col.std()
rest_data = data.iloc[:,1:].apply(standard_scale, axis = 0)
rest_data = np.round(rest_data, 3)
standard_data = pd.concat([data[[‘ID’]], rest_data], axis = 1)
#########################
#对特征Smoking进行哑变量编码处理,
import pandas as pd
###去除ID列###
new_data = data.drop([‘ID’], axis=1)
###对每一列变量进行数据编码处理###
coding_data = pd.get_dummies(new_data, prefix = new_data.columns).astype(int)
###添加ID列###
coding_data[‘ID’] = data[‘ID’]