这段时间,不少同学提到了一些图表的问题。
每次在使用matplotlib画图,运用这些图表说明问题的时候,很多时候是模糊的,比如说什么时候画什么图合适?
其实这个根据你自己的需求,自己的想法来就行。
今天的话,我这里举例在线性回归中,最常用的一些图表,应该可以cover绝大多数情况了。其他算法模型适用的图表,咱们在后面再给大家进行总结~
至于数据集,表现方式,大家可以根据我给出的代码继续调整即可!
那么,在线性回归学习中,以下10种图表是很重要的:
-
散点图
-
线性趋势线图
-
残差图(Residual plot)
-
正态概率图
-
学习曲线
-
方差-偏差权衡图
-
残差对预测值图
-
部分回归图
-
杠杆图
-
Cook's 距离图
1,散点图
散点图(Scatter plot)是一种展示两个变量之间关系的图表。它通过在坐标系中以点的形式表示数据,其中每个点的位置由两个变量的值决定,从而展示它们之间的关系。
在线性回归中,散点图通常用于可视化数据集中两个变量之间的关系,并帮助我们判断是否适合使用线性模型进行建模。
咱们使用sklearn
库中的load_diabetes
数据集。然后,将选择数据集中的一个特征作为自变量X,另一个特征作为因变量y。后面的案例,也用这个数据集给大家进行演示。
from sklearn.datasets import load_diabetes
# 加载数据集
diabetes = load_diabetes()
X = diabetes.data[:, 2] # 使用第三个特征作为自变量
y = diabetes.target
# 手动实现简单线性回归算法
def simple_linear_regression(X, y):
# 计算均值
X_mean = sum(X) / len(X)
y_mean = sum(y) / len(y)
# 计算斜率和截距
numerator = sum((X - X_mean) * (y - y_mean))
denominator = sum((X - X_mean) ** 2)
slope = numerator / denominator
intercept = y_mean - slope * X_mean
return slope, intercept
# 获取回归直线的斜率和截距
slope, intercept = simple_linear_regression(X, y)
现在,画出散点图并添加回归直线。
import matplotlib.pyplot as p