线性回归的可解释性和更多的思考和线性回归的总结
我们知道线性回归是具有可解释性的,用操作来解释什么是可解释性
在notebook中
使用波士顿数据,划分好范围
import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets
boston = datasets.load_boston()
X = boston.data
y = boston.target
X = X[y < 50.0]
y = y[y < 50.0]
这里我们不需要对这个数据集进行分割,因为后面不使用预测,不需要看预测准确度,只有对整个数据集进行拟合相应的进行数据分析就行
from sklearn.linear_model import LinearRegression
lin_reg = LinearRegression()
lin_reg.fit(X,y)
其中的内容,系数方面,正为正相关,负为负相关,绝对值大小相当于影响的程度
lin_reg.coef_
那么我们对其进行一个排序(索引)
np.argsort(lin_reg.coef_)
所有的特征相应的名称
boston.feature_names
我们将排序结果传进相应的特征中,我们就得到了排序以后对应的名称的排序的结果
boston.feature_names[np.argsort(lin_reg.coef_)]
打印出数据可以看看这些特征是什么意思
print(boston.DESCR)
我们通过进行比较,就可以发现很多的名称是对于事实上的情况是能解释的,像是房屋房间数量和房价呈现正相关,越多越贵,这就是可解释性,更重要的是,我们获得到这些内容以后,我们就可以试着预测出更好的结果
线性回归算法总结
线性回归算法用于预测数据的时候仍然是把我们的总的数据集划分成训练数据和测试数据两部分,我们用训练数据集训练出模型(实实在在存在的)
我们有了模型之后,我们就可以用这个模型对测试数据集进行预测,将测试的结果和我们测试数据集真实的结果进行比较,评价方式可以使用R Squared方式
对于线性回归算法来说,是个典型的参数学习过程,不过其只能解决回归问题,虽然很多分类方法中,线性回归是基础,很多地方都有其思想
我们在使用的时候,是对数据是有个假设的,即我们假设数据和最终的输出结果之间有一定的线性关系,线性关系越强,其表现出来的结果就越好
线性回归法有一个很大的优点,即对数据具有非常强的解释性,是个白盒子算法,能直接学习到知识
对比KNN来说,线性回归既可以解决分类问题,又可以解决回归问题,且KNN对数据没有假设