回归#
回归转换将二维回归模型拟合到数据上以进行平滑和预测。此转换可以为输入数据(每组一个)拟合多个模型,并生成代表汇总趋势线点的新数据对象。另外,此转换也可以用于生成一组包含回归模型参数的对象,每组一个。
此转换支持以下函数形式的参数模型
线性 (
linear
): y = a + b * x对数 (
log
): y = a + b * log(x)指数 (
exp
): * y = a * e^(b * x)*幂 (
pow
): y = a * x^b二次 (
quad
): y = a + b * x + c * x^2多项式 (
poly
): y = a + b * x + … + k * x^(order)
所有模型都使用普通最小二乘法进行拟合。对于非参数局部加权回归,请参阅LOESS。
这里有一个绘制在数据之上的简单线性回归示例
import altair as alt
import pandas as pd
import numpy as np
np.random.seed(42)
x = np.linspace(0, 10)
y = x - 5 + np.random.randn(len(x))
df = pd.DataFrame({'x': x, 'y': y})
chart = alt.Chart(df).mark_point().encode(
x='x',
y='y'
)
chart + chart.transform_regression('x', 'y').mark_line()
转换选项#
transform_regression() 方法基于RegressionTransform
类构建,该类具有以下选项
点击显示表格
属性 |
类型 |
描述 |
---|---|---|
as |
array( |
回归转换生成的平滑点输出字段名称。 默认值:输入 x 和 y 值的字段名称。 |
extent |
array( |
独立 (x) 字段上的 [最小值, 最大值] 域,用于生成趋势线的起始点和结束点。 |
groupby |
array( |
用于分组的数据字段。如果未指定,则使用包含所有数据对象的单个组。 |
method |
[‘linear’, ‘log’, ‘exp’, ‘pow’, ‘quad’, ‘poly’] |
回归模型的函数形式。可以是 默认值: |
on |
用作预测变量的独立变量数据字段。 |
|
order |
|
'poly' 方法的多项式阶数(系数数量)。 默认值: |
params |
|
一个布尔标志,指示转换是否应返回回归模型参数(每组一个对象),而不是趋势线点。结果对象包含拟合系数值的 默认值: |
regression |
要预测的因变量数据字段。 |