首页 > 其他分享 >scikit-learn (sklearn) 基础教程

scikit-learn (sklearn) 基础教程

时间:2024-06-16 17:30:54浏览次数:23  
标签:iris scikit train 基础教程 test import sklearn

scikit-learn (sklearn) 基础教程

scikit-learn 是一个强大的 Python 库,用于机器学习和数据挖掘。它基于 SciPy、NumPy 和 matplotlib 构建,提供了简单且高效的工具,适用于数据分析和建模。

目录

  1. 安装
  2. 数据集加载
  3. 数据预处理
  4. 模型训练与预测
  5. 模型评估
  6. 超参数调优
  7. 示例:鸢尾花分类

安装

在安装 scikit-learn 之前,请确保已安装以下依赖库:NumPy、SciPy 和 matplotlib。

使用 pip 安装 scikit-learn:

pip install scikit-learn

数据集加载

scikit-learn 提供了一些常用的数据集,可以直接加载使用:

from sklearn.datasets import load_iris
from sklearn.datasets import load_digits

# 加载鸢尾花数据集
iris = load_iris()
print(iris.data.shape)  # (150, 4)

# 加载数字数据集
digits = load_digits()
print(digits.data.shape)  # (1797, 64)

数据预处理

数据预处理是机器学习工作流程中的重要步骤。scikit-learn 提供了多种数据预处理方法,例如标准化、归一化、缺失值处理等。

标准化

将数据标准化到均值为 0,标准差为 1:

from sklearn.preprocessing import StandardScaler

scaler = StandardScaler()
scaled_data = scaler.fit_transform(iris.data)

归一化

将数据归一化到 [0, 1] 范围:

from sklearn.preprocessing import MinMaxScaler

scaler = MinMaxScaler()
normalized_data = scaler.fit_transform(iris.data)

模型训练与预测

scikit-learn 提供了多种机器学习算法,如线性回归、决策树、支持向量机等。以下示例展示了如何训练和使用模型进行预测。

训练模型

from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression

# 分割数据集为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.3, random_state=42)

# 创建逻辑回归模型
model = LogisticRegression()

# 训练模型
model.fit(X_train, y_train)

进行预测

# 使用模型进行预测
predictions = model.predict(X_test)

模型评估

评估模型性能是确保其有效性的关键。scikit-learn 提供了多种评估指标,例如准确率、精确率、召回率和 F1 分数。

from sklearn.metrics import accuracy_score, classification_report

# 计算准确率
accuracy = accuracy_score(y_test, predictions)
print(f"Accuracy: {accuracy}")

# 输出分类报告
report = classification_report(y_test, predictions)
print(report)

超参数调优

超参数调优是提升模型性能的重要步骤。scikit-learn 提供了网格搜索(GridSearchCV)和随机搜索(RandomizedSearchCV)来自动调优超参数。

from sklearn.model_selection import GridSearchCV

# 定义参数网格
param_grid = {
    'C': [0.1, 1, 10, 100],
    'solver': ['lbfgs', 'liblinear']
}

# 使用网格搜索调优超参数
grid_search = GridSearchCV(LogisticRegression(), param_grid, cv=5)
grid_search.fit(X_train, y_train)

print(f"Best parameters: {grid_search.best_params_}")

示例:鸢尾花分类

以下是一个完整的鸢尾花分类示例,展示了从数据加载、预处理、模型训练、评估到超参数调优的完整流程。

import numpy as np
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split, GridSearchCV
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score, classification_report

# 加载数据
iris = load_iris()
X = iris.data
y = iris.target

# 数据预处理
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)

# 分割数据集
X_train, X_test, y_train, y_test = train_test_split(X_scaled, y, test_size=0.3, random_state=42)

# 训练模型
model = LogisticRegression()
model.fit(X_train, y_train)

# 预测
predictions = model.predict(X_test)

# 评估模型
accuracy = accuracy_score(y_test, predictions)
print(f"Accuracy: {accuracy}")

report = classification_report(y_test, predictions)
print(report)

# 超参数调优
param_grid = {
    'C': [0.1, 1, 10, 100],
    'solver': ['lbfgs', 'liblinear']
}

grid_search = GridSearchCV(LogisticRegression(), param_grid, cv=5)
grid_search.fit(X_train, y_train)

