Python打卡训练营学习记录Day11

现控报告-- 分析倒立摆系统稳定性、能控性及能观性分析,设计PID控制方案(附matlab) 建立直线一级倒立摆系统的动力学模型,推导该系统的运动方程,求出直线一级倒立摆系统传递函数模型及空间状态方程模型。接着描述了PID控制系统设计原理及PID控制器各校正环节的作用,简要叙述了参数的整定方法。设计了直线一级倒立摆摆杆摆角及小车位置常规单回路控制器,通过Simulink仿真知道常规单回路控制器能控制摆杆摆角,不能控制小车位置。于是设计出了直线一级倒立摆双闭环控制器及基于倒立摆系统的状态空间方程控制器,利用软件进行仿真,仿真结果表明,常规双闭环控制方案和基于状态空间方程加控制方案均能对摆杆摆角及小车位 阅读详情

import pandas as pd
import numpy as np
data = pd.read_csv('data.csv')
print(data.head(10).T)
# 筛选离散变量
discretr_features = data.select_dtypes(include=['object']).columns.tolist()
print(discretr_features)
# 对离散特征进行标签编码
mapping = {
    'Home Ownership': {'Own Home': 1,'Rent': 2,'Have Mortgage': 3,'Home Mortgage': 4},
    'Years in current job': {'< 1 year': 1,'1 year': 2,'2 years': 3,'3 years': 4,'4 years': 5,'5 years': 6,'6 years': 7,'7 years': 8,'8 years': 9,'9 years': 10,'10+ years': 11},
    'Term': {'Short Term': 0,'Long Term': 1}
}
for feature, mapping in mapping.items():
    data[feature] = data[feature].map(mapping)
data.rename(columns={'Term': 'Long Term'}, inplace=True) # 重命名列
# Purpose 独热编码,记得需要将bool类型转换为数值
data = pd.get_dummies(data, columns=['Purpose'])
data2 = pd.read_csv("data.csv") # 重新读取数据,用来做列名对比
list_final = [] # 新建一个空列表,用于存放独热编码后新增的特征名
for i in data.columns:
    if i not in data2.columns:
       list_final.append(i) # 这里打印出来的就是独热编码后的特征名
for i in list_final:
    data[i] = data[i].astype(int) # 这里的i就是独热编码后的特征名
# 连续特征用众数补全
continuous_features = data.select_dtypes(include=['int64', 'float64']).columns.tolist()  #把筛选出来的列名转换成列表
for feature in continuous_features:     
    mode_value = data[feature].mode()[0]            #获取该列的众数。
    data[feature].fillna(mode_value, inplace=True)          #用众数填充该列的缺失值,inplace=True表示直接在原数据上修改。
print(data.head(10).T)
# 划分训练集和测试集
from sklearn.model_selection import train_test_split
X = data.drop(['Credit Default'], axis=1)  # 特征,axis=1表示按列删除
y = data['Credit Default'] # 标签
# 按照8:2划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)  # 80%训练集,20%测试集

from sklearn.ensemble import RandomForestClassifier #随机森林分类器

from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score # 用于评估分类器性能的指标
from sklearn.metrics import classification_report, confusion_matrix #用于生成分类报告和混淆矩阵
import warnings #用于忽略警告信息
warnings.filterwarnings("ignore") # 忽略所有警告信息、

# --- 1. 默认参数的随机森林 ---
print("--- 1. 默认参数随机森林 (训练集 -> 测试集) ---")
import time # 这里介绍一个新的库,time库,主要用于时间相关的操作,因为调参需要很长时间,记录下会帮助后人知道大概的时长
start_time = time.time() # 记录开始时间
rf_model = RandomForestClassifier(random_state=42)
rf_model.fit(X_train, y_train) # 在训练集上训练
rf_pred = rf_model.predict(X_test) # 在测试集上预测
end_time = time.time() # 记录结束时间

