数据分析流程
  1. 数据理解
    分析数据集基本结构(前/后10行)
    知识点:
    Pandas库:df.head(10), df.tail(10)
    数据框结构:理解什么是行(样本)、列(特征/变量)。
    识别变量类型:
    数据类型:
    数值型:
    连续型:可在一定范围内取任意值(如身高、温度)。
    离散型:只能取整数(如人数、物品数量)。
    类别型:
    定类型:无顺序的类别(如性别、城市)。
    定序型:有顺序的类别(如评分等级:高、中、低)。
    Pandas操作:df.dtypes(查看数据类型),df.info()(更全面的信息),df['column'].unique()(查看唯一值),df.describe()(数值型描述统计),df.describe(include='object')(类别型描述统计)。

  2. 数据清洗
    缺失值处理:
    识别缺失值:df.isnull().sum()
    处理策略:

  3. 删除:df.dropna()(适用于缺失量少,或该行/列不重要时)

  4. 填充:
    统计量填充:用均值、中位数(数值型)、众数(类别型)填充。df.fillna()
    模型预测填充:使用KNN、回归等模型预测缺失值(更复杂,但更科学)。
    前后值填充:df.fillna(method='ffill'或'bfill')(适用于时间序列数据)

  5. 数据整理
    数据集转化:
    特征工程:创建新特征(如从日期中提取“月份”、“星期几”)。
    类型转换:将类别变量转换为数值(如pd.get_dummies()进行独热编码)。
    数据合并:pd.concat(), pd.merge()

数据标准化:
目的:消除不同特征量纲和数值范围差异对模型的影响。
方法:
Z-score标准化:(x - mean) / std,使数据均值为0,标准差为1。from sklearn.preprocessing import StandardScaler
Min-Max归一化:(x - min) / (max - min),将数据缩放到[0, 1]区间。from sklearn.preprocessing import MinMaxScaler

3.数据集分割
目的:评估模型在未见过的数据上的性能,防止过拟合。
方法:from sklearn.model_selection import train_test_split
操作:X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=42)

  1. 数据分析
    核心目标:通过统计和可视化深入探索数据内在规律。
    探索性数据分析
    可视化库:matplotlib, seaborn
    常用图表:
    单变量分析:直方图、箱线图(查看分布、异常值)。
    双变量分析:散点图(查看关系)、热力图(查看相关性)。
    描述性数据分析
    统计量:
    集中趋势:均值、中位数、众数。
    离散程度:标准差、方差、四分位距。
    分布形态:偏度、峰度。

5.回归预测分析
回归预测
算法:
线性回归:from sklearn.linear_model import LinearRegression
决策树回归:from sklearn.tree import DecisionTreeRegressor
随机森林回归:from sklearn.ensemble import RandomForestRegressor

分析模型可靠性 & 误差分析
评估指标:
均方误差:from sklearn.metrics import mean_squared_error
平均绝对误差:from sklearn.metrics import mean_absolute_error
R²决定系数:from sklearn.metrics import r2_score
残差分析:绘制残差图(预测值 vs 残差),理想情况应随机分布在0附近。

模型参数检验
线性回归:检查系数及其p-value,判断特征是否显著。
树模型:查看特征重要性 model.feature_importances_
报告回归结果:
汇总并解释模型系数、截距、评估指标、显著性等。

6.数据可视化
产生并输出表格:
Pandas DataFrame的格式化输出,使用.to_excel()或.to_csv()导出。
产生并输出图形:
柱状图/条形图:plt.bar(),用于比较不同类别的数值。
饼图:plt.pie(),用于显示组成部分占比。
散点图:plt.scatter(),用于展示两个变量之间的关系。
箱线图:sns.boxplot(),用于展示数据分布和异常值。