拟合线性回归y=w*x+b,这个没啥说的,直接上代码,后面谈到逻辑回归和FM更详细一些。 #Ref: https://www.beibq.cn/book/cw0v22-1583import tensorflow as tfimport numpy as npx_data = np.float32(np.random.rand(2,100)) #2行100列y_data = np.dot([0.100,0.200], x_data) + 0.300 #1行2列 × 2行100列b = tf.Variable(tf.zeros([1]))W = tf.Variable(tf.random_uniform([1,2],-1.0,1.0)) #y = w*x + b,x.shape = (2,100),b.shape=(1,1),so w.shape=(1,2)#y = tf.multiply(W, x_data) + by = tf.matmul(W, x_data) + b# min lossloss = tf.reduce_mean(tf.square(y - y_data))optimizer = tf.train.GradientDescentOptimizer(0.5)train = optimizer.minimize(loss)#variable init,定义了variable这一步必须要初始化init = tf.initialize_all_variables()#start graphsess = tf.Session()sess.run(init)#fitfor step in range(0,201): sess.run(train) if step%20 == 0: print(step, sess.run(loss), sess.run(W), sess.run(b))- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
这个只是为了尽可能拟合现有数据,一般情况下会出现泛化能力差,过拟合等现象。过拟合现象及其产生原因、解决方法见另一篇博客周志华老师机器学习西瓜书(第二章)——模型评估与选择,同时解释为什么L1可以做特征选择,其系数为0(L2正则类似)
接下来,由该线性回归说到逻辑回归和FM。
———————————————–20180821———————————————–
逻辑回归分三个部分说,逻辑回归推导、代码实现、优化改进。
逻辑回归有其假设条件[1],分别假设:
1)逻辑回归实际上是解决分类问题的,因此,逻辑回归要求因变量为二进制(是/否)。
2)特征应该是有物理含义的。
3)独立特征变量彼此独立。 也就是说,模型应该具有很少或没有多重共线性。
4)自变量(特征)与对数几率线性相关。
5)Logistic回归需要非常大的样本量才能达到一个较好的结果,因此,特征工程的工作量很大。 Logistic Regression AssumptionsBinary logistic regression requires the dependent variable to be binary.For a binary regression, the factor level 1 of the dependent variable should represent the desired outcome.Only the meaningful variables should be included.The independent variables should be independent of each other. That is, the model should have little or no multicollinearity.The independent variables are linearly related to the log odds.Logistic regression requires quite large sample sizes.——————–20180906——————————-
抱歉,博主拖了好久,现在回归。。。。
逻辑回归推导主要是由两部分组成,一是目标函数的推导(损失函数+正则项,推导只考虑目标函数,正则项之后加上去就好),二是梯度下降法的推导。
对于逻辑回归来说,分两种情况来看公式推导:样本标记为0/1或者-1/1的。
对标记为0/1的推导如下: Ref:
1、https://towardsdatascience.com/building-a-logistic-regression-in-python-step-by-step-becd4d56c9c8
|