数据分析复习
什么是数据分析
通过对数据的搜集、整理、清洗,提取数据的潜在特征,找到数据的隐藏规律,发现潜在目标及价值。
怎么实现分析目标
借助于一些工具及算法
数据采集
- 科学的抽样(降低调研成本,增加样本的普遍性)及采集方法
- 多样化采集数据,防止数据偏倚
- 数据来源
- 爬虫(暴漏在互联网上的网络数据)
- 服务器日志(自动化运维技术采集)
- 运营数据库中的数据(SQL,NoSQL技术进行分析)
- 爬虫(暴漏在互联网上的网络数据)
数据分析
-
什么是数据分析
发现数据中的潜在特征及关系 -
数据分析工具
- pandas(数据切片及提取的工具)
- numpy(基础的加速数学元算的工具)
- sklearn(机器学习的工具)
- 切词工具(jieba,自定义切词表,停止词表)
- bloom(布隆)过滤器的概念
-
数据分析的内容
- 信息维度(特征,多维特征构成一个矢量)的数量决定了可分析结果的数量
- 越多渠道的信息来源,能支撑更多的分析结果(例如分析评论的过程中,同时爬取小说原文分析)
-
pandas使用
加上标签的行列数据就是pandas
dfm = pd.read_csv(‘IMDB.csv’)
1.pandas可以对接不同的数据源
a) read_csv 读取csv文件
b) read_excel 读取微软excel
c) read_sql 读取数据库
备注:注意调用pandas.read_*可以看到还有很多数据源被支持
2.了解数据的基本特性a) dfm.info() 数据的基本信息 b) dfm.describe() 得到数值型数据的主要统计特征 c) dfm.head(10) 查看前10行 d) dfm.tail(10) 查看后10行
3.基本的筛选操作
a) dfm.Title 筛选出title列
b) dfm[‘Revenue (Millions)’] 中括号方法更具有通用性
c) dfm.loc[50:56,[‘Director’,‘Year’]]
d) dfm[dfm[‘Revenue (Millions)’] > 500]
e dfm[dfm[‘Genre’].str.contains(‘Sci-Fi’)]
4.基本的统计操作
a) dfm.mean(axis=0) axis=1表示按照行计算平均值,axis=0(默认值),表示按列计算
b) dfm.std()
c) dfm.sum()
d) pd.merge() 进行基本的表合并操作
数据可视化
- 数据可视化工具
- pyechart(python)
- echart(js)
- highcharts
- d3.js
信用卡盗刷分析
1.分析审视数据
2.特征工程
画出直方图,找出分布有明显区别的变量,是对分类目标(信用卡是否盗刷)区分度最大的特征.
3.特征转换
```
credit['Time'] = credit['Time'].map(lambda x:divmod(x,3600)[0])
```
4.特征缩放
//StandardScaler将目标数据转换到均值为0标准差为1数据
from sklearn.preprocessing import StandardScaler
standScaler = StandardScaler()
cols = ['Time','Amount']
credit2[cols] = standScaler.fit_transform(credit2[cols])
5.机器学习算法的选取
-
sklearn的三个主要应用方向:
a)回归(线性回归:LinearRegression,了解L1,L2正则化方法)
b)分类(决策树:DecisionTreeClassifier,支持向量机:LinearSVC)
c)聚类(K均值聚类:KMeans)
(降维:一种数据预处理及特征提取)在不同情况下基于数据量及特征的不同进行选取,在sklearn框架下的用法基本一样
//标准化
std_x = StandardScaler()
x_train = std_x.fit_transform(X)
//训练
lr = LinearRegression()
lr.fit(x_train,y_train)
//预测
lr.predict(x_predict)6.自动化特征排序
使用GradientBoostingClassifier(梯度提升决策树)进行自动化的特征排序(了解boosting,bagging)
7.怎么处理数据不平衡
-
过采样(生成数据较少的类别,使用imblearn中的SMOTE方法)
- 欠采样(删除数据较多的类别)
-
综合采样(综合使用上面两种方法)
8.模型性能评估- 查全率 (要预测的真实数据多少被找出)
- 召回率 (在预测结果中,多少是正确的)
9.模型性能优化
GridSearchCV能进行自动化的模型参数选择,找出候选参数中,性能最好的(CV:交叉验证)
-
- 欠采样(删除数据较多的类别)