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

人工智能知识分享第八天-机器学习_泰坦尼克生存预估线性回归和决策树回归对比案例

泰坦尼克生存预估案例

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import classification_report
import matplotlib.pyplot as plt
from sklearn.tree import plot_treetitanic_df = pd.read_csv('./data/train.csv')
titanic_df.info()x = titanic_df[['Pclass', 'Sex', 'Age']]
y = titanic_df['Survived']# x['Age'].fillna(x['Age'].mean(), inplace=True)
x['Age'] = x['Age'].fillna(x['Age'].mean())
x.info()print(len(x), len(y))
# titanic_df.info()x = pd.get_dummies(x)
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=22)estimator = DecisionTreeClassifier()
estimator.fit(x_train, y_train)y_predict = estimator.predict(x_test)print('预测结果为:\n', y_predict)
print('准确率: \n', estimator.score(x_test, y_test))
print(f'分类评估报告: \n {classification_report(y_test, y_predict, target_names=["Died", "Survivor"])}')
plt.figure(figsize=(70, 45))
plot_tree(estimator, filled=True, max_depth=10)
plt.savefig("./data/titanic_tree.png")
# 7.3 具体的绘制.
plt.show()

运行结果
在这里插入图片描述

在这里插入图片描述

线性回归和决策树回归对比案例

"""
案例:演示线性回归 和 回归决策树对比.结论:回归类问题, 既能用线性回归, 也能用决策树回归. 优先使用 线性回归, 因为 决策树回归可能会导致 过拟合.
"""# 导包.
import numpy as np
import pandas as pd
from sklearn.tree import DecisionTreeRegressor      # 回归决策树
from sklearn.linear_model import LinearRegression   # 线性回归
import matplotlib.pyplot as plt                     # 绘图# 1. 获取数据.
x = np.array(list(range(1,11))).reshape(-1, 1)
y = np.array([5.56, 5.70, 5.91, 6.40, 6.80, 7.05, 8.90, 8.70, 9.00, 9.05])
print(x)
print(y)# 2. 创建线性回归 和 决策树回归模型.
estimator1 = LinearRegression()                    # 线性回归
estimator2 = DecisionTreeRegressor(max_depth=1)    # 回归决策树, 层数=1
estimator3 = DecisionTreeRegressor(max_depth=3)    # 回归决策树, 层数=3# 3. 训练模型.
estimator1.fit(x, y)
estimator2.fit(x, y)
estimator3.fit(x, y)# 4. 准备测试数据, 用于测试.
# 起始, 结束, 步长.
x_test = np.arange(0.0, 10.0, 0.1).reshape(-1, 1)
print(x_test)# 5. 模型预测.
y_predict1 = estimator1.predict(x_test)
y_predict2 = estimator2.predict(x_test)
y_predict3 = estimator3.predict(x_test)# 6. 绘图
plt.figure(figsize=(10, 5))# 散点图(原始的坐标)
plt.scatter(x, y, color='gray', label='data')
# 线性回归的预测结果
plt.plot(x_test, y_predict1, color='r', label='liner regression')
# 回归决策树, 层数=1
plt.plot(x_test, y_predict2, color='b', label='max depth=1')
# 回归决策树, 层数=3
plt.plot(x_test, y_predict3, color='g', label='max depth=3')
# 显示图例.
plt.legend()
# 设置x轴标签.
plt.xlabel('data')
# 设置y轴标签.
plt.ylabel('target')
# 设置标题
plt.title('Decision Tree Regression')# 显示图片
plt.show()

运行结果
在这里插入图片描述
坚持分享 共同进步

http://www.lryc.cn/news/516289.html

相关文章:

  • html中下拉选框的基本实现方式及JavaScript动态修改选项内容情况总结
  • sql server期末复习
  • LabVIEW语言学习过程是什么?
  • 小程序租赁系统开发的优势与应用前景分析
  • 『SQLite』安装与基本命令语法
  • Unity-Mirror网络框架-从入门到精通之Benchmark示例
  • 毕业项目推荐:基于yolov8/yolov5的行人检测识别系统(python+卷积神经网络)
  • 今日头条ip属地根据什么显示?不准确怎么办
  • FPGA设计-如何使用后端工具
  • 苍穹外卖04——Redis初入门 在店铺打烊or营业状态管理功能中的使用
  • 【MySQL关于数据库和表结构的增删查改】
  • JVM实战—11.OOM的原因和模拟以及案例
  • LLM - 使用 LLaMA-Factory 部署大模型 HTTP 多模态服务 教程 (4)
  • Clickhouse集群部署(3分片1副本)
  • 刷服务器固件
  • 数据结构C语言描述9(图文结合)--二叉树和特殊书的概念,二叉树“最傻瓜式创建”与前中后序的“递归”与“非递归遍历”
  • CSS——2.书写格式一
  • Elasticsearch 创建索引 Mapping映射属性 索引库操作 增删改查
  • 【NLP高频面题 - 分布式训练篇】ZeRO主要为了解决什么问题?
  • kubernetes-循序渐进了解coredns
  • mysql8 从C++源码角度看 客户端发送的sql信息 mysql服务端从网络读取到buff缓存中
  • pygame飞机大战
  • 【Vim Masterclass 笔记08】第 6 章:Vim 中的文本变换及替换操作 + S06L20:文本的插入、变更、替换,以及合并操作
  • Tailwind CSS 实战:动画效果设计与实现
  • 【动手学电机驱动】STM32-MBD(3)Simulink 状态机模型的部署
  • Linux 服务器启用 DNS 加密
  • PyTorch不同优化器比较
  • stm32的掉电检测机制——PVD
  • Nginx 文件名逻辑漏洞(CVE-2013-4547)
  • Java 21 优雅和安全地处理 null