https://scikit-learn.org/stable/index.html
https://sklearn.apachecn.org/
sklearn (scikit-learn) 是基于 Python 语言的机器学习工具
https://seaborn.pydata.org/
Seaborn 是一个基于matplotlib的 Python 数据可视化库。它提供了一个高级界面,用于绘制有吸引力且信息丰富的统计图形。
https://www.pypandas.cn/docs/
Pandas 是 Python (opens new window)的核心数据分析支持库,提供了快速、灵活、明确的数据结构,旨在简单、直观地处理关系型、标记型数据。
Pandas 的主要数据结构是 Series (opens new window)(一维数据)与 DataFrame (opens new window)(二维数据),Pandas 基于 NumPy (opens new window)开发。
pandas.DataFrame(data=None, index=None, columns=None, dtype=None, copy=None)
data | ndarray (structured or homogeneous), Iterable, dict, or DataFrame Dict 可以包含系列、数组、常量、数据类或类似列表的对象。如果数据是字典,列顺序遵循插入顺序。 |
index | Index or array-like 用于结果帧的索引。如果输入数据没有索引信息部分并且没有提供索引,则默认为 RangeIndex |
columns | Index or array-like 当数据没有时用于结果帧的列标签,默认为 RangeIndex(0, 1, 2, ..., n)。如果数据包含列标签,将改为执行列选择。 |
dtype | dtype, default None 要强制的数据类型。只允许一个 dtype。如果没有,则推断。 |
copy | bool or None, default None 从输入复制数据。对于 dict 数据, None 的默认行为类似于 |
https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.scatter.html
https://seaborn.pydata.org/generated/seaborn.scatterplot.html
matplotlib.pyplot.scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, *, edgecolors=None, plotnonfinite=False, data=None, **kwargs)[source]
x,y | float or array-like, shape (n, ) 数据位置 |
s | float or array-like, shape (n, ), optional 散点面积 |
c | array-like or list of colors or color, optional 默认为 |
marker |
标记样式。标记可以是类的实例,也可以是特定标记的文本简写。 |
cmap | str or 一个 相当于多个调色盘的合集 |
norm |
如果c是浮点数组,则使用norm在 0 到 1 范围内缩放颜色数据c,以便映射到颜色图 cmap 中。如果None,则使用默认值 |
vmin,vamx | float, default: None vmin和vmax与默认范数结合使用,将颜色数组c映射到颜色图cmap。如果没有,则使用颜色数组的相应最小值和最大值。当给出范数时,不推荐使用vmin / vmax。 |
alpha | float, default: None alpha 混合值,介于 0(透明)和 1(不透明)之间。 |
linewidth | float or array-like, default: 标记边缘的线宽。 |
edgecolors | {'face', 'none', None} or color or sequence of color, default: 标记的边缘颜色。可能的值:
|
plotnonfinite | bool, default: False 是否用非有限c (即 |
返回值 | PathCollection |
import numpy as np
import matplotlib.pyplot as plt
# Fixing random state for reproducibility
np.random.seed(19680801)
N = 50
x = np.random.rand(N)
y = np.random.rand(N)
colors = np.random.rand(N)
area = (30 * np.random.rand(N))**2
plt.scatter(x, y, s=area, c=colors, alpha=0.5)
plt.show()
http://seaborn.pydata.org/generated/seaborn.pairplot.html
seaborn.pairplot(data, *, hue=None, hue_order=None, palette=None, vars=None, x_vars=None, y_vars=None, kind='scatter', diag_kind='auto', markers=None, height=2.5, aspect=1, corner=False, dropna=False, plot_kws=None, diag_kws=None, grid_kws=None, size=None)
data | 长型数据,其中每一列都是一个变量,每一行都是一个观察值 |
hue | data中的 变量,将绘图方面映射到不同的颜色 |
hue_order | palette中hue调色板中色调变量的级别顺序 |
palette | 控制色调 |
vars或{x, y}_vars | 选择要绘制的变量 |
kind | 用于控制非对角线上的图的类型,可选"scatter" 与"reg" |
diag_kind | 控制对角线上的图的类型,可选
|
markers | 控制散点的样式 |
height | 每个刻面的高度(以英寸为单位) |
aspect | Aspect * height 给出了每个面的宽度(以英寸为单位) |
corner | 如果为 True,仅绘制下三角形 |
dropna | 在绘图之前从数据中删除缺失值 |
{plot, diag, grid}_kws |
|
https://seaborn.pydata.org/generated/seaborn.heatmap.html
seaborn.heatmap(data, *, vmin=None, vmax=None, cmap=None, center=None, robust=False, annot=None, fmt='.2g', annot_kws=None, linewidths=0, linecolor='white', cbar=True, cbar_kws=None, cbar_ax=None, square=False, xticklabels='auto', yticklabels='auto', mask=None, ax=None, **kwargs)
data | 可以强制转换为 ndarray 的二维数据集。如果提供了 Pandas DataFrame,索引/列信息将用于标记列和行。 |
vmin, vmax | 浮点值,可选 锚定颜色图的值,否则它们是从数据和其他关键字参数推断出来的。 |
cmap | matplotlib colormap name or object, or list of colors, optional 从数据值到颜色空间的映射。如果未提供,默认值将取决于是否 |
center | 浮点值,可选 绘制散点数据时使颜色图居中的值。如果未指定,则使用此参数将更改默认值 |
robust | 布尔型,可选 如果 True 和 |
annot | 布尔型 如果为 True,则在每个单元格中写入数据值。如果与 具有相同形状的类似数组 |
fmt | 字符型,可选 添加注释时使用的字符串格式化代码。 |
annot_kws | dict of key, value mappings, optional 当 |
linewidths | 浮点型,可选 将划分每个单元格的线的宽度。 |
linecolor | 颜色,可选 将划分每个单元格的线条的颜色。 |
cbar | 布尔型,可选 是否绘制颜色条。 |
cbar_kws | :dict of key, value mappings, optional
|
cbar_ax | matplotlib Axes, optional 绘制颜色条的轴,否则占用主轴的空间。 |
square | 布尔型,可选 如果为 True,请将 Axes 方面设置为“相等”,以便每个单元格都为方形。 |
xticklabels, yticklables | “auto”, bool, list-like, or int, optional 如果为 True,则绘制数据框的列名。如果为 False,则不绘制列名。如果类似列表,则将这些替代标签绘制为 xticklabels。如果是整数,则使用列名但只绘制每 n 个标签。如果为“自动”,请尝试密集绘制非重叠标签。 |
mask | bool array or DataFrame, optional 如果通过, |
ax | matplotlib axes,可选 在其中绘制绘图的轴,否则使用当前活动的轴。 |
kwargs | other keyword arguments 所有其他关键字参数都传递给 |
返回值 | ax: matplotlib 轴 带有热图的轴对象。 |
import numpy as np; np.random.seed(0)
import seaborn as sns; sns.set_theme()
flights = sns.load_dataset("flights")
flights = flights.pivot("month", "year", "passengers")
ax = sns.heatmap(flights, annot=True, fmt="d")
https://scikit-learn.org/stable/modules/generated/sklearn.metrics.confusion_matrix.html
sklearn.metrics.confusion_matrix(y_true, y_pred, *, labels=None, sample_weight=None, normalize=None)
参数 | y_true:真实(正确)目标值 y_pred:分类器返回的估计目标 labels:用于索引矩阵的标签列表。默认值=None sample_weight:样本权重,默认值=None normalize:{‘true’, ‘pred’, ‘all’},默认值=None 在真实(行)、预测(列)条件或所有总体上标准化混淆矩阵。如果没有,混淆矩阵将不会被归一化。 |
返回值 | 混淆矩阵的第i行第j列条目表示真实标签为第i类,预测标签为第j类的样本数。 |
https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html
class sklearn.linear_model.LogisticRegression(penalty='l2', *, dual=False, tol=0.0001, C=1.0, fit_intercept=True, intercept_scaling=1, class_weight=None, random_state=None, solver='lbfgs', max_iter=100, multi_class='auto', verbose=0, warm_start=False, n_jobs=None, l1_ratio=None)
LogisticRegresson参数:
penalty | {‘l1’, ‘l2’, ‘elasticnet’, ‘none’}, default=’l2’ 正则化项 |
dual | bool, default=False 是否求解对偶问题 |
tol | float, default=1e-4 迭代停止条件:两轮迭代损失值差值小于tol时,停止迭代 |
c | float, default=1.0 经验风险和结构风险在损失函数中的权重 |
fit_intercept | bool, default=True 线性方程中是否包含截距项 |
intercept_scaling | float, default=1 相当于此前讨论的特征最后一列全为1的列,当使用liblinear求解参数时用于捕获截距 |
class_weight | dict or ‘balanced’, default=None 各类样本权重 |
random_state | int, RandomState instance, default=None 随机数种子 |
solver | {‘newton-cg’, ‘lbfgs’, ‘liblinear’, ‘sag’, ‘saga’}, default=’lbfgs’ 损失函数求解方法 |
max_iter | int, default=100 求解参数时最大迭代次数,迭代过程满足max_iter或tol其一即停止迭代 |
multi_class | {‘auto’, ‘ovr’, ‘multinomial’}, default=’auto’ 多分类问题时求解方法 |
verbose | int, default=0 是否输出任务进程 |
warm_start | bool, default=False 是否使用上次训练结果作为本次运行初始参数 |
n_jobs | int, default=None |
l1_ratio | float, default=None 当采用弹性网正则化时,l1正则化权重,就是损失函数中的p |
https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.figure.html
matplotlib.pyplot.figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True, FigureClass=, clear=False, **kwargs)
num | int 或 str 或 图的唯一标识符。 |
figsize | (float, float), default: 指定figure的宽和高,单位为英寸 |
dpi | float, default: 参数指定绘图对象的分辨率,即每英寸多少个像素,缺省值为80 1英寸等于2.5cm,A4纸是 21*30cm的纸张 |
facecolor | default: 背景颜色 |
edgcolor | default: 边框颜色 |
frameon | bool, default: True 如果为 False,则禁止绘制图框。 |
FigureClass | subclass of (可选)使用自定义 |
clear | bool, default: False 如果 True 并且图形已经存在,则将其清除。 |
tight_layout | bool or dict, default: 如果 |
constrained_layout | bool,default: 如果 |
**kwargs | |
返回值 | Figure |
https://matplotlib.org/devdocs/api/_as_gen/mpl_toolkits.mplot3d.axes3d.Axes3D.html
import matplotlib.pyplot as plt
import numpy as np
n_radii = 8
n_angles = 36
# Make radii and angles spaces (radius r=0 omitted to eliminate duplication).
radii = np.linspace(0.125, 1.0, n_radii)
angles = np.linspace(0, 2*np.pi, n_angles, endpoint=False)[..., np.newaxis]
# Convert polar (radii, angles) coords to cartesian (x, y) coords.
# (0, 0) is manually added at this stage, so there will be no duplicate
# points in the (x, y) plane.
x = np.append(0, (radii*np.cos(angles)).flatten())
y = np.append(0, (radii*np.sin(angles)).flatten())
# Compute z to make the pringle surface.
z = np.sin(-x*y)
ax = plt.figure().add_subplot(projection='3d')
ax.plot_trisurf(x, y, z, linewidth=0.2, antialiased=True)
plt.show()
https://seaborn.pydata.org/generated/seaborn.boxplot.html
boxplot参数如下:
seaborn.boxplot(x=None, y=None, hue=None, data=None, order=None, hue_order=None, orient=None, color=None, palette=None, saturation=0.75, width=0.8, dodge=True, fliersize=5, linewidth=None, whis=1.5, notch=False, ax=None, **kwargs)
x, y, hue | dataframe中的列名(str)或者矢量数据 数据输入 |
data | dataframe或者数组 绘图数据集 |
order, hue_order | 用于控制条形图的顺序 |
orient | "v"|"h" 用于控制图像使水平还是竖直显示(这通常是从输入变量的dtype推断出来的,此参数一般当不传入x、y,只传入data的时候使用) |
color | 颜色 |
palette | 调色板 |
saturation | 绘制颜色的原始饱和度的比例 |
width | 不使用色调嵌套时的完整元素的宽度,或主要分组变量的一个级别的所有元素的宽度。 |
dodge | 使用色调嵌套时,元素是否应沿分类轴移动。 |
fliersize | 用于指示异常值观察的标记的大小。 |
linewidth | 构成绘图元素的灰线的宽度。 |
whis | IQR 通过低四分位数和高四分位数以扩展图须的比例。此范围之外的点将被识别为异常值。 |
ax | 要在其上绘制绘图的 Axes 对象,否则使用当前 Axes。 |
kwargs | |
返回值 | ax:matplotlib Axes |
import seaborn as sns
sns.set_theme(style="whitegrid")
tips = sns.load_dataset("tips")
ax = sns.boxplot(x="day", y="total_bill", hue="smoker",
data=tips, palette="Set3")