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

Jupyter Notebook与机器学习:使用Scikit-Learn构建模型

Jupyter Notebook与机器学习:使用Scikit-Learn构建模型

介绍

Jupyter Notebook是一款强大的交互式开发环境,广泛应用于数据科学和机器学习领域。Scikit-Learn是一个流行的Python机器学习库,提供了简单高效的工具用于数据挖掘和数据分析。本教程将详细介绍如何在Jupyter Notebook中使用Scikit-Learn构建机器学习模型,涵盖数据加载与预处理、模型训练与评估等步骤。

前提条件

  • 基本的Python编程知识
  • 基本的机器学习概念
  • 安装了Jupyter Notebook和Scikit-Learn库

教程大纲

  1. 环境设置
  2. 数据加载与预处理
  3. 数据集划分
  4. 模型选择与训练
  5. 模型评估
  6. 模型优化
  7. 保存和加载模型
  8. 总结与展望

1. 环境设置

1.1 安装Jupyter Notebook和Scikit-Learn

在终端中执行以下命令来安装Jupyter Notebook和Scikit-Learn:

pip install jupyter scikit-learn

1.2 启动Jupyter Notebook

在终端中执行以下命令来启动Jupyter Notebook:

jupyter notebook

2. 数据加载与预处理

2.1 导入必要的库

在Jupyter Notebook中导入所需的Python库:

import numpy as np
import pandas as pd
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler

2.2 加载数据集

使用Scikit-Learn自带的Iris数据集进行演示:

iris = load_iris()
X = iris.data
y = iris.target# 将数据集转换为DataFrame
df = pd.DataFrame(data=np.c_[X, y], columns=iris.feature_names + ['target'])
df.head()

2.3 数据预处理

标准化数据:

scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)

3. 数据集划分

将数据集划分为训练集和测试集:

X_train, X_test, y_train, y_test = train_test_split(X_scaled, y, test_size=0.2, random_state=42)

4. 模型选择与训练

4.1 选择模型

选择一个简单的机器学习模型,如逻辑回归:

from sklearn.linear_model import LogisticRegressionmodel = LogisticRegression()

4.2 训练模型

在训练集上训练模型:

model.fit(X_train, y_train)

5. 模型评估

5.1 预测与评估

在测试集上进行预测并评估模型性能:

from sklearn.metrics import accuracy_score, classification_report, confusion_matrixy_pred = model.predict(X_test)# 计算准确率
accuracy = accuracy_score(y_test, y_pred)
print(f"Accuracy: {accuracy * 100:.2f}%")# 打印分类报告
print("Classification Report:")
print(classification_report(y_test, y_pred))# 绘制混淆矩阵
import matplotlib.pyplot as plt
import seaborn as snscm = confusion_matrix(y_test, y_pred)
sns.heatmap(cm, annot=True, fmt='d', cmap='Blues', xticklabels=iris.target_names, yticklabels=iris.target_names)
plt.xlabel('Predicted')
plt.ylabel('True')
plt.show()

6. 模型优化

6.1 超参数调优

使用网格搜索进行超参数调优:

from sklearn.model_selection import GridSearchCVparam_grid = {'C': [0.1, 1, 10, 100],'solver': ['liblinear', 'saga']
}grid_search = GridSearchCV(LogisticRegression(), param_grid, cv=5, scoring='accuracy')
grid_search.fit(X_train, y_train)print(f"Best parameters: {grid_search.best_params_}")
print(f"Best cross-validation accuracy: {grid_search.best_score_ * 100:.2f}%")# 使用最佳参数训练最终模型
best_model = grid_search.best_estimator_
best_model.fit(X_train, y_train)

7. 保存和加载模型

7.1 保存模型

使用joblib库保存训练好的模型:

import joblibjoblib.dump(best_model, 'logistic_regression_model.pkl')

7.2 加载模型

加载保存的模型:

loaded_model = joblib.load('logistic_regression_model.pkl')# 在测试集上评估加载的模型
loaded_model_accuracy = loaded_model.score(X_test, y_test)
print(f"Loaded model accuracy: {loaded_model_accuracy * 100:.2f}%")

8. 总结与展望

通过本教程,您已经学习了如何在Jupyter Notebook中使用Scikit-Learn构建机器学习模型的完整流程,包括数据加载与预处理、模型选择与训练、模型评估、模型优化以及模型的保存和加载。您可以将这些知识应用到其他机器学习任务中,并尝试使用更复杂的数据集和模型,进一步提高机器学习技能。希望本教程能帮助您在数据科学和机器学习领域取得更大进步!

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

相关文章:

  • IMU提升相机清晰度
  • 掌握SQL Server性能监控:自定义性能计数器的实现
  • jdk1.8 List集合Stream流式处理
  • leetcode位运算(1720. 解码异或后的数组)
  • Android 性能优化之卡顿优化
  • mac电脑显示隐藏文件
  • 深度学习之基础知识整理
  • R语言学习笔记9-数据过滤-分组-融合
  • GESP CCF C++ 八级认证真题 2024年6月
  • Spring Boot 单元测试什么时候需要添加 @RunWith
  • 鸿蒙OpenHarmony Native API【HiLog】
  • Pycharm 和虚拟环境的那些事?
  • rancher2里面的containerd的使用
  • Python数据风险案例54——人工智能热门概念股爬虫分析其价值(三因子模型)
  • 【HarmonyOS开发】Navigation使用
  • 计算机网络参考模型与5G协议
  • docker自建rustdesk-server远程桌面
  • 海外抖音黑屏是网络问题还是硬件问题?
  • 为了实现接口缓存,专门写了个缓存库 f-cache-memory
  • actual combat 35 —— es
  • android R ext4 image打包脚本介绍
  • 美式键盘 QWERTY 布局的来历
  • ETL数据同步之DataX,附赠一套DataX通用模板
  • [论文笔记] CT数据配比方法论——1、Motivation
  • 某4G区域终端有时驻留弱信号小区分析
  • 【体外诊断】ARM/X86+FPGA嵌入式计算机在免疫分析设备中的应用
  • Linux上启动和停止jar
  • 浏览器缓存:强缓存与协商缓存实现原理有哪些?
  • 持续集成04--Jenkins结合Gitee创建项目
  • 【Node.js基础02】fs、path模块