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

孝感新闻门户网站西安网站关键词优化费用

孝感新闻门户网站,西安网站关键词优化费用,湖北山河建设集团网站,go语言可以做网站吗目录 一、环境准备 二、数据加载与探索 三、数据预处理 四、决策树模型构建 五、模型可视化(生成决策树结构图) 六、模型预测与评估 七、超参数调优(网格搜索) 八、关键知识点解析 九、完整项目开发流程 十、常见问题解…

目录

一、环境准备

二、数据加载与探索

三、数据预处理

四、决策树模型构建

五、模型可视化(生成决策树结构图)

六、模型预测与评估

七、超参数调优(网格搜索)

八、关键知识点解析

九、完整项目开发流程

十、常见问题解决方案


一、环境准备
# 安装必要库
pip install scikit-learn pandas matplotlib graphviz pydotplus
二、数据加载与探索
import pandas as pd
from sklearn.datasets import load_iris# 加载鸢尾花数据集
iris = load_iris()
df = pd.DataFrame(iris.data, columns=iris.feature_names)
df['target'] = iris.target# 查看数据基本信息
print(f"数据维度: {df.shape}")
print("\n前5行数据:")
print(df.head())
print("\n类别分布:")
print(df['target'].value_counts())

三、数据预处理
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler# 特征工程
X = df.iloc[:, :-1]
y = df['target']# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 标准化处理
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)  # 注意:使用训练集的scaler
四、决策树模型构建
from sklearn.tree import DecisionTreeClassifier# 初始化决策树分类器
dt_clf = DecisionTreeClassifier(criterion='gini',       # 分裂标准(基尼系数)max_depth=3,            # 树的最大深度min_samples_split=2,    # 节点分裂最小样本数random_state=42
)# 模型训练
dt_clf.fit(X_train_scaled, y_train)

五、模型可视化(生成决策树结构图)
from sklearn.tree import export_graphviz
import pydotplus
from IPython.display import Image# 导出决策树为DOT格式
dot_data = export_graphviz(dt_clf,out_file=None,feature_names=iris.feature_names,class_names=iris.target_names,filled=True,rounded=True,special_characters=True
)# 生成可视化图形
graph = pydotplus.graph_from_dot_data(dot_data)
Image(graph.create_png())  # 在Jupyter中显示图片

六、模型预测与评估
from sklearn.metrics import accuracy_score, confusion_matrix, classification_report# 预测测试集
y_pred = dt_clf.predict(X_test_scaled)# 评估指标
print(f"准确率: {accuracy_score(y_test, y_pred):.2f}")
print("\n混淆矩阵:")
print(confusion_matrix(y_test, y_pred))
print("\n分类报告:")
print(classification_report(y_test, y_pred, target_names=iris.target_names))

七、超参数调优(网格搜索)
from sklearn.model_selection import GridSearchCV# 定义参数网格
param_grid = {'max_depth': [2, 3, 4, 5],'min_samples_split': [2, 5, 10],'criterion': ['gini', 'entropy']
}# 网格搜索
grid_search = GridSearchCV(DecisionTreeClassifier(random_state=42),param_grid,cv=5,scoring='accuracy'
)
grid_search.fit(X_train_scaled, y_train)# 输出最优参数
print(f"最佳参数组合: {grid_search.best_params_}")
print(f"最佳验证准确率: {grid_search.best_score_:.2f}")# 使用最优模型预测
best_dt = grid_search.best_estimator_
y_pred_tuned = best_dt.predict(X_test_scaled)
print(f"调优后测试准确率: {accuracy_score(y_test, y_pred_tuned):.2f}")

八、关键知识点解析

特征重要性分析

import matplotlib.pyplot as plt# 获取特征重要性
feature_importances = best_dt.feature_importances_
features = iris.feature_names# 可视化重要性排序
plt.figure(figsize=(10,4))
plt.barh(features, feature_importances)
plt.xlabel('Feature Importance')
plt.title('决策树特征重要性分析')
plt.show()

过拟合诊断方法

  • 对比训练集与测试集准确率:

train_acc = best_dt.score(X_train_scaled, y_train)
test_acc = best_dt.score(X_test_scaled, y_test)
print(f"训练集准确率: {train_acc:.2f} vs 测试集准确率: {test_acc:.2f}")

输出:

训练集准确率: 0.97 vs 测试集准确率: 1.00 

  • 若训练准确率显著高于测试准确率(如0.99 vs 0.85),说明过拟合

决策边界可视化(二维示例)

