逻辑回归
|
![tensorflow ](https://img-blog.csdnimg.cn/20190825125400589.png#==#pic_center =40x)TensorFlow|
![keras](https://img-blog.csdnimg.cn/20190804140154168.png#==#pic_center =40x)Keras |
---|
python & mathematics
逻辑回归主要用于二分类问题,也就是解决是或不是等的一般疑问句问题。
之所以能够区别于线性回归这样的解决连续性解得问题主要在于逻辑回归采用了一个特殊的函数Sigmoid
所以这个激活函数能够把值规定在0-1之间,这就相当于给出了一个概率值。给出的因变量数越大,其概率越大。
一般来说我们也常常给出假设函数:$h(x) = wx +b$
由于存在激活函数最终的模型应该再加了一层:$h(x)' = S(h(x))$
进行回归问题其实就是调整变量($w,b$)的值,使得误差最小。
那么误差应该如何表示?(假设值与实际值的差?差的平方?)
对于逻辑回归来说,最常用的应该是交叉熵(CrossEntropy)
优化器可以用梯度下降或者其他的皆可
def build_model():
#此处只进行了简单的单向节点连接,并未增加大量变量
model = keras.Sequential([
layers.Dense(1, activation=tf.nn.sigmoid, input_shape=[len(train_dataset.keys())], use_bias = True)
])
model.compile(loss='binary_crossentropy',
optimizer="Adam",
metrics=['accarency'])
return model
关于逻辑回归的相关详细数学理论:
http://cs229.stanford.edu/summer2019/cs229-notes1.pdf