Seaborn 简明教程
Seaborn - Linear Relationships
在大多数情况下,我们使用包含多个定量变量的数据集,并且分析的目标通常是将这些变量相互关联。这可以通过回归线来完成。
在构建回归模型时,我们经常检查我们必须查看所有连续变量组合之间相关性的 multicollinearity, ,并且如果存在多重共线性,则将采取必要的措施将其删除。在这样的情况下,以下技术会有所帮助。
Functions to Draw Linear Regression Models
Seaborn 中有两种主要函数可用于可视化通过回归确定的线性关系。这些函数是 regplot() 和 lmplot() 。
regplot vs lmplot
regplot |
lmplot |
以各种格式接受 x 和 y 变量,包括简单的 numpy 数组、pandas Series 对象或对 pandas DataFrame 中变量的引用 |
具有数据作为必需参数,并且必须将 x 和 y 变量指定为字符串。这种数据格式称为“长格式”数据 |
现在让我们绘制出这些图。
Example
在本例中使用相同的数据绘制回归图和 Lmplot
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('tips')
sb.regplot(x = "total_bill", y = "tip", data = df)
sb.lmplot(x = "total_bill", y = "tip", data = df)
plt.show()
Fitting Different Kinds of Models
上面使用的简单线性回归模型非常容易拟合,但在大多数情况下,数据是非线性的,并且上述方法不能概括回归线。
让我们使用具有回归图的安斯科姆数据集 −
Example
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('anscombe')
sb.lmplot(x="x", y="y", data=df.query("dataset == 'I'"))
plt.show()
在这种情况下,数据非常适合具有较小方差的线性回归模型。
让我们看另一个数据偏差较大的示例,其中显示了最佳拟合线不是很好。
Example
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('anscombe')
sb.lmplot(x = "x", y = "y", data = df.query("dataset == 'II'"))
plt.show()