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

北京自己怎样做网站全部视频支持代表手机浏览器

北京自己怎样做网站,全部视频支持代表手机浏览器,东莞保安公司投诉电话,ps软件下载安装浙大疏锦行 DAY 31 文件的规范拆分和写法 知识点回顾 1. 规范的文件命名 2. 规范的文件夹管理 3. 机器学习项目的拆分 4. 编码格式和类型注解 作业:尝试针对之前的心脏病项目,准备拆分的项目文件,思考下哪些部分可以未来复用。 预处理&am…
@浙大疏锦行
DAY 31 文件的规范拆分和写法

知识点回顾

1.  规范的文件命名

2.  规范的文件夹管理

3.  机器学习项目的拆分

4.  编码格式和类型注解

作业:尝试针对之前的心脏病项目,准备拆分的项目文件,思考下哪些部分可以未来复用。

预处理:

import pandas as pd
import numpy as np
from typing import Tuple, Dictdef load_data(file_path: str) -> pd.DataFrame:"""加载数据文件Args:file_path: 数据文件路径Returns:加载的数据框"""return pd.read_csv(file_path)def handle_missing_values(data: pd.DataFrame) -> pd.DataFrame:"""处理缺失值Args:data: 包含缺失值的数据框Returns:处理后的数据框"""data_clean = data.copy()continuous_features = data.select_dtypes(include=['int64', 'float64']).columns.tolist()for feature in continuous_features:mode_value = data[feature].mode()[0]data_clean[feature].fillna(mode_value, inplace=True)return data_cleanif __name__ == "__main__":# 测试代码data = load_data(r"C:\Users\wangzhikai\Desktop\python60-days-challenge-master\day31练习\data\raw\heart.csv")data_clean = handle_missing_values(data)print("数据预处理完成!") 

训练:

# -*- coding: utf-8 -*-import sys
import os
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import classification_report, confusion_matrix
import time
import joblib # 用于保存模型
from typing import Tuple # 用于类型注解from data.preprocessing import load_data,handle_missing_valuesdef prepare_data() -> Tuple:"""准备训练数据Returns:训练集和测试集的特征和标签"""# 加载和预处理数据data = load_data(r"C:\Users\wangzhikai\Desktop\python60-days-challenge-master\day31练习\data\raw\heart.csv")data_clean = handle_missing_values(data)# 分离特征和标签X = data_clean.drop(['target'], axis=1)y = data_clean['target']# 划分训练集和测试集X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)return X_train, X_test, y_train, y_testdef train_model(X_train, y_train, model_params=None) -> RandomForestClassifier:"""训练随机森林模型Args:X_train: 训练特征y_train: 训练标签model_params: 模型参数字典Returns:训练好的模型"""if model_params is None:model_params = {'random_state': 42}model = RandomForestClassifier(**model_params)model.fit(X_train, y_train)return modeldef evaluate_model(model, X_test, y_test) -> None:"""评估模型性能Args:model: 训练好的模型X_test: 测试特征y_test: 测试标签"""y_pred = model.predict(X_test)print("\n分类报告:")print(classification_report(y_test, y_pred))print("\n混淆矩阵:")print(confusion_matrix(y_test, y_pred))def save_model(model, model_path: str) -> None:"""保存模型Args:model: 训练好的模型model_path: 模型保存路径"""os.makedirs(os.path.dirname(model_path), exist_ok=True)joblib.dump(model, model_path)print(f"\n模型已保存至: {model_path}")if __name__ == "__main__":# 准备数据X_train, X_test, y_train, y_test = prepare_data()# 记录开始时间start_time = time.time()# 训练模型model = train_model(X_train, y_train)# 记录结束时间end_time = time.time()print(f"\n训练耗时: {end_time - start_time:.4f} 秒")# 评估模型evaluate_model(model, X_test, y_test)# 保存模型save_model(model, "models/random_forest_model.joblib") 

可视化:

import matplotlib.pyplot as plt
import seaborn as sns
import shap
import numpy as np
from typing import Anydef plot_feature_importance_shap(model: Any, X_test, save_path: str = None) -> None:"""绘制SHAP特征重要性图Args:model: 训练好的模型X_test: 测试数据save_path: 图片保存路径"""# 初始化SHAP解释器explainer = shap.TreeExplainer(model)shap_values = explainer.shap_values(X_test)# 绘制特征重要性条形图plt.figure(figsize=(12, 8))shap.summary_plot(shap_values[:, :, 0], X_test, plot_type="bar", show=False)plt.title("SHAP特征重要性")if save_path:plt.savefig(save_path)print(f"特征重要性图已保存至: {save_path}")plt.show()def plot_confusion_matrix(y_true, y_pred, save_path: str = None) -> None:"""绘制混淆矩阵热力图Args:y_true: 真实标签y_pred: 预测标签save_path: 图片保存路径"""plt.figure(figsize=(8, 6))cm = confusion_matrix(y_true, y_pred)sns.heatmap(cm, annot=True, fmt='d', cmap='Blues')plt.title('混淆矩阵')plt.ylabel('真实标签')plt.xlabel('预测标签')if save_path:plt.savefig(save_path)print(f"混淆矩阵图已保存至: {save_path}")plt.show()def set_plot_style():"""设置绘图样式"""plt.style.use('seaborn')plt.rcParams['font.sans-serif'] = ['SimHei']plt.rcParams['axes.unicode_minus'] = Falseif __name__ == "__main__":# 设置绘图样式set_plot_style()# 这里可以添加测试代码print("可视化模块加载成功!") 
http://www.dtcms.com/wzjs/195087.html

相关文章:

  • 自贡企业网站国内免费域名注册
  • 网站上怎么做星星评分成都seo培训
  • 外贸网站建设规划手机优化专家下载
  • 个人网站建设价格表网络营销有几种方式
  • 大学生做兼职上什么网站好seo优化有百度系和什么
  • 免费学校网站管理系统排行榜
  • 织梦dede新闻网站源码手机站营销推广是干什么的
  • 绍兴做网站公司哪家好注册公司
  • 建设网站就选用什么样的公司抖音流量推广神器软件
  • 如何做微信网站上海百度推广排名优化
  • 坂田网站建设方案厦门seo培训
  • 自己建网站难吗最近一周的新闻热点事件
  • ASP做旅游网站代码网络营销的企业有哪些
  • 做网站要多大空间外贸网站设计
  • 工作时做网站使用软件数字营销平台有哪些
  • 要如何自己创建一个网站英文网站建设
  • 凉山建设机械网站培训机构网站制作
  • php大型网站开发优化大师是什么
  • 深圳网站建设黄浦网络-技术差广州疫情最新数据
  • 科技公司做网站怎么样推广最有效最快速
  • 做安居客网站需要什么浏览器网络项目推广平台
  • 西安营销型网站建设动力无限宁波seo服务推广
  • 专业建设网站制作搜狗seo排名软件
  • 焞煌网站怎么做服装市场调研报告
  • 积极做好门户网站建设工作百度一下你就知道官方
  • 泰国做企业网站专业软文代写
  • 装饰网站建设方案百度免费下载安装百度
  • 网站原型图软件企业宣传片视频
  • 医院网站建设方案招标文件google推广
  • wordpress5.0版本恢复到旧版本网站优化是什么意思