import numpy as np# 选择两个特征进行可视化
X_2d = X_train_scaled[:, [0, 2]]  # sepal length 和 petal length# 训练简化模型
dt_2d = DecisionTreeClassifier(max_depth=3)
dt_2d.fit(X_2d, y_train)# 生成网格点
x_min, x_max = X_2d[:, 0].min()-1, X_2d[:, 0].max()+1
y_min, y_max = X_2d[:, 1].min()-1, X_2d[:, 1].max()+1
xx, yy = np.meshgrid(np.arange(x_min, x_max, 0.02),np.arange(y_min, y_max, 0.02))# 预测并绘制
Z = dt_2d.predict(np.c_[xx.ravel(), yy.ravel()])
Z = Z.reshape(xx.shape)plt.contourf(xx, yy, Z, alpha=0.4)
plt.scatter(X_2d[:,0], X_2d[:,1], c=y_train, s=20, edgecolor='k')
plt.xlabel('标准化后的花萼长度')
plt.ylabel('标准化后的花瓣长度')
plt.title('决策树分类边界可视化')
plt.show()

九、完整项目开发流程
  1. 业务场景适配

    • 金融风控:客户信用评估

    • 医疗诊断:疾病分类预测

    • 工业制造:产品质量检测

  2. 生产级代码优化

# 模型持久化
import joblib# 保存标准化器和模型
joblib.dump(scaler, 'std_scaler.pkl')
joblib.dump(best_dt, 'dt_model.pkl')# 新数据预测示例
new_data = [[5.1, 3.5, 1.4, 0.2]]  # 原始数据
loaded_scaler = joblib.load('std_scaler.pkl')
loaded_model = joblib.load('dt_model.pkl')scaled_data = loaded_scaler.transform(new_data)
prediction = loaded_model.predict(scaled_data)
print(f"预测类别: {iris.target_names[prediction[0]]}")
十、常见问题解决方案

处理类别不平衡问题

# 设置类别权重
balanced_dt = DecisionTreeClassifier(class_weight='balanced',  # 自动调整权重max_depth=4,random_state=42
)

处理缺失值

from sklearn.impute import SimpleImputer# 在预处理阶段添加缺失值处理
imputer = SimpleImputer(strategy='median')
X_train_imputed = imputer.fit_transform(X_train)
X_test_imputed = imputer.transform(X_test)

处理高维数据

# 结合PCA降维
from sklearn.decomposition import PCApca = PCA(n_components=0.95)  # 保留95%方差
X_train_pca = pca.fit_transform(X_train_scaled)
X_test_pca = pca.transform(X_test_scaled)

实战建议

  1. 尝试更换其他数据集(如泰坦尼克生存预测、糖尿病预测)

  2. 对比不同树模型(随机森林 vs 决策树)

  3. 部署为Flask/Django API服务

  4. 使用SHAP库进行模型解释:

pip install shap
import shapexplainer = shap.TreeExplainer(best_dt)
shap_values = explainer.shap_values(X_test_scaled)
shap.summary_plot(shap_values, X_test_scaled, feature_names=iris.feature_names)
http://www.dtcms.com/wzjs/266799.html

相关文章:

  • 中央最新指示停止核酸检测优化关键词的步骤
  • 网站的公安机关备案网址如何下载视频
  • 店铺管理app搜索引擎优化排名优化培训
  • 奉节做网站十大技能培训机构排名
  • 秦皇岛公司做网站青岛网
  • wordpress 登录验证码搜索引擎优化不包括
  • 陈江做网站2020年度关键词有哪些
  • 做网站接电话一般要会什么问题2024年3月新冠高峰
  • 常州工厂网站建设怎么做ppt
  • 安徽网站建设系统含有友情链接的网页
  • 胶南网站建设公司建网站需要哪些步骤
  • 增城企业网站建设广州百度seo排名优化
  • wdcp搭建网站教程怎么制作网页广告
  • 重庆建设工程造价信息网站2024年重大新闻摘抄
  • 济南科技网站建设太原网络推广公司哪家好
  • 诸城网站建设开发怎么让网站快速收录
  • 卡盟自助网站建设武汉建站优化厂家
  • 阆中网站建设可以发外链的论坛有哪些
  • 网站推广方法有哪几种关键词排名点击软件怎样
  • drupal joomla wordpress全国最好网络优化公司
  • 深圳网络开发公司有哪些拼多多关键词怎么优化
  • 如何做企业网站步骤登封网站设计
  • ui设计工作流程北京seo网站开发
  • wps连接wordpress网站推广和优化的原因网络营销
  • 网站整站下载器 全站克隆页面图片视频下载 仿站专用源码工具软件百度助手免费下载
  • wordpress页面访问权限哈尔滨关键词优化方式
  • 金华建设公司网站关键词投放
  • wordpress直排主题网络优化公司
  • 桓台县城乡建设局网站成都网站排名生客seo怎么样
  • 网站如何做软文推广怎样注册网站建立网页