名字都是回归 但逻辑回归不是回归 是分类
Linear Regression(线性回归)
就是用简单的线性方程 来拟合数据集
y=∑ni=0wixi+b
其中的 w 就是各个回归系数
w 可用平方误差来求得
∑ni=0(yi−wixi)2=∑ni=0(yi−xTiw)2
用矩阵可以表示成
(y−XTw)T(y−XTw)
对w求导
XT(Y−Xw)=0 得到 w=(XTX)−1XTy
线性回归主要有两种:一元线性回归和多元线性回归。一元线性回归只有一个自变量,而多元线性回归有多个自变量。拟合多元线性回归的时候,可以利用多项式回归(Polynomial Regression)或曲线回归 (Curvilinear Regression)。
线性可能会欠拟合 有许多方法可以 在估计中引入偏差 ,从而降低均方误差,比如LWLR(locally weighted linear regression 局部加权线性回归)
w=(XTWX)−1XTWy
W是个矩阵,为每个点赋权重
lwlr 使用“核”来赋权。核类型可自由选择 常用高斯核
w=|x(i)−x|−2k2
x与x(i)越近 权重越大 k是需要用户调整的参数
代码
#Import other necessary libraries like pandas, numpy...
from sklearn import linear_model
#Identify feature and response variable(s) and values must be numeric and numpy arrays
#X,y training dataset ,x_test test dataset
# 创建线性模型
linear = linear_model.LinearRegression()
# 训练模型
linear.fit(x_train, y_train)
linear.score(x_train, y_train)
print('Coefficient: \n', linear.coef_) #看coefficient 系数w
print('Intercept: \n', linear.intercept_) #看 Intercept 截距b
predicted= linear.predict(x_test)
Logistic Regression(逻辑回归)
既然 逻辑回归 不是回归 为什么叫这个呢 因为它对 一些点做了“拟合”
而 拟合的过程 就是回归
逻辑回归与普通分类 差别在于 普通分类给了你一个离散的数 0 或 1
而逻辑回归 给了你一个具体的树
就相当于 你做事情 原来是成功为1 失败为0 现在变成了 成功概率是0.5 你在努力努力 可以变成0.7
就是用了这个函数 (Sigmoid函数)
f(z)=11+e−z
就相对于 你做了个线性回归 把这个结果套进 Sigmoid函数中
from sklearn.linear_model import LogisticRegression
#X,y training dataset ,x_test test dataset
#创建模型
model = LogisticRegression()
model.fit(X, y)
model.score(X, y)
print('Coefficient: \n', model.coef_)
print('Intercept: \n', model.intercept_)
predicted= model.predict(x_test)