当前位置: 首页 > news >正文

5.15 学习日志

1.SST(总平方和)、SSR(回归平方和)、SSE(残差平方和)之间的关系。 

在使用线性回归模型时,经常提到的统计量MSE(Mean Squared Error、均方误差):是 SSE 的平均值,也就是每个样本的平均误差平方。 

R²(R square、决定系数) 是衡量回归模型预测效果的一个统计量,反映的是 模型解释了因变量变化的比例

------------------------------------------------------------------------------------------------------------------------------- 

2.python中和统计相关的库。

 (1)sklearn是比较初级的用于传统机器学习的库,常见的用法包括下面的线性回归模型:

from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error# 输入数据
x = [[1], [2], [3], [4]]
y = [2, 4, 6, 8]model = LinearRegression()
model.fit(x, y)
pred = model.predict([[5]])
print("预测结果:", pred)

还有以下其他的回归模型:

sklearn的代码套路为:用from--import从sklearn库里面导出相应统计模型,然后把这个模型设置给model,也就是令model=****,****为sklearn导入出来的,可以加上适当参数,然后把这个模型和数据进行fit,然后模型就跑好了,可以拿这个模型进行之后的操作,比如预测(predict)什么的。

 (2) tensorflow和keras是常用的深度学习要用到的库,Keras 是 TensorFlow 的高层 API,Keras 是为人设计的,TensorFlow 是为机器设计的,那我们就先研究keras。

比如我之前学习的lstm模型,就是用的keras,比如下面:

from keras.models import Sequential        
from keras.layers import Dense, SimpleRNN  # 引入层相关,输出层与 RNN 层model = Sequential() # 创建实例
model.add(SimpleRNN(units=5, input_shape=(time_step, 1), activation='relu')) # RNN 层
model.add(Dense(units=1, activation='linear')) # 输出层,回归任务直接使用 linear 激活函数
model.compile(optimizer='adam', loss='mean_squared_error') # 回归使用mse评测
model.summary() 

 keras.models 是 Keras 中用于构建模型的模块,里面主要包括:

Sequential 是 Keras 中最常用的模型类型,适合像积木一样一层接一层地堆叠。

keras.layers 是神经网络的构建模块库,里面包含了各种层(Layer)类型,如:

keras的代码套路为用from--import加载出keras的models和layers,models用于构建模型,layers则是一些常用层。

先用keras从models导出的模型令为model,然后再在model上加上layers的层,相当于比sklearn多了一个加层的概念。

就像上面的代码一样,模型的结构为:输入 -> SimpleRNN层 -> Dense层 -> 输出。

这里还要多一步用compile编译模型,编译好就可以像sklearn一样带入数据进行fit了。

然后把fit好的模型拿去之后的操作,比如predict。

(3)statsmodels 是一个用于统计建模、推断和数据探索的 Python 库。它提供了大量的统计模型和检验工具,强调的是:

  • 模型的可解释性(输出 p 值、置信区间等)

  • 统计检验完整性(如 F 检验、t 检验、DW 检验等)

  • 拟合结果的详细描述(如 R²、调整 R²、AIC、BIC)

 以下是statmodels的常见用法

import statsmodels.api as sm
import numpy as np# 输入数据
x = np.array([1, 2, 3, 4, 5])
y = np.array([2, 4, 5, 4, 5])# 添加常数项(截距)
x = sm.add_constant(x)# 拟合 OLS(普通最小二乘)模型
model = sm.OLS(y, x).fit()# 输出结果摘要
print(model.summary())# 其中model = sm.OLS(y, x).fit()可以看成:# ols_model = sm.OLS(y, x)   
# 创建模型对象(未训练),我要用这些 x 去拟合这些 y,用 OLS(最小二乘法)做线性回归。# model = ols_model.fit()   # 用样本数据拟合参数(训练模型)

这里sm.add_constant()提醒这个模型要提供截距项。 

statsmodels适用于统计分析与回归建模,优点是精细统计结果、适合科研,缺点是不适合复杂深度模型。

值得注意的是,statsmodels的普通最小二乘模型和sklearn的线性回归模型作用一样,也就是说sklearn的线性回归也是用的最小二乘法,得到的模型一致,statsmodels会提供更多有用的统计量。

还有一点值得注意,区别于sklearn的model.fit(x,y)把数据放在fit()里面,即sklearn 的风格是先创建模型(不带数据),然后调用 .fit(X, y) 训练

statsmodels 的风格是:在创建模型那一刻就把数据给进去,.fit() 只负责参数求解。

(4)numpy和pandas更像是为了前面三个库,为更高级的统计建模或者机器学习提供数据准备,可以用来预处理数据,得到整理好的数据,用于之后的操作。

------------------------------------------------------------------------------------------------------------------------------

3.cnn、rnn、lstm的区别和联系

