📅  最后修改于: 2023-12-03 15:19:29.783000             🧑  作者: Mango
在数据分析中,探索性数据分析(Exploratory Data Analysis,简称EDA)是非常重要的一步。EDA旨在通过可视化和汇总统计量等手段,对数据进行探索性分析,以更好地了解数据特征及潜在规律,为进一步建立模型和分析做好准备。
Python作为数据分析领域的主流语言之一,有诸多开源库能够方便快捷地进行EDA。下面介绍几个常用的库和方法。
Pandas是Python中经典的数据分析库,它提供的DataFrame对象能够方便地进行数据清洗、切片、索引、统计等操作,是进行EDA的重要工具之一。
import pandas as pd
# 读取数据
data = pd.read_csv('data.csv')
# 查看数据前5行
data.head()
# 查看数据信息
data.info()
# 查看数据描述性统计量
data.describe()
# 查看数据唯一值
data['column_name'].unique()
# 查看数据缺失情况
data.isnull().sum()
Matplotlib是Python中使用最广泛的绘图库之一,可以绘制各种类型的图表,包括散点图、折线图、柱状图、饼图等。
import matplotlib.pyplot as plt
# 绘制散点图
plt.scatter(data['column1'], data['column2'])
plt.show()
# 绘制柱状图
plt.bar(data['column'], data['column_count'])
plt.show()
Seaborn是Python中另一个强大的绘图库,它能够基于Matplotlib,提供更加美观和灵活的绘图方式,常用于热力图、分布图、聚类图等。
import seaborn as sns
# 绘制热力图
sns.heatmap(data.corr())
plt.show()
# 绘制分布图
sns.distplot(data['column'])
plt.show()
数据中可能存在许多缺失值,在进行数据分析前需要对其进行处理。常用的处理方式包括删除、均值填充、中位数填充、随机森林填充等。
# 删除缺失值
data.dropna(inplace=True)
# 均值填充
data.fillna(data.mean(), inplace=True)
# 中位数填充
data.fillna(data.median(), inplace=True)
# 随机森林填充(需安装fancyimpute库)
from fancyimpute import KNN
data_filled = KNN(k=3).fit_transform(data)
在进行模型训练前,需要选择特征。常用的选择方式有单变量特征选择、递归特征消除、主成分分析等。
# 单变量特征选择
from sklearn.feature_selection import SelectKBest, f_regression
X = data.drop('target', axis=1) # X为特征矩阵
y = data['target'] # y为标签
selector = SelectKBest(score_func=f_regression, k=5).fit(X, y)
X_new = selector.transform(X)
# 递归特征消除
from sklearn.feature_selection import RFECV
from sklearn.linear_model import LinearRegression
estimator = LinearRegression()
selector = RFECV(estimator, step=1, cv=5)
selector.fit(X, y)
X_new = selector.transform(X)
# 主成分分析
from sklearn.decomposition import PCA
pca = PCA(n_components=2)
X_new = pca.fit_transform(X)
数据转换能够提高模型性能,常用的转换方式包括归一化、标准化、对数转换等。
# 归一化
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
X_scaled = scaler.fit_transform(X)
# 标准化
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
# 对数转换
import numpy as np
X_log = np.log(X)
以上是Python中进行EDA的一些常用库和方法,通过它们可以对数据进行初步了解、选择和转换,为接下来的预处理和模型训练奠定基础。