Logistic Regression

简介: 机器学习中的逻辑回归(Logistic Regression)是一种用于解决分类问题的线性模型。它通过拟合一条直线(或平面),将输入变量与输出变量(通常为二值变量,如 0 或 1)之间的关系表示出来。

机器学习中的逻辑回归(Logistic Regression)是一种用于解决分类问题的线性模型。它通过拟合一条直线(或平面),将输入变量与输出变量(通常为二值变量,如 0 或 1)之间的关系表示出来。逻辑回归模型的基本形式如下:
y = sigmoid(wx + b)
其中,y 是输出变量,x1, x2,..., xn 是输入变量,w1, w2,..., wn 是需要学习的权重,b 是偏差。sigmoid 函数是逻辑回归的核心,它将线性模型的输出转换为二值输出(0 或 1)。
逻辑回归的主要优点是它可以处理连续输入变量和二值输出变量之间的关系。这使得它在许多实际应用场景中具有很好的表现,例如广告投放效果预测、信用风险评估、疾病诊断等。
要使用逻辑回归模型,可以按照以下步骤进行:

  1. 收集数据:收集包含输入变量和输出变量的数据集。这些数据可以是实验室测量值、历史数据或现实世界中的观测值。
  2. 数据预处理:处理数据中的异常值、缺失值,并将连续变量标准化(例如归一化)以提高模型性能。
  3. 划分数据集:将数据集划分为训练集和测试集。训练集用于训练模型,而测试集用于评估模型性能。
  4. 训练模型:使用训练集数据,通过最小化代价函数(如均方误差,MSE)来调整模型参数(权重和偏差)。
  5. 评估模型:使用测试集数据,评估模型的性能。如果性能不佳,可以调整学习率、迭代次数等超参数,或尝试使用其他模型。
  6. 应用模型:将训练好的模型应用于新数据,进行预测。
    总之,逻辑回归是一种用于解决分类问题的线性模型,通过拟合一条直线(或平面),将输入变量与输出变量之间的关系表示出来。通过收集数据、预处理数据、划分数据集、训练模型、评估模型和应用模型等步骤,我们可以使用逻辑回归模型来预测连续值和解决分类问题。


Polynomial regression
Import the relevant libraries and initialize the hyper-parameters

%matplotlib inline
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt

learning_rate = 0.01
training_epochs = 40
Set up some fake raw input data

trX = np.linspace(-1, 1, 101)
Set up raw output data based on a degree 6 polynomial

num_coeffs = 6
trY_coeffs = [1, 2, 3, 4, 5, 6]
trY = 0
for i in range(num_coeffs):
    trY += trY_coeffs[i] * np.power(trX, i)
Add some noise

trY += np.random.randn(*trX.shape) * 1.5
Plot the raw data

plt.scatter(trX, trY)
plt.show()

Define the nodes to hold values for input/output pairs

X = tf.placeholder("float")
Y = tf.placeholder("float")
Define our polynomial model

def model(X, w):
    terms = []
    for i in range(num_coeffs):
        term = tf.multiply(w[i], tf.pow(X, i))
        terms.append(term)
    return tf.add_n(terms)
Set up the parameter vector to all zero

w = tf.Variable([0.] * num_coeffs, name="parameters")
y_model = model(X, w)
Define the cost function just as before

cost = tf.reduce_sum(tf.square(Y-y_model))
train_op = tf.train.GradientDescentOptimizer(learning_rate).minimize(cost)
Set up the session and run the learning algorithm just as before

sess = tf.Session()
init = tf.global_variables_initializer()
sess.run(init)

for epoch in range(training_epochs):
    for (x, y) in zip(trX, trY):
        sess.run(train_op, feed_dict={X: x, Y: y})

w_val = sess.run(w)
print(w_val)
[ 1.10158885  2.36433625  3.30378437  4.43473864  3.75751448  4.60356045]
Close the session when done

sess.close()
Plot the result

plt.scatter(trX, trY)
trY2 = 0
for i in range(num_coeffs):
    trY2 += w_val[i] * np.power(trX, i)
plt.plot(trX, trY2, 'r')
plt.show()
AI 代码解读
目录
相关文章
|
9月前
|
logistic算法
logistic算法
78 0
Regression算法
Regression算法
131 2
|
9月前
Ridge,Lasso,Elasticnet回归
这篇文章探讨了多元线性回归与正则化的结合,包括Ridge、Lasso和Elasticnet回归。Ridge回归通过添加L2惩罚项提高模型鲁棒性,但可能牺牲一些准确性。Lasso回归引入L1范数,对异常值更敏感,能进行特征选择。Elasticnet结合L1和L2范数,允许在正则化中平衡两者。通过调整α和l1_ratio参数,可以控制整体正则化强度和正则化类型的比例。
118 0
逻辑回归(Logistic Regression)详解
逻辑回归(Logistic Regression)详解
52 0
2D Logistic Regression
2D Logistic Regression 是一种用于解决二分类问题的机器学习模型,它是 Logistic Regression 在多维空间中的扩展。在 2D Logistic Regression 中,我们使用一个二维平面(或多维空间中的超平面)来将不同类别的数据分开。
93 1
逻辑回归(Logistic Regression)
逻辑回归(Logistic Regression)是一种用于解决分类问题的统计学习方法。它是一种广义线性模型,用于估计二分类问题中的概率。
160 2
机器学习算法之——逻辑回归(Logistic Regression)
逻辑回归(Logistic Regression, LR)模型其实仅在线性回归的基础上,套用了一个逻辑函数,但也就由于这个逻辑函数,使得逻辑回归模型成为了机器学习领域一颗耀眼的明星,更是计算广告学的核心。
机器学习算法之——逻辑回归(Logistic Regression)
线性回归(Linear regression)算法
属于有监督学习、判别模型、有预测函数、有优化目标,有优化求解算法
311 0