CNN(Convolutional Neural Network,卷积神经网络):适用于图像、语音识别、视频、局部模式识别(也可用于文本)

RNN(Recurrent Neural Network,循环神经网络):适用于序列数据(时间序列、语音、文本、传感器数据等),当前的输出不仅取决于当前输入,还依赖于上一个时间点的状态,容易“遗忘”较远的信息(梯度消失),不适合很长的序列。

LSTM(Long Short-Term Memory,长短期记忆网络):适用于长序列学习任务(如自然语言处理、语音识别、股价预测等),RNN 的改进版本,引入“门结构(gate)”来控制记忆的保留和遗忘。

RNN比普通的单层结构(由x到y)多出一个h(hidden state隐状态)。

LSTM 通过引入细胞状态和门控机制(遗忘门、输入门和输出门),实现了信息的线性传递,避免了多次非线性激活导致的梯度消失。

-----------------------------------------------------------------------------------------------------------------------

4.假设检验
假设检验是一种统计方法,用于根据样本数据判断一个假设是否成立。其流程包括:提出原假设(H₀)和备择假设(H₁)、设定显著性水平(α),然后通过样本数据计算统计量和p值。如果p值小于α,则拒绝原假设,认为存在显著差异;否则接受原假设。

常见的检验类型有Z检验、t检验、卡方检验等。假设检验广泛用于验证两组数据是否有显著差异,帮助做出基于数据的推断。

主要步骤
提出假设:确定原假设(H₀)和备择假设(H₁),如“没有差异”和“有差异”。
设定显著性水平(α):通常设定为0.05或0.01,表示可容忍的最大错误概率。
计算检验统计量:通过样本数据计算统计量(如t值、z值)并得到p值。
作出决策:若p值小于设定的α,拒绝原假设,认为数据有显著差异;否则,接受原假设。

这体现出“疑罪从无“原则,除非你有显著的原因(统计量小于显著性水平)证明被告有罪(接受备择假设),不然就认定被告无罪(接受原假设)。

5.自然语言处理(NLP, Natural Language Processing

NLP自然语言处理是让计算机读懂人类语言、并做出有用反应的技术,核心包括文本理解 + 信息提取 + 智能决策

-----------------------------------------------------------------------------------------------------------------------

6 .爬虫

爬虫(Web Crawler 或 Spider)是一种自动化程序,用来模拟人访问网页并获取网页数据,比如文本、图片、视频、表格等。

URL(Universal Resource Locator)统一资源定位符

HTTP(Hypertext Transfer Protocol)超文本传输协议

网页通常由三部分组成(HTML骨架、CSS皮肤、JavaScript肌肉)

cookie(客户端)、session(服务器端)。

代理服务器和VPN

区分被墙网站和境外网站,境外网站不一定被墙,举例介绍:

 下面是我用的梯子clash的介绍,一般有三个模式:

最常用的还是规则模式,作用和原理如下:

对于境外网站和被墙网站,还有一点说法,也就是“规则代理”的原理:

http://www.xdnf.cn/news/505891.html

相关文章:

  • Java 面向对象详解和JVM底层内存分析
  • 图表制作-基础雷达图
  • 代码随想录算法训练营第60期第三十九天打卡
  • 2025.5.17 字符串hash
  • 如何利用Redis实现延迟队列?
  • 【leetcode】2900. 最长相邻不相等子序列 I
  • 数据库索引优化:如何平衡查询与写入性能
  • 劳特巴赫trace32烧录方法
  • 【Linux网络】ARP协议
  • 使用Pinia持久化插件-persist解决刷新浏览器后数据丢失的问题
  • 使用python进行船舶轨迹跟踪
  • 编译原理7~9
  • 【Element UI】表单及其验证规则详细
  • python运算符
  • python训练营打卡第26天
  • Go语言 Gin框架 使用指南
  • js中不同循环的使用以及结束循环方法
  • 两个电机由同一个控制器控制,其中一个电机发生堵转时,另一个电机的电流会变大,是发生了倒灌现象吗?电流倒灌产生的机理是什么?
  • Gartner《How to Leverage Lakehouse Design in Your DataStrategy》学习心得
  • SAP HCM 0008数据存储逻辑
  • 《棒球万事通》球类运动有哪些项目·棒球1号位
  • c++ 运算符重载
  • 16 C 语言布尔类型与 sizeof 运算符详解:布尔类型的三种声明方式、执行时间、赋值规则
  • qt6 c++操作qtableview和yaml
  • 使用 CodeBuddy 开发一款富交互的屏幕录制与注释分享工具开发纪实
  • C语言查漏补缺
  • Codeforces Round 1024 (Div.2)
  • 【C/C++】C++返回值优化:RVO与NRVO全解析
  • 安全性(三):信息安全的五要素及其含义
  • Python-92:最大乘积区间问题