線形回帰(Linear Regression)

線形回帰(Linear Regression)は、統計学において、1つまたは複数の説明変数とスカラー応答との間の線形関係をモデル化する手法です。以下に線形回帰の主要な特徴と概念をまとめます。 線形回帰の特徴 モデルの基本概念 線形回帰は、データポイントの集まりに対して直線をフィッティングし、その直線の方程式を用いて予測を行います。 単回帰と重回帰 単回帰: 1つの説明変数を用いた回帰分析。 重回帰: 複数の説明変数を用いた回帰分析。 目的関数 最小二乗法を用いて、実際のデータとモデルが予測する値との誤差を最小化します。 仮定 説明変数と応答変数の関係が線形であること。 誤差項は独立で、同じ分散を持つ(等分散性)。 誤差項は正規分布に従う。 評価指標 決定係数(R²): モデルの説明力を示す指標。 残差分析: モデルの適合度を評価するために残差を分析します。 線形回帰の利点と欠点 利点: モデルが単純で解釈しやすい。 計算が比較的容易で、実装が簡単。 欠点: 線形性の仮定が成り立たない場合、モデルの性能が低下する。 外れ値に敏感で、影響を受けやすい。 線形回帰の応用 経済学、医療、工学など、さまざまな分野での予測や分析に利用されます。 例えば、売上予測、リスク評価、マーケティング戦略の効果測定など。 このように、線形回帰はデータ分析や予測において広く使用される手法であり、基本的な統計モデルの一つです。 Linear Regressiion 总结: 线性回归是一种基本的统计方法,用于建模因变量(也称为响应变量)与一个或多个自变量(也称为预测变量)之间的关系。它的目标是找到通过数据点的最佳拟合直线,从而根据自变量的值预测因变量的值。最简单的形式是直线方程 y=mx+b,其中 y 是因变量,x 是自变量,m 是斜率,b 是截距。 Linear regression is a basic statistical method used to model the relationship between a dependent variable and one or more independent variables. It aims to find the best-fitting straight line through a set of data points, predicting the dependent variable based on the values of the independent variables....

十二月 3, 2024 · 1 分钟 · 136 字 · Me

深度学习算法要点

机器学习算法分类 分类 工作机制 算法 监督式学习 这个算法由一个目标变量或结果变量(或因变量)组成。这些变量由已知的一系列预示变量(自变量)预测而来。利用这一系列变量,我们生成一个将输入值映射到期望输出值的函数。这个训练过程会一直持续,直到模型在训练数据上获得期望的精确度 回归、决策树、随机森林、K – 近邻算法、逻辑回归 非监督式学习 在这个算法中,没有任何目标变量或结果变量要预测或估计。这个算法用在不同的组内聚类分析。这种分析方式被广泛地用来细分客户,根据干预的方式分为不同的用户组 关联算法、K – 均值算法 强化学习 这个算法训练机器进行决策。它是这样工作的:机器被放在一个能让它通过反复试错来训练自己的环境中。机器从过去的经验中进行学习,并且尝试利用了解最透彻的知识作出精确的商业判断 马尔可夫决策过程 [[Linear Regression]] [[Logistic Regression]] [[Decision Trees]] [[Support Vector Machines (SVM)]] [[Naive Bayes]] [[K-Nearest Neighbors (KNN)]] [[K-Means Clustering]] [[Random Forests]] [[Dimensionality Reduction]] [[Gradient Boosting & AdaBoost]]

七月 29, 2024 · 1 分钟 · 42 字 · Me

深度学习算法要点

机器学习算法分类 分类 工作机制 算法 监督式学习 这个算法由一个目标变量或结果变量(或因变量)组成。这些变量由已知的一系列预示变量(自变量)预测而来。利用这一系列变量,我们生成一个将输入值映射到期望输出值的函数。这个训练过程会一直持续,直到模型在训练数据上获得期望的精确度 回归、决策树、随机森林、K – 近邻算法、逻辑回归 非监督式学习 在这个算法中,没有任何目标变量或结果变量要预测或估计。这个算法用在不同的组内聚类分析。这种分析方式被广泛地用来细分客户,根据干预的方式分为不同的用户组 关联算法、K – 均值算法 强化学习 这个算法训练机器进行决策。它是这样工作的:机器被放在一个能让它通过反复试错来训练自己的环境中。机器从过去的经验中进行学习,并且尝试利用了解最透彻的知识作出精确的商业判断 马尔可夫决策过程 Linear Regression Logistic Regression Decision Trees Support Vector Machines (SVM) Naive Bayes K-Nearest Neighbors (KNN) K-Means Clustering Random Forests Dimensionality Reduction Gradient Boosting & AdaBoost

七月 29, 2024 · 1 分钟 · 42 字 · Me

go 语言使用xo生成数据库表结构体