print(f"训练与预测耗时: {end_time - start_time:.4f} 秒")
print("\n默认随机森林 在测试集上的分类报告:")
print(classification_report(y_test, rf_pred))
print("默认随机森林 在测试集上的混淆矩阵:")
print(confusion_matrix(y_test, rf_pred))

# --- 2. 网格搜索优化随机森林 ---
print("\n--- 2. 网格搜索优化随机森林 (训练集 -> 测试集) ---")
from sklearn.model_selection import GridSearchCV

# 定义要搜索的参数网格
param_grid = {
    'n_estimators': [50, 100, 200],
    'max_depth': [None, 10, 20, 30],
    'min_samples_split': [2, 5, 10],
    'min_samples_leaf': [1, 2, 4]
}

# 创建网格搜索对象
grid_search = GridSearchCV(estimator=RandomForestClassifier(random_state=42), # 随机森林分类器
                           param_grid=param_grid, # 参数网格
                           cv=5, # 5折交叉验证
                           n_jobs=-1, # 使用所有可用的CPU核心进行并行计算
                           scoring='accuracy') # 使用准确率作为评分标准
start_time = time.time()
# 在训练集上进行网格搜索
grid_search.fit(X_train, y_train) # 在训练集上训练,模型实例化和训练的方法都被封装在这个网格搜索对象里了
end_time = time.time()

print(f"网格搜索耗时: {end_time - start_time:.4f} 秒")
print("最佳参数: ", grid_search.best_params_) #best_params_属性返回最佳参数组合

# 使用最佳参数的模型进行预测
best_model = grid_search.best_estimator_ # 获取最佳模型
best_pred = best_model.predict(X_test) # 在测试集上进行预测

print("\n网格搜索优化后的随机森林 在测试集上的分类报告:")
print(classification_report(y_test, best_pred))
print("网格搜索优化后的随机森林 在测试集上的混淆矩阵:")
print(confusion_matrix(y_test, best_pred))

# --- 3. 贝叶斯优化随机森林 ---
print("\n--- 3. 贝叶斯优化随机森林 (训练集 -> 测试集) ---")
from skopt import BayesSearchCV
from skopt.space import Integer
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import classification_report, confusion_matrix
import time

# 定义要搜索的参数空间
search_space = {
    'n_estimators': Integer(50, 200),
    'max_depth': Integer(10, 30),
    'min_samples_split': Integer(2, 10),
    'min_samples_leaf': Integer(1, 4)
}

# 创建贝叶斯优化搜索对象
bayes_search = BayesSearchCV(
    estimator=RandomForestClassifier(random_state=42),
    search_spaces=search_space,
    n_iter=32,  # 迭代次数,可根据需要调整
    cv=5, # 5折交叉验证,这个参数是必须的,不能设置为1,否则就是在训练集上做预测了
    n_jobs=-1,
    scoring='accuracy'
)

start_time = time.time()
# 在训练集上进行贝叶斯优化搜索
bayes_search.fit(X_train, y_train)
end_time = time.time()

print(f"贝叶斯优化耗时: {end_time - start_time:.4f} 秒")
print("最佳参数: ", bayes_search.best_params_)

# 使用最佳参数的模型进行预测
best_model = bayes_search.best_estimator_
best_pred = best_model.predict(X_test)

print("\n贝叶斯优化后的随机森林 在测试集上的分类报告:")
print(classification_report(y_test, best_pred))
print("贝叶斯优化后的随机森林 在测试集上的混淆矩阵:")
print(confusion_matrix(y_test, best_pred))

@浙大疏锦行 

 

