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()
目录
相关文章
|
6月前
|
Java
java入门代码示例
本文介绍Java入门基础,包含Hello World、变量类型、条件判断、循环及方法定义等核心语法示例,帮助初学者快速掌握Java编程基本结构与逻辑。
508 0
|
7月前
|
JSON API 数据安全/隐私保护
【干货满满】分享淘宝API接口到手价,用python脚本实现
淘宝开放平台通过API可获取商品到手价,结合商品详情与联盟接口实现优惠计算。需使用AppKey、AppSecret及会话密钥认证,调用taobao.tbk.item.info.get接口获取最终价格。代码示例展示签名生成与数据解析流程。
|
6月前
|
SQL 安全 关系型数据库
渗透技术--sqlmap使用
Sqlmap是一款自动化SQL注入工具,支持MySQL、Oracle、PostgreSQL等多种数据库。它可扫描并利用URL中的SQL注入漏洞,提供丰富的参数选项,如查询数据库、表、字段,支持POST注入、代理设置及写入文件等功能,适用于安全测试与漏洞评估。
837 1
渗透技术--sqlmap使用
|
8月前
|
数据安全/隐私保护 网络架构
在线MAC地址生成工具
免费在线生成随机MAC地址,支持多种格式(冒号、连字符、点、无分隔)。
1539 5
|
11月前
|
前端开发 搜索推荐 JavaScript
如何通过DIY.JS快速构建出一个DIY手机壳、T恤的应用?
DIY.JS 是一款基于原生 Canvas 的业务级图形库,专注于商品定制的图形交互功能,帮助开发者轻松实现个性化设计。适用于 T 恤、手机壳等多种商品场景。它自带丰富功能,无需从零构建,快速集成到项目中。通过创建舞台、添加模型、定义 DIY 区域和添加素材四个步骤即可完成基础用法。支持在线演示体验,文档详细,易上手。
510 57
|
存储 前端开发 数据库
基于python flask 的图书管理系统,有登录界面,实现简单增删改查,可以做课程设计使用
本文介绍了一个基于Python Flask框架的图书管理系统,该系统具备登录界面,并实现了基本的增删改查功能,适合作为课程设计使用。
630 3
基于python flask 的图书管理系统,有登录界面,实现简单增删改查,可以做课程设计使用
|
存储 安全 网络安全
|
缓存 编解码 安全
探索Android 12的新特性与优化技巧
【6月更文挑战第7天】本文将深入探讨Android 12带来的创新功能和改进,包括用户界面的更新、隐私保护的加强以及性能的提升。同时,我们还将分享一些实用的优化技巧,帮助用户更好地利用这些新特性,提升手机的使用体验。
|
机器学习/深度学习 计算机视觉
YOLOv4中的tricks概念总结——Bag of freebies
YOLOv4中的tricks概念总结——Bag of freebies
741 0
YOLOv4中的tricks概念总结——Bag of freebies

热门文章

最新文章