数据分析库的拓展学习

01 前言

除了前文所说的python数据分析的“三大神器”之外,你还需要对数据进行进一步的建模,预测,评估,并进行数据可视化,想要一劳永逸,就需要坚持学习一些更好用的数据分析库,接下来就逐一介绍。

02 衍生库的使用

Seaborn

Seaborn是一个基于matplotlib的Python可视化库,它提供了一个高级的界面,用于制作各种统计图形。Seaborn可以用来可视化统计数据集的分布,矩阵数据,回归模型等。

常用函数:

sns.distplot(): 绘制单变量分布图

import seaborn as sns
import numpy as np

# 生成一组随机数据
x = np.random.normal(loc=0, scale=1, size=1000)

# 绘制单变量分布图
sns.distplot(x, kde=True, rug=True, bins=20)

解释:该示例中,我们使用numpy生成了一组均值为0、标准差为1的正态分布数据,并使用distplot()函数绘制了它们的单变量分布图。

其中,kde参数指定是否绘制核密度估计图,rug参数指定是否绘制小刻度线,bins参数指定直方图的条数。

sns.jointplot(): 绘制双变量分布图

import seaborn as sns
import numpy as np

# 生成两组相关随机数据
x = np.random.normal(loc=0, scale=1, size=1000)
y = 0.5 * x + np.random.normal(loc=0, scale=0.5, size=1000)

# 绘制双变量分布图
sns.jointplot(x=x, y=y, kind='scatter')

解释:该示例中,我们使用numpy生成了两组相关的随机数据,并使用jointplot()函数绘制了它们的双变量分布图。

其中,kind参数指定绘制的图形类型,这里选择的是散点图。

sns.pairplot(): 绘制多变量分布图

import seaborn as sns
import pandas as pd

# 加载鸢尾花数据集
iris = sns.load_dataset('iris')

# 绘制多变量分布图
sns.pairplot(data=iris, hue='species')

解释:该示例中,我们使用seaborn内置的鸢尾花数据集,并使用pairplot()函数绘制了它们的多变量分布图。

其中,hue参数指定用于区分不同类别的变量。

sns.boxplot(): 绘制箱线图

import seaborn as sns
import pandas as pd

# 加载鸢尾花数据集
iris = sns.load_dataset('iris')

# 绘制箱线图
sns.boxplot(data=iris, x='species', y='petal_length')

sns.heatmap(): 绘制热力图

热力图(Heatmap)是一种二维图表,通常用于表示矩阵中每个值的相对大小。在数据分析和可视化中,热力图常用于探索变量之间的相关性或者用于可视化矩阵数据

下面是一个使用Seaborn库绘制热力图的示例:

import seaborn as sns
import numpy as np

# 创建一个3x3的矩阵
data = np.random.randn(3, 3)

# 绘制热力图
sns.heatmap(data, annot=True, cmap='coolwarm')

解释:该示例中,我们使用Numpy库生成了一个3x3的矩阵,并使用Seaborn库中的heatmap()函数绘制了该矩阵的热力图。

其中,annot=True参数表示在热力图上显示每个单元格的值,cmap='coolwarm’参数指定了颜色映射。

除了使用随机数据生成热力图之外,我们还可以使用真实的数据集绘制热力图。例如,使用Seaborn库中自带的flights数据集绘制月份和年份之间的乘客数量热力图:


import seaborn as sns

# 加载数据集
flights = sns.load_dataset('flights')

# 将数据集重塑为矩阵形式
data = flights.pivot('month', 'year', 'passengers')

# 绘制热力图
sns.heatmap(data, cmap='YlGnBu')

解释:该示例中,我们使用Seaborn库中自带的flights数据集,并使用pivot()函数将其重塑为矩阵形式,其中行表示月份,列表示年份,单元格的值表示该月份和年份的乘客数量。然后,我们使用heatmap()函数绘制了该矩阵的热力图,并使用cmap='YlGnBu’参数指定了颜色映射。

Scikit-learn

Scikit-learn是一个用于机器学习的Python库,包含了各种分类、回归和聚类等算法。它提供了简单而一致的接口,使得训练和评估模型变得非常容易。