超大规模AI集群跨数据中心互联:Scale-Across技术实现与部署实践 分布式系统通过将计算任务分散到多个节点协同执行,实现算力的横向扩展。其核心原理在于网络通信、数据同步和资源调度机制的技术协同。在AI基础设施领域,分布式架构能有效突破单数据中心算力瓶颈,支撑万亿参数大模型训练。特别是面对长距离传输时延和带宽稳定性挑战,需要采用RDMA、确定性网络等关键技术。Scale-Across作为分布式系统的高级形态,通过跨地域多数据中心互联,构建逻辑统一的AI算力池,为超大规模AI训练和全球推理服务提供核心支撑。本文聚焦AI集群跨数据中心互联的技术路径,涵盖全栈优化、网络自治等实践方 阅读详情

相关推荐

从东南大学906被刷到调剂过程(内含个人感想)

介绍了自己在看到初试成绩,到后期复习以及调剂的全过程,当中也包含了自己的复试中的感想,希望大家理性看待。

Philo的博客 2854

python打卡训练营学习记录Day11

贝叶斯优化(2种实现逻辑,以及如何避开必须用交叉验证的问题)随机搜索(简单介绍,非重点 实战中很少用到,可以不了解)time库的计时模块,方便后人查看代码运行时长。

m0_74839150的博客 1099

泛微ecology9二次开发-附件上传接口实战:从表单创建到数据库存储解析

本文详细解析了泛微ecology9二次开发中的附件上传接口实战,从测试环境搭建、数据库表结构解析到接口代码实现,提供了全面的开发指南。重点介绍了文件上传的核心逻辑、常见问题排查及高级应用场景,帮助开发者高效实现附件上传功能并优化系统性能。

weixin_30836759的博客 477

Python打卡训练营学习记录Day36

仔细回顾一下神经网络到目前的内容,没跟上进度的同学补一下进度。

FanfanPyt的博客 1095

刷题单向链表

实现一个数据结构,维护一张表(最初只有一个元素 11)。接下来 qq 行,每行表示一次操作,操作具体间题目描述。a[i] 里面放的是下一个元素,为0代表链表结束。如单链表1->4 -> 2->3->0用数组表示是。对于每个操作 2,输出一个数字,用换行隔开。第一行一个整数 qq 表示操作次数。

power的专栏 1714

PlutoSDR在matlab中的环境配置(包括驱动和硬件支持包)

双击下载到的驱动,除了点击接受协议和设置安装路径,其他只要点击下一步或者安装即可。登录或者注册你的账号,选择你的matlab版本(这里我的是2023b),点击下一步。设置安装路径,并选择我接受,点击下一步,即可安装完成,并在安装路径中得到。完成后,打开设备管理器,在端口和通用串行总线设备一栏,即可看见下图。点击进入,选择相应的系统安装包,这里我选择的Windows。可看到我们要安装的Pluto支持包,安装即可。右击桌面matlab,选择打开文件所在位置。右上角搜索pluto,选择并点击下一步。

weixin_53160338的博客 4864

Python打卡训练营学习记录Day13

【代码】Python打卡训练营学习记录Day13。

FanfanPyt的博客 301

ubuntu-emto-cpa 测试和使用(单核运行)

ubuntu-emto-cpa 测试和使用(单核运行)

qq_45834835的博客 1399

Python打卡训练营学习记录Day14

【代码】Python打卡训练营学习记录Day14。

FanfanPyt的博客 282

UFS总体介绍及FPGA开发

通过实现UFS的主控制器、设备控制器等组件,我们可以在FPGA上进行UFS开发,并实现高速数据传输和低功耗特性的存储解决方案。物理层负责传输物理信号,数据链路层提供数据包的传输和错误检测功能,传输层处理数据包的分段、重组和重传,逻辑层管理设备和主控制器之间的命令和数据传输,文件系统层负责文件管理和数据存储。在本文中,我们将介绍UFS的总体架构和特性,并探讨如何在FPGA上进行UFS开发。这些组件的实现涉及到UFS协议的具体细节和硬件平台的特性,因此需要参考UFS协议规范和FPGA开发平台的相关文档。

PodProgram的博客 2134

27、VXLAN BGP EVPN网络的自动化部署与运维管理

