机器学习之Scikit-learn基础教程

devtools/2025/1/17 6:10:01/

        Scikit-learn(简称sklearn)是一个广泛使用的Python机器学习库,它提供了各种算法和工具,用于数据挖掘和数据分析。本教程将介绍sklearn的基本概念和使用方法。

1. 安装Scikit-learn

如果你还没有安装scikit-learn,可以通过pip进行安装:

bash
pip install scikit-learn

2. 导入库和加载数据

在Python中,你可以这样导入scikit-learn和其他常用库:

pythonimport numpy as np
import pandas as pd
from sklearn import datasets

加载数据集通常很简单,scikit-learn自带了一些标准数据集,例如鸢尾花数据集:

pythoniris = datasets.load_iris()
X = iris.data
y = iris.target

3. 数据预处理

数据预处理是机器学习中的重要步骤,scikit-learn提供了许多工具来帮助完成这项工作:

pythonfrom sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler# 划分数据集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 特征缩放
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)

4. 选择模型

scikit-learn提供了多种监督学习和非监督学习算法。以下是一些常用的模型:

  • 线性回归(LinearRegression)
  • 支持向量机(SVM,如SVC)
  • 决策树(DecisionTreeClassifier)
  • 随机森林(RandomForestClassifier)
  • K-最近邻(KNeighborsClassifier)选择模型并实例化:
pythonfrom sklearn.ensemble import RandomForestClassifiermodel = RandomForestClassifier(n_estimators=100, random_state=42)

5. 训练模型

使用训练数据来训练(或称拟合)模型:

pythonmodel.fit(X_train, y_train)

6. 模型评估

评估模型的性能,通常在测试集上进行:

pythonfrom sklearn.metrics import accuracy_scorey_pred = model.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print(f"Model Accuracy: {accuracy:.2f}")

7. 模型优化

使用交叉验证、网格搜索等方法对模型进行优化:

pythonfrom sklearn.model_selection import GridSearchCVparam_grid = {'n_estimators': [50, 100, 200],'max_depth': [None, 10, 20, 30]
}grid_search = GridSearchCV(estimator=model, param_grid=param_grid, cv=5)
grid_search.fit(X_train, y_train)print(f"Best Parameters: {grid_search.best_params_}")
print(f"Best CV Score: {grid_search.best_score_}")

8. 使用模型进行预测

  一旦模型被训练和优化,就可以用它来进行预测:

pythonnew_samples = np.array([[5.1, 3.5, 1.4, 0.2]])  # 新样本特征
new_samples = scaler.transform(new_samples)  # 预处理新样本
predictions = model.predict(new_samples)
print(f"Predictions: {predictions}")

 

9. 结论

        Scikit-learn是一个功能强大且易于使用的机器学习库。本教程提供了一个基本的入门指南,帮助你开始使用scikit-learn进行机器学习项目。然而,机器学习是一个广阔的领域,还有许多高级主题等待探索,比如特征工程、模型选择、超参数调优等。


http://www.ppmy.cn/devtools/26450.html

相关文章

自动控制原理学习--平衡小车的控制算法(一)

基于单片机STM32的两轮平衡小车,单片机的各种IO、定时器、通讯等等一大堆要理解、编程,但这些都是琐碎的文档知识,需要花时间看各个模块的接口文档进而编程,需要良好的编程逻辑思维,去获取相关的传感模块信息&#xff…

工具类,包含线程池,excel图片处理

一、线程池 public class ThreadPool {/*** 核心线程*/public static final int CORE_POOL_SIZE Runtime.getRuntime().availableProcessors() 1;/*** 线程池最大线程数*/public static final int MAX_POOL_SIZE CORE_POOL_SIZE * 2;/*** 空闲线程回收时间*/public static …

多线程模型浅谈

优质博文:IT-BLOG-CN 笔者近期在维护的项目中发现了一些比较随机的问题,时有时无的,排查之后发现是使用多线程导致的,恍然之下研究了下多线程的底层模型相关知识,现不大家简要分享下。 一个程序进程可包含多个线程&am…

(学习日记)2024.05.06:UCOSIII第六十节:User文件夹函数概览(uCOS-III->Source文件夹)第六部分

之前的章节都是针对某个或某些知识点进行的专项讲解,重点在功能和代码解释。 回到最初开始学μC/OS-III系统时,当时就定下了一个目标,不仅要读懂,还要读透,改造成更适合中国宝宝体质的使用方式。在学完野火的教程后,经过几经思考,最后决定自己锦上添花,再续上几章。 这…

C# Onnx YOLOv8_Blackjack

C# Onnx YOLOv8_Blackjack 目录 效果 模型 项目 代码 下载 效果 模型 Model Properties ------------------------- date:2024-04-23T17:17:10.378224 description:Ultralytics YOLOv8_Blackjack model trained on data.yaml author:U…

Milvus Cloud 向量数据库Reranker成本比较和使用场景

成本比较:向量检索 v.s. Cross-encoder Reranker v.s. 大模型生成 虽然 Reranker 的使用成本远高于单纯使用向量检索的成本,但它仍然比使用 LLM 为同等数量文档生成答案的成本要低。在 RAG 架构中,Reranker 可以筛选向量搜索的初步结果,丢弃掉与查询相关性低的文档,从而有…

Windows使用SSH登录本机Linux虚拟机

SSH(Secure Shell),一种网络协议,可以在安全外壳下实现数据传输通信,所以主要用于计算机间加密登录,可以简单理解为远程控制。除了计算机间直接互联,在git中也可以看到,常见的协议有…

如何使用dlib库进行目标跟踪

dlib 库本身并不直接提供目标跟踪的功能。目标跟踪是计算机视觉领域的一个独立任务,通常涉及对视频序列中的特定目标(如人脸、车辆、行人等)进行持续的识别和定位。然而,dlib 库中的某些组件(如人脸检测器、HOG特征提取…