xo 是一个 Go 工具,用于生成从数据库表到 Go 结构体的代码。它可以自动为表生成对应的结构体和方法,并支持许多自定义选项。 安装 xo 工具 go install github.com/xo/xo@latest 配置 xo 生成代码 xo 工具提供了多种选项来生成代码,包括指定表、数据库连接和字段标签格式。你可以通过命令行参数来指定这些选项。 示例命令 假设你有一个 PostgreSQL 数据库,并且你只想生成名为 notifications 表的结构体,且字段注释格式为 json:"field_name",可以使用以下命令: xo --json tags \ --schema public \ --no-recurse \ --only notifications \ -o ./models \ postgres://username:password@localhost:5432/database_name 命令说明 --json tags:生成 JSON 标签。xo 支持多种标签格式,包括 json:"field_name"。 --schema public:指定数据库模式(schema)。默认为 public。 --no-recurse:防止递归生成所有表。如果只指定了 --only,可以省略。 --only notifications:只生成 notifications 表的结构体。 -o ./models:指定生成的代码目录。 postgres://username:password@localhost:5432/database_name:数据库连接字符串。

七月 19, 2024 · 1 分钟 · 59 字 · Me

通知和发信的架构演进

更加通用和可扩展的设计方案,包括架构图、详细说明和核心代码。 架构图 ┌─────────────┐ ┌─────────────────────────────────────┐ │ Client │◄────┤ Chi Router (HTTP + SSE Endpoints) │ └─────────────┘ └───────────────────┬─────────────────┘ │ ┌───────────────────▼─────────────────┐ │ Go Application Logic │ │ ┌────────────────────────────────┐ │ │ │ Event Trigger (e.g. Comment)│ │ │ └────────────────┬───────────────┘ │ │ ┌────────────────▼───────────────┐ │ │ │ Notification Queue Handler │ │ │ └────────────────┬───────────────┘ │ │ ┌────────────────▼───────────────┐ │ │ │ Notification Processor (Timer) │ │ │ └────────────────┬───────────────┘ │ └───────────────────┬─────────────────┘ │ ┌─────────────────────────┼─────────────────────────┐ │ │ │ ┌─────────▼─────────┐ ┌─────────▼─────────┐ ┌─────────▼─────────┐ │ PostgreSQL DB │ │ Notification │ │ Configuration │ │ (Bun ORM) │ │ Services │ │ Manager │ └───────────────────┘ │ - Email │ └───────────────────┘ │ - SSE │ │ - Push │ └───────────────────┘ 详细说明 Client: 用户界面或其他服务,与系统交互。 Chi Router: 处理 HTTP 请求和 SSE 连接。 Go Application Logic: Event Trigger: 处理触发通知的事件(如评论创建)。 Notification Queue Handler: 将通知添加到队列中。 Notification Processor: 定时处理队列中的通知。 PostgreSQL DB: 使用 Bun ORM 存储应用数据和通知队列。 Notification Services: 实现不同类型的通知发送(邮件、SSE、推送等)。 使用接口设计,便于添加新的通知类型。 Configuration Manager: 管理通知渠道的配置。 允许动态调整通知行为。 核心代码 数据模型 // models....

七月 19, 2024 · 4 分钟 · 717 字 · Me

针对报告的评论的邮件和在线消息通知系统设计