本文深入探讨了VXLAN BGP EVPN网络从初始配置到运维管理的全生命周期自动化流程,涵盖Day-0设备自动上线、Day-0.5增量变更与连接验证、Day-1覆盖服务配置与计算集成,以及Day-2监控与故障排查。详细介绍了推送与拉取两种配置模型、主流工具如Cisco VTS、NFM、DCNM的功能特点,以及开源自动化工具的应用。通过流程图和命令示例,系统展示了MAC/IP学习、BGP通告和VXLAN封装的验证方法,为构建高效、可扩展的数据中心网络提供了全面的技术指导。

banana的博客 78

python打卡训练营打卡记录day11

超参数调整专题1知识点回顾1.网格搜索2.随机搜索(简单介绍,非重点 实战中很少用到,可以不了解)3.贝叶斯优化(2种实现逻辑,以及如何避开必须用交叉验证的问题)4.time库的计时模块,方便后人查看代码运行时长今日作业:对于信贷数据的其他模型,如LightGBM和KNN 尝试用下贝叶斯优化和网格搜索导入数据对离散特征进行编码。

yorushika_的博客 735

RK3588S之CPU--benchmark(一)

本章会基于RK3588S来介绍有关CPU常用的benchmark工具及测试过程

文艺小少年的博客 1498

Python打卡训练营学习记录Day17

【代码】Python打卡训练营学习记录Day17。

FanfanPyt的博客 256

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Python打卡训练营学习记录Day18

【代码】Python打卡训练营学习记录Day18。

FanfanPyt的博客 244

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

python打卡训练营打卡记录day37

一、初始训练阶段分析(20000轮)1. 损失曲线表现训练损失:从约0.60稳步下降至0.46,说明模型在训练集上持续优化。测试损失:从0.58下降至0.47,但下降幅度较小,且在训练后期趋于稳定。关键问题训练损失和测试损失的差距较小(0.46 vs 0.47),表明模型未明显过拟合,但学习能力可能不足。测试损失未进一步下降,可能是模型复杂度过低或数据特征难以捕捉。2. 准确率曲线表现测试准确率:最终稳定在76.93%,未突破77%。关键问题。

yorushika_的博客 949

Python打卡训练营学习记录Day16

array([[ 23, 29, 35], [ 53, 67, 81], [ 83, 105, 127]])不太懂这里怎么得出来的。a @ b.T # 矩阵乘法,3*2的矩阵和2*3的矩阵相乘,得到3*3的矩阵。

FanfanPyt的博客 192

python打卡训练营打卡记录day23

--- 定义不同列的类型和它们对应的预处理步骤 ---# 这些定义是基于原始数据 X 的列类型来确定的# 识别原始的 object 列 (对应你原代码中的 discrete_features 在预处理前)# 识别原始的非 object 列 (通常是数值列)# 有序分类特征 (对应你之前的标签编码)# 注意:OrdinalEncoder默认编码为0, 1, 2... 对应你之前的1, 2, 3...需要在模型解释时注意# 这里的类别顺序需要和你之前映射的顺序一致。

yorushika_的博客 550

python打卡训练营打卡记录day36

损失曲线显示前 5 epoch 快速收敛(从 0.62→0.48),后期缓慢下降,早停避免了冗余计算,符合小模型快速收敛的特性。由于引入了早停机制,训练进度只有29/20000,考虑到训练时间可能过短,所以进行优化。尝试了增加网络深度、平衡类别权重、调整学习率、梯度裁剪、动态早停阈值、添加L2正则化等多种方法,但这些方法无一例外出现训练时间延长,准确率反而下降的问题。对之前的信贷项目,利用神经网络训练下,尝试用到目前的知识点让代码更加规范和美观。这说明在深度学习中,

yorushika_的博客 716

Python训练营打卡DAY11