常用函数:

sklearn.model_selection.train_test_split(): 将数据集拆分为训练集和测试集

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split

# 加载数据集
iris = load_iris()
X, y = iris.data, iris.target

# 将数据集拆分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

解释:该示例中,我们使用sklearn内置的鸢尾花数据集,并使用train_test_split()函数将其拆分为训练集和测试集。

其中,test_size参数指定测试集所占的比例,random_state参数指定随机数生成器的种子。

sklearn.linear_model.LinearRegression(): 线性回归模型

from sklearn.datasets import load_boston
from sklearn.linear_model import LinearRegression

# 加载数据集
boston = load_boston()
X, y = boston.data, boston.target

# 训练线性回归模型
model = LinearRegression()
model.fit(X, y)

# 输出模型参数
print('Intercept:', model.intercept_)
print('Coefficients:', model.coef_)

解释:该示例中,我们使用sklearn内置的波士顿房价数据集,并使用LinearRegression()函数训练了一个线性回归模型。然后,我们输出了模型的截距和系数。
sklearn.tree.DecisionTreeClassifier(): 决策树分类模型

from sklearn.datasets import load_iris
from sklearn.tree import DecisionTreeClassifier

# 加载数据集
iris = load_iris()
X, y = iris.data, iris.target

# 训练决策树分类器
model = DecisionTreeClassifier()
model.fit(X, y)

# 输出模型在训练集上的准确率
print('Accuracy:', model.score(X, y))

解释:该示例中,我们使用sklearn内置的鸢尾花数据集,并使用DecisionTreeClassifier()函数训练了一个决策树分类器。然后,我们输出了模型在训练集上的准确率。

sklearn.cluster.KMeans(): K-Means聚类模型

from sklearn.datasets import make_blobs
from sklearn.cluster import KMeans

# 生成一组随机数据
X, y = make_blobs(n_samples=1000, centers=4, random_state=42)

# 使用K均值聚类算法进行聚类
model = KMeans(n_clusters=4)
model.fit(X)

# 输出聚类结果
print('Cluster labels:', model.labels_)

解释:该示例中,我们使用sklearn内置的make_blobs()函数生成了一组随机数据,并使用KMeans()函数进行了K均值聚类。然后,我们输出了聚类结果。

sklearn.metrics.accuracy_score(): 计算分类准确率

from sklearn.datasets import load_iris
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score

# 加载数据集
iris = load_iris()
X, y = iris.data, iris.target

# 训练决策树分类器
model = DecisionTreeClassifier()
model.fit(X, y)

# 预测
y_pred = model.predict(X)

# 输出准确率
print('Accuracy:', accuracy_score(y, y_pred))

解释:该示例中,我们使用sklearn内置的鸢尾花数据集,并使用DecisionTreeClassifier()函数训练了一个决策树分类器。进行预测后,我们输出了模型在训练集上的准确率。

Statsmodels

Statsmodels是一个用于统计建模的Python库,它提供了多种统计模型和数据探索工具。Statsmodels可以用来进行回归分析、时间序列分析、非参数估计等。

常用函数:

sm.OLS(): 最小二乘线性回归
sm.Logit(): 逻辑回归模型
sm.GLM(): 广义线性模型
sm.tsa.ARIMA(): 自回归集成移动平均模型
sm.stats.anova_lm(): 方差分析
sm.graphics.plot_regress_exog(): 绘制线性回归拟合图
sm.qqplot(): 绘制QQ图
sm.tsa.seasonal_decompose(): 季节性分解
sm.stats.ttest_ind(): 独立样本t检验
sm.stats.ttest_rel(): 配对样本t检验
sm.stats.proportions_ztest(): 二项分布比例检验
sm.nonparametric.Kendalltau(): Kendall Tau相关系数
sm.nonparametric.Kruskal(): Kruskal-Wallis秩和检验
sm.regression.mixed_linear_model.MixedLM(): 混合线性模型
sm.stats.DescrStatsW(): 描述性统计分析

这里因为线性回归分析不常用,这里不做过多举例。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值