A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

拟合线性回归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.
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

——————–20180906——————————-
抱歉,博主拖了好久,现在回归。。。。
逻辑回归推导主要是由两部分组成,一是目标函数的推导(损失函数+正则项,推导只考虑目标函数,正则项之后加上去就好),二是梯度下降法的推导。
对于逻辑回归来说,分两种情况来看公式推导:样本标记为0/1或者-1/1的。
对标记为0/1的推导如下:

Ref:
1、https://towardsdatascience.com/building-a-logistic-regression-in-python-step-by-step-becd4d56c9c8


2 个回复

倒序浏览

很不错,受教了
回复 使用道具 举报
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马