DAY11超参数调整专题1知识点回顾网格搜索随机搜索(简单介绍,非重点 实战中很少用到,可以不了解)贝叶斯优化(2种实现逻辑,以及如何避开必须用交叉验证的问题)time库的计时模块,方便后人查看代码运行时长今日作业:对于信贷数据的其他模型,如LightGBM和KNN 尝试用下贝叶斯优化和网格搜索常规预处理划分训练集和测试集(若要划分训练集,验证集和测试集就划分两次)默认参数的随机森林网格搜索优化超参数刚开始将n_jobs设置为了1,结果跑了十几分钟还报错了贝叶斯优化。

weixin_66461160的博客 404

python打卡训练营打卡记录day17

实际在论文中聚类的策略不一定是针对所有特征,可以针对其中几个可以解释的特征进行聚类,得到聚类后的类别,这样后续进行解释也更加符合逻辑。DBSCAN 的参数是 eps 和min_samples,选完他们出现k和评估指标。除了经典的评估指标,还需要关注聚类出来每个簇对应的样本个数,避免太少没有意义。2.聚类常见算法:kmeans聚类、dbscan聚类、层次聚类。KMeans 和层次聚类的参数是K值,选完k指标就确定。以及层次聚类的 linkage准则等都需要仔细调优。2.选择合适的算法,根据评估指标调参()

yorushika_的博客 721

Python 打卡训练营Day7

心脏病项目的数据集来完成数据的预处理。

2501_91325156的博客 305

Python训练营打卡Day11

今天代码有点多,我主要参考了复试班的源代码,复习了一遍。自己一点点敲还是记不住。需要拿出一大段时间来专心学习一下了。对于信贷数据的其他模型,如LightGBM和KNN 尝试用下贝叶斯优化和网格搜索。做这一步之前需要对数据进行预处理,并导入需要的模型,对LightGBM要采用网格搜索的话也是类似。接下来开始尝试不同的模型。贝叶斯优化和网格搜索。

y10212104的博客 245

python打卡训练营打卡记录day6

内容回顾:1.单特征可视化:连续变量箱线图(还说了核密度直方图)、离散特征直方图2.特征和标签关系可视化3.箱线图美化--->直方图作业:去针对其他特征绘制单特征图和特征和标签的关系图,并且试图观察出一些有意思的结论。

yorushika_的博客 213

60天python训练营打卡day11

3.贝叶斯优化(2种实现逻辑,以及如何避开必须用交叉验证的问题)2.随机搜索(简单介绍,非重点 实战中很少用到,可以不了解)4.time库的计时模块,方便后人查看代码运行时长。DAY 11 常见的调参方式。

extan的博客 265

python打卡训练营打卡记录day18

稳定性:前 5 大特征保持一致(仅顺序变化),说明模型的核心判别逻辑未变,聚类特征更多是对原始特征的 “再组织” 而非引入全新信息。AUC 的提升:说明聚类特征增强了模型对正负样本的排序能力,尤其在阈值敏感场景(如需要调整决策边界)中可能更稳健。exang:部分人群出现运动诱发心绞痛(exang=1 有一定比例),心脏对运动的反应存在个体差异。thalach:最大心率相对较低,集中在 80–140 区间,表明心脏在运动中的负荷较低。定义:该簇人群心脏健康风险高,可能存在较严重的心脏病变,需及时医学干预。

yorushika_的博客 1638

python打卡训练营学习记录Day14

尝试确定一下shap各个绘图函数对于每一个参数的尺寸要求,如shap.force_plot力图中的数据需要满足什么形状?确定分类问题和回归问题的数据如何才能满足尺寸,分类采取信贷数据集,回归采取单车数据集。今日作业偏思考类型,有一定难度。参考上述文档补全剩余的几个图。

m0_74839150的博客 205
上一篇: Python打卡训练营学习记录Day10
下一篇: Python打卡训练营学习记录Day12
FanfanPyt
博客等级 码龄2年 82粉丝 50原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值