选择线性还是非线性的模型,最终还是要取决于我们的数据是线性可分还是线性不可分的。
一、样本的线性可分和线性不可分:
区别是看决策边界是否是直线或者平面,线性是可以用曲线拟合(回归)的,但是线性的分类一定是一个点或一条直线或平面。
判断数据集是否线性方法:
使用线性回归模型进行拟合,计算最小平方误差r2_score。如果r2_score值比较大,则意味着数据集本质上是线性的,否则数据集是非线性的。
from sklearn.linear_model import LinearRegression
from sklearn.metrics import r2_score
r = LinearRegression().fit(X, Y)
# Checking the accuracy
print(r2_score(regressor.predict(X), Y))
二、模型的线性与非线性:
1、看决策边界是否是一个点、一条直线或平面(线性函数)
2、看一个权重系数w是否只影响1个特征x,例如神经网络模型是非线性模型,特征x不仅仅受一个权重系数影响,因此,它的解释性较弱
样本线性不可分,也可以选择线性模型,例如SVM,可以使用核函数对特征进行映射,将特征空间映射到高维空间中去,变得线性可分