统计建模:数据分析基础

您所在的位置:网站首页 统计建模比赛结果分析 统计建模:数据分析基础

统计建模:数据分析基础

2024-07-12 07:04| 来源: 网络整理| 查看: 265

本文为学习黄晓林老师开设的慕课《探索数据的奥秘》所作笔记

数据科学简介

现时代科学范式正在转变,继实验、理论与计算之后,数据科学已成为人类探索世界的第四科学范式。工业界对数据科学的关注在应用层面,更关注相关性而非因果性。

数据

数据传感器采集到的各种物理、生物、化学指标等等可记录、可表征的数量、性质都是数据,对于行为的描述与记录也能构成数据,例如互联网上的一次次交易,访问。总之,现实中某种事物或事物间关系数量或性质的表征和记录,都称之为数据,数据是信息的载体。

大数据

有观点认为,当数据量大到需要使用并行计算工具处理时,就称之为大数据(Big Data)。通常认为大数据有4V特点,即体量大(High Volume)、速度快时效高(High Velocity)、类型繁多(High Variety)、价值密度低(High Veracity)

1993年,美国学者挨个拉沃提出了Aprior算法,可以通过分析购物篮中的商品几何,找出商品间关系,然后研究或推测顾客的购买行为,沃尔玛将其引入pos机数据分析,发现一些看似毫无关联的商品,例如啤酒和尿布经常出现在同一购物车中,即两者具有相关性。

数据科学

应用科学的方法、流程、算法和系统从多种形式的结构化或非结构化数据中提取知识和洞见的交叉学科。所有对数据的搜集,存储,分类,处理,分析,呈现都可纳入数据科学的范畴。

数据科学项目克可能涉及的人员: 人员定位项目出资方商业利益,提供项目支持客户(或用户)最终用户利益(领域专家)数据架构师管理数据和数据存储运营工程师管理基础设施和部署最终成果数据科学家(核心人员)设定和执行分析战略 一、明确问题及制定目标

用户层面 针对用户的具体问题,应做好充足的背景调查,从而制定出相应的用户层面的目标。 数据科学层面:可将问题抽象为分类、预测、排名或打分、关联化、特征提取、聚类等。

类型描述分类对于给定的数据,依据一定的规则进行两个或两个以上的类别划分,输出为针对输入的数据所分配的类别标签。例如:真/假,类别A / 类别B / 类别C /…预测基于一直数据对将来的状态作出估计或判断,输出为连续的数量值或类别标签排名 (打分)对于实体的某种属性或响应进行数量化描述或进行排序关联化 去关联化在尸体的众多特征种,寻找有相互关联的特征以便相互替代,从而实现特征的相互“解释”或数据降维;而对于非关联的特征则需予以保留以实现对样本的全面描述特征提取基于实体的众多特征,构造最反应目标的,或最能知识某种分类的复合特征聚类根据样本间的相似度将样本分组 二、数据搜集与准备 前提假设和数据构成

明确必要的前提假设,基于假设的前提来设计数据的构成,明确总体和抽样方案再搜集数据。

在面向实际应用时,始终不能忘记方案的可行性分析,不同的假设很可能会涉及不同的数据,最终导致不同的研究内容。因此,在真正进行数据搜集之前,应认真审视与事实最符合的假设,根据最符合事实的假设提出对应的数据方案,思考方案的可行性,确定数据的构成。

通常,后续方便处理的数据是 ” 结构化 “ 的数据(可将其抽象的理解为一张二维表,一行对应一个样本,一列对应一个属性)

总体和抽样

总体(Population):待研究对象的全体 个体(Individual):总体中的每一个对象 样本:在无法获得总体的情况下,从总体中抽取出来的子集 样本容量:样本包含的个体数量

数据收集是一种从总体中抽样的过程样本容量不能太小,传统统计学认为小于30的样本容量不具备统计学意义抽样时不能有预设偏见,也就是必须无偏抽样,即抽样的过程不受个体性质的影响。抽样偏差指从总体中非随机型抽样带来的系统性错误,幸存者偏差就是一种常见的抽样偏差避免抽样偏差常见的作法是随机抽样。随机抽样是指总体中的个体是否被抽样并非是确定的(即,不因为个体的某个或某些性质一定被抽中或一定不被抽中),而是以一定的概率被抽样 混杂因素和A/B Testing

辛普森悖论: 人们尝试探究两种变量(比如新生录取率与性别)是否具有相关性的时候,会分别对之进行分组研究。然而,在分组比较中都占优势的一方,在总评中有时反而是失势的一方。 常见的排除混杂因素影响的做法: 对两相比较的样本集,做好潜在混杂因素(甚至所有非考察因素)的匹配。

对于关联任务而言,混杂因素的排除是关键

A/B Testing: 指专门设计一些对比试验,在其他所有特征都匹配(或一致)的情况下,只观察一个变量的不同取值对于结果的影响。科学研究中,在实验室的可控环境下,A/B Testing 是一种非常常见的实验手段,例如 “ 双盲实验 ” 。主动搜集数据时,A/B Testing 是一种可靠而有效的方式。

三、使用python进行数据导入

NumPy.load_txt()

将指定文件中的数据加载到数组支持纯文本文件,如 txt 文件和 csv 文件返回 NumPy 的 ndarray 多维数组一般用来加载数据类型一直的数据文件 import numpy as np x = np.loadtxt('E:\my_data.csv', delimiter=',') #查看导入数据的规模 print(x.shape) #ndarray的二维切取 x[:2,:3] #指定导入的数据类型为int x_int = np.loadtxt('E:\my_data.csv', delimiter=',', dtype=int)

Pandas.read_csv()

面对数据并不统一的电子表格数据将电子表格文件中的数据导入到 Pandas 的 DataFrame 结构(二维表格结构) import pandas as pd #header=None表示没有表头 #names参数:为表格的各列设置列标题 data = pd.read_csv('E:\my_data.csv, header=None, names=['A','B','C','D','E']) #可以使用data.values访问表格中存放的数据,为ndarray类型 print(data.values)

Python自带模块urllib 可用于网上在线获取文件

urllib.request.urlopen()

CountVectorizer实现非结构化数据转化为结构化数据 非结构化数据一般通过结构化处理使其成为表格,方便后续的分析与建模

#使用fetch_20newsgroups函数可以自动下载数据到 #[Currentuser]\scikit_learn_data 下面 from sklearn.datasets import fetch_20newsgroups #下载医学新闻数据集 my_news=fetch_20newsgroup(categories['sci.med']) print(twenty_sci_news_data[0], '\n') #CountVectorizer是属于常见的特征数值计算类,是一个文本特征提取方法 #对于每一个训练文本,它只考虑每种词汇在该训练文本中出现的频率。 from sklearn.feature_extraction.text import CountVectorizer count_vect=CountVectorizer() #通过fit_transform函数计算各个词语出现的次数,返回一个稀疏矩阵对象 word_count=count_vect.fittransform(my_news.data)

对大规模数据的读取

以连续流的方式流入,而非一次性加载 import pands as pd #规定chunksize后返回的数据类型不再是DataFrame #而是一个可迭代的TextFileReader对象 #它保存了若干个chunk的尺寸和位置 #但只有当被迭代器指到时,才会真正把对应的数据读入内存 my_chunk=pd.read_csv('E:\my_data.csv', header=None, names=['A','B','C','D','E'], chunksize=20) for n,chunk in enumerate(my_chunk): print(chunk.shape) if n


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3