导图社区 数据分析分析与可视化
数据分析思维导图,整理了numpy操作、pandas操作、数据预处理、分类分析、聚类分析、回归分析的内容,大家可以学起来哦。
编辑于2023-02-20 10:33:01数据分析
基本概念
数据分析领域
客户分析
客户分组,针对不同客户采用不同策略
资源有效配置
提高客户满意度
提高利润,降低成本
营销分析
社交媒体分析
用户行为分析
网站运营分析
数据分析流程
明确分析目标
数据收集
业务数据库
excel文件
xml
Json
数据对象序列化
本质是一个字符串
既然是字符串,天然的具有跨平台的特性
类似Python的字典,key-value,可以多级嵌套
网络日志
爬虫
数据预处理
数据分析
报告撰写
数据分析基本步骤
数据收集
数据预处理
数据分析与知识发现
数据后处理
数据质量评价
完整性(是否有缺失)
准确性(没有明显的异常)
一致性(同一指标在不同地方结果是否一致)
及时性(数据能否及时产出)
numpy操作
创建数组
array方式创建
import numpy as np arr_1 = np.array([1, 2, 3, 4, 5]) arr_1 ----------------------------------- array([1, 2, 3, 4, 5])
arange方式创建
import numpy as np array_2 = np.arange(1, 10, 2) array_2 ----------------------------------- array([1, 3, 5, 7, 9])
更改维度reshape
import numpy as np array_3 = np.arange(1, 11) array_3.reshape(2,5) -----------------------------------
常用的操作
min
不指定维度 返回所有数据中的最小值 指定维度,返回指定维度的最小值 import numpy as np array_3 = np.arange(1, 11).reshape(2,5) array_3.min() array_3.min(axis=0) array_3.min(axis=1)
max
不指定维度 返回所有数据中的最大值 指定维度,返回指定维度的最大值 import numpy as np array_3 = np.arange(1, 11).reshape(2,5) array_3.max() array_3.max(axis=0) array_3.max(axis=1)
sum
不指定维度 返回所有数据和 指定维度,返回指定维度的和 import numpy as np array_3 = np.arange(1, 11).reshape(2,5) array_3.sum() array_3.sum(axis=0) array_3.sum(axis=1)
pandas操作
文件读取
csv
read_csv
excel
read_excel
txt
read_table
dababase
read_sql
Series
创建
Series([10, 20, 30, 40])
Series({'aaa': 10, 'bbb': 20})
Series(np.arange(10, 15))
Series(10, index=list('abcdef'))
查询
series1[2]
series1['b']
series1[[0, 2, 3]]
series1[1:3]
series1[series1 > 20]
DataFrame
创建
DataFrame()
DataFrame(columns=['a','b'])
DataFrame(index=[1,2])
DataFrame(persons_dict)
DataFrame(np.random.randint(1, 10, (3, 4)))
DataFrame([[1, 2, 3], [4, 5, 6]])
查询
data_frame.columns
北京 上海 广州 杭州 0 10 11 18 12 1 20 22 16 25 2 30 38 27 33 pd.DataFrame({'北京':[10,20,30],'上海':[11,22,38],'广州':[18,16,27],'杭州':[12,25,33]})
data_frame.index
data_frame[['上海', '北京']]
data_frame['上海']
data_frame.iloc[:, 1: 3] ---行号
data_frame.loc[0] ---index
前3行 前3列??
data_frame.iloc[:3, :3]
data_frame.loc[:2, data_frame.columns[:3]]
运算
整体与常数
data_frame + 1
取某些列与常数
data_frame['北京']*2
几列互相运算
data_frame['北京']+data_frame['上海']
对某列汇总函数得到常数再与其他列计算
data_frame['北京'].min()+data_frame['上海']
以上操作嵌套
数据预处理
缺失值
pd.isnull().sum()
pd.isnull().mean()
pd.dropna(axis=0,how='any',inplace=True)
重复值
df.duplicated().sum()
df.drop_duplicates(inplace=True)
每一列的不重复值
df.nunique()
异常值
describe
数据标准化
Min-Max标准化
Z-Score标准化
分类分析
监督学习
标签是离散变量。如客户是否流失,是否违约。肿瘤是否恶性。穿什么尺码的鞋子
典型模型
决策树DecisionTreeClassifier
随机森林RandomForestClassifier
支持向量机svm
朴素贝叶斯
评价指标
准确率Accuracy
精准率Precision
召回率Recall
F1-score
混肴矩阵分类报告
from sklearn.metrics import confusion_matrix
from sklearn.metrics import classification_report
调用:confusion_matrix(y_true,y_pred)
调用:print(classification_report(y_true,y_pred))
套路
1.读取数据
pd.read_csv
pd.read_excel
2.对数据预处理
空值
重复值
异常值
3.选择标签与特征
先选y
drop(y) 来选x
4.导入train_test_split
from sklearn.model_selection import train_test_split
5.使用train_test_split划分训练集和测试集
6.导入模型
from sklearn.tree import DecisionTreeClassifier
from sklearn.ensemble import RandomForestClassifier
7.生成,训练模型
model = DecisionTreeClassifier()
model = RandomForestClassifier()
model.fit(x_train,y_train)
8.模型打分
model.score(x_test,y_test)
使用metics库的混肴矩阵,分类报告
聚类分析
无监督学习
物以类聚,人以群分。把特征相近的样本分类若干类别
探索性的分析;根据样本数据自动分类;对细分的群体可以进行个性化服务
典型模型
KMeans
核心思想:指定K个中心,计算每一个点到这K个中心的距离,离哪个中心最近就划分到哪个分类 一般使用欧式距离
Dbscan
层次聚类
评价指标
CH指数
轮廓系数
评价偏主观
套路
1.读取数据
2.去空去重复
3.挑选特征(按题目要求)
4.根据特征的数量级判断是否需要标准化
5.选择K值
from sklearn.cluster import KMeans sse = [] k_range = range(1,10) for k in k_range: km = KMeans(n_clusters = k) km.fit(df) sse.append(km.inertia_)
6.根据不同K值对应的误差 画图
import matplotlib.pyplot as plt plt.plot(range(1,10),sse,'bo-')
7.根据肘部法选择合适的K值
8.用选择的K值完成聚类
km = KMeans(n_clusters = 5) #假设K是5 km.fit(df) lb = km.labels_ pd.concat([df,pd.DataFrame(km.labels_)],axis=1)
9.计算每一个聚类的均值
df[lb==0].mean() df[lb==1].mean()
回归分析
监督学习
标签是连续变量,如预测房价、气温等
典型模型
线性回归LinearRegresstion
支持向量回归 、k近邻回归
评价指标
决定系数r2-score
平均绝对误差MAE mean absolute error
平均平方误差MSE mean squared error
均方根误差RMSE root mean squared error
套路
跟分类很类似 主要区别是否要进行标准化 评估指标也需要从metrics库中导入