目的: 实现一个评论系统,允许用户对报告进行评论。 当新评论创建时,生成通知并存储到队列中。 通过邮件和实时 SSE 向相关用户发送通知。 确保通知系统的可静性、实时性和可扩展性。 处理用户在线/离线状态,确保通知能够及时送达在线用户。 设计说明: 数据模型:使用 PostgreSQL 数据库,通过 Bun ORM 进行数据操作。 Web 框架:使用 Chi 作为 HTTP 路由器。 通知机制:实现了一个基于队列的通知系统,支持邮件和 SSE 实时通知。 异步处理:使用 Go 协程处理通知,避免阻塞主请求。 实时通信:使用 Server-Sent Events (SSE) 实现实时通知。 会话管理:实现了基本的用户认证和会话跟踪机制。 架构图: ![[Pasted image 20240719115045.png]] 详细说明: 数据模型: 使用 Bun ORM 定义 Comment, Report, User, 和 NotificationQueue 模型。 NotificationQueue 用于存储待处理的通知。 评论创建与通知触发: 使用 Chi 中间件在评论创建后触发通知处理。 通知处理器将通知信息插入 NotificationQueue。 通知处理: 定时任务定期检查 NotificationQueue,处理待发送的通知。 对于邮件通知,直接发送邮件。 对于 SSE 通知,检查用户是否在线,如果在线则发送,否则保持待发送状态。 SSE 实现: 为每个在线用户维护一个 SSE 连接。 实现用户认证,确保只有登录用户可以建立 SSE 连接。 使用心跳机制保持连接活跃,并跟踪用户活动状态。 定期清理不活跃的连接。 会话管理: 实现基本的用户认证机制。 使用内存映射跟踪用户会话和最后活动时间。 详细代码: 数据模型 (models....

七月 19, 2024 · 6 分钟 · 1076 字 · Me

go 语言使用chi和bun实现sse消息推送

初始化模块 cd test go mod init jinsse 安装xo并生成model go install github.com/xo/xo@latest xo schema "postgres://myuser:mypassword@localhost:5432/shimazu?sslmode=disable" -o internal/models ls internal/models db.go文件:internal/db/dg.go package db import ( "database/sql" "github.com/uptrace/bun" "github.com/uptrace/bun/dialect/pgdialect" "github.com/uptrace/bun/driver/pgdriver" ) func SetupDatabase() *bun.DB { dsn := "postgres://myuser:mypassword@localhost:5432/shimazu?sslmode=disable" sqldb := sql.OpenDB(pgdriver.NewConnector(pgdriver.WithDSN(dsn))) db := bun.NewDB(sqldb, pgdialect.New()) return db } main.go文件: package main import ( “context” “encoding/json” “fmt” “log” “net/http” “strconv” “time” "github.com/go-chi/chi" "github.com/go-chi/chi/middleware" "github.com/go-chi/cors" "github.com/uptrace/bun" . "sse/internal/db" . "sse/internal/models" ) func streamComments(w http.ResponseWriter, r *http....

七月 18, 2024 · 7 分钟 · 1298 字 · Me

初始化和管理 Go 项目

按照以下步骤来初始化和管理 Go 项目: 初始化模块: 在你的项目目录中打开终端,运行以下命令来初始化一个新的 Go 模块: go mod init your_project_name 这里的 `your_project_name` 通常是你项目的名称或者仓库路径(如 github.com/yourusername/projectname)。 2. 编辑 main.go: 确保你的 main.go 文件包含了正确的包声明和必要的导入:go ```go package main import ( "fmt" // 其他需要的包 ) func main() { // 你的代码 } 添加依赖(如果需要): 如果你的 main.go 使用了任何外部包,你可以直接在代码中导入它们。 然后运行: go mod tidy 这个命令会自动下载必要的依赖,并更新 go.mod 文件。 运行程序: 现在你可以直接运行你的程序: go run main.go 构建程序(可选): 如果你想构建一个可执行文件,可以运行: go build

七月 17, 2024 · 1 分钟 · 56 字 · Me

使用 GraphJin 的步骤

使用 GraphJin 的步骤 安装 GraphJin: go get github.com/dosco/graphjin 配置 GraphJin: 创建一个 config.yaml 文件,配置数据库连接等信息。 config.yaml # config.yaml app_name: "test graphql" host_port: 0.0.0.0:18081 port: 18081 web_ui: true database: type: postgres host: localhost port: 5432 dbname: graphjin_development user: postgres password: postgres queries: path: "./queries" allow_sql: true allow_list: queries: - GetReports - GetProjects - GetUser # Log levels: debug, error, warn, info log_level: "debug" # Log formats: json, plain log_format: "json" 启动 GraphJin:GraphQL Editor http://localhost:18081/?...

七月 17, 2024 · 1 分钟 · 154 字 · Me

以下是矩阵算法的总结大纲: 矩阵的基本运算 矩阵加法和减法 矩阵乘法 矩阵转置 特殊矩阵 单位矩阵 对角矩阵 三角矩阵 对称矩阵 矩阵的行列式 行列式的定义和性质 行列式的计算方法 矩阵的逆 逆矩阵的定义 逆矩阵的计算方法 伴随矩阵法 初等变换法 矩阵分解 LU分解 QR分解 特征值分解 奇异值分解(SVD) 线性方程组求解 高斯消元法 LU分解法 迭代法(Jacobi迭代、Gauss-Seidel迭代) 特征值和特征向量 特征值和特征向量的定义 特征值的计算方法 幂法 QR算法 矩阵应用 最小二乘法 主成分分析(PCA) 图像压缩 网页排序(PageRank) 算法类别 主要算法 应用场景 基本运算 加减乘、转置 数据处理、图形变换 求逆 伴随矩阵法、初等变换法 线性方程组求解、数据分析 分解 LU分解、QR分解、SVD 方程求解、数据压缩、特征提取 特征值计算 幂法、QR算法 主成分分析、振动分析 线性方程组求解 高斯消元、迭代法 工程计算、经济模型 优化 最小二乘法 数据拟合、信号处理 这个总结涵盖了矩阵算法的主要方面,包括基本运算、特殊矩阵、行列式、矩阵求逆、分解、特征值计算等,以及它们在实际中的应用。表格则简明地列出了各类算法及其应用场景,方便快速参考。 用LaTeX写法展示一些常见的算法公式: 矩阵乘法: $$ \begin{bmatrix} a & b \ c & d \end{bmatrix} \times \begin{bmatrix} e & f \ g & h \end{bmatrix} = \begin{bmatrix} ae+bg & af+bh \ ce+dg & cf+dh \end{bmatrix} $$...

2 分钟 · 265 字 · Me