print(f"Best parameters: {grid_search.best_params_}")

结论

scikit-learn 提供了丰富的功能,支持从数据预处理、模型训练、评估到超参数调优的整个机器学习流程。希望本教程能帮助你快速上手 scikit-learn,开始你的机器学习之旅。

标签:iris,scikit,train,基础教程,test,import,sklearn
From: https://blog.csdn.net/2401_85342379/article/details/139720182

相关文章

  • Caffe、PyTorch、Scikit-learn、Spark MLlib 和 TensorFlowOnSpark 概述
    在AI框架方面,有几种工具可用于图像分类、视觉和语音等任务。有些很受欢迎,如PyTorch和Caffe,而另一些则更受限制。以下是四种流行的AI工具的亮点。CaffeeCaffee是贾扬青在加州大学伯克利分校(UCBerkeley)时开发的深度学习框架。该工具可用于图像分类、语音和视觉。但......
  • Python基础教程(十三):file文件及相关的函数
    ......
  • Wireshark基础教程
    Wireshark是非常流行的网络封包分析软件,可以截取各种网络数据包,并显示数据包详细信息。常用于开发测试过程各种问题定位。本文主要内容包括:1、Wireshark软件下载和安装以及Wireshark主界面介绍。2、WireShark简单抓包示例。通过该例子学会怎么抓包以及如何简单查看分析数据包内......
  • Sklearn基础教程:机器学习界的瑞士军刀
    Sklearn基础教程:机器学习界的瑞士军刀引言在机器学习的世界里,sklearn(Scikit-learn)就像是一把瑞士军刀,小巧、多功能,而且非常实用。无论你是数据科学家还是编程新手,sklearn都能成为你解决问题的得力助手。今天,就让我们一起走进sklearn的奇妙世界,探索它的起源、发展过程、原......
  • cisco packet tracer 8.2.2 安装配置 基础教程 免登录免破解 简单方便
    1官网下载,需要账号2安装3启动之前,直接断网,禁用网卡(⊙﹏⊙)......
  • Mysql基础教程(14):UNION
    MySQLUNION的用法与实例在本文中,我们讨论在MySQL中对两个结果集进行UNION运算,以及UNION运算的规则。在MySQL中,UNION操作符是一个集合操作符,它用于合并【2个结果集】中的所有的行。SQL标准中定义了3个集合操作符:UNION,INTERSECT和MINUS。目前MySQL......
  • 【sklearn中LinearRegression,logisticregression函数及其参数】
    文章目录前言一、sklearn中的LinearRegression1.引入库2.LinearRegression的主要参数及其解释3.LinearRegression的使用步骤(1)生成模拟数据(2)创建并训练模型(3)预测与评估二、sklearn中的LogisticRegression1.引入库2.LogisticRegression的主要参数及其解释3......
  • (大全集)大规模数据处理入门与实战(套装全10册 Kafka权威指南 Flink基础教程 数据科学
    书:pan.baidu.com/s/1YNu61Jk91VeISAX2F7-64g提取码:14pd是一本涉及大规模数据处理的入门级别的书籍,它通常旨在向读者介绍大规模数据处理的基本概念、技术、工具和实际应用。一些笔记:大数据概述: 介绍大数据的定义、特征和发展趋势。分布式系统: 讨论大规模数据处理的基础,包括......
  • 遇到no module named ‘pyLDAvis.sklearn‘的解决办法
    在NLP学习中,常常用到LDA主题模型对文本进行分类,可视化经常用到的代码有importpyLDAvisimportpyLDAvis.sklearnpanel=pyLDAvis.sklearn.prepare(lda,tf_idf,tf_idf_vectorizer)pyLDAvis.save_html(panel,'lda_visualization.html')pyLDAvis.display(panel)import......
  • 【scikit-learn009】异常检测系列:单类支持向量机(OC-SVM)实战总结(看这篇就够了,已更新)
    1.一直以来想写下机器学习训练AI算法的系列文章,作为较火的机器学习框架,也是日常项目开发中常用的一款工具,最近刚好挤时间梳理、总结下这块儿的知识体系。2.熟悉、梳理、总结下scikit-learn框架OCSVM模型相关知识体系。3.欢迎批评指正,欢迎互三,跪谢一键三连!4.欢迎批评指正......