Python机器学习库scikit-learn安装与基本使用教程

木白
木白
发布时间:2026-10-13| 5人浏览过
原创

本文详细介绍Python机器学习库scikit-learn的安装步骤及基础应用。涵盖NumPy、SciPy等依赖配置,演示数据加载、归一化、特征选择与提取流程,并实战朴素贝叶斯、k近邻及决策树算法,帮助开发者快速上手数据挖掘与分析。

本文通过具体实例,解析Python机器学习库scikit-learn的安装流程及其基础用法,旨在为读者提供具有参考价值的操作指南。

引言

scikit-learn是Python生态中一个广受欢迎的开源机器学习工具包,其核心建立在NumPy、SciPy以及matplotlib模块之上。该库提供了丰富的机器学习算法接口,旨在帮助用户以简单且高效的方式完成数据挖掘与数据分析任务。

scikit-learn安装

在Python环境中安装各类模板库时,往往存在依赖关系。在正式安装scikit-learn之前,必须确保系统满足以下先决条件:

Python(>= 2.6 or >= 3.3) NumPy (>= 1.6.1) SciPy (>= 0.9)

通常情况下,使用pip工具可以顺利完成安装过程。

安装 numpy

sudo pip install numpy

安装 scipy

此外,建议预先安装matplotlib、ipython、ipython-notebook、pandas以及sympy等辅助工具。

sudo apt-get install python-matplotlib ipython ipython-notebook
sudo apt-get install python-pandas python-sympy python-nose
sudo pip install scipy

安装 scikit-learn

sudo pip install -U scikit-learn

测试

在终端(terminal)中执行以下命令:

pip list

该命令将列出pip安装的所有组件。若输出结果中包含sklearn相关条目,则表明安装成功。

或者,尝试导入几个核心模板库以验证环境:

import numpy
import scipy
import sklearn

加载数据(Data Loading)

本教程使用的数据集来源于“今日头条”近期两篇热门新闻的评论数据,具体包括“牛!川大学霸寝室5人获16份名校通知书”与“张超凡的最后14天:山西15岁休学少年是如何殒命网吧的”这两篇文章,每篇各提取500条评论,总计1000条。

在去除停用词后,构建的词库大小为3992。基于此,构建了尺寸为1000×3992的特征矩阵,以及一个长度为1000的列表,用于记录每条评论所属的类别。

具体的爬虫代码及特征矩阵构建逻辑如下:

相关数据文件可通过以下链接下载:class_result_save.npy 和 feature_matrix_save.npy。

import numpy as np
feature_matrix = np.load('dataSet/feature_matrix_save.npy')
class_list = np.load('dataSet/class_result_save.npy')

数据归一化(Data Normalization)

大多数基于梯度的机器学习算法对数据的缩放比例和尺度极为敏感。因此,在运行算法前,执行归一化或标准化处理至关重要,这能将特征数据缩放到0-1的范围内。scikit-learn提供了相应的归一化方法:

from sklearn import preprocessing
# 归一化(Normalization)
normalized_X = preprocessing.normalize(feature_matrix)
print normalized_X
# 标准化(Standardization)
standardized_X = preprocessing.scale(feature_matrix)
print standardized_X

特征选择(Feature Selection)

在解决实际问题时,筛选合适的特征或构建新特征的能力至关重要,这一过程被称为特征选择或特征工程。

特征选择是一个高度依赖直觉与专业知识的创造性过程,同时也有多种现成算法可供辅助选择。

以下树算法(Tree algorithms)可用于计算特征的信息量:

from sklearn.ensemble import ExtraTreesClassifier
model = ExtraTreesClassifier()
print feature_matrix.shape # 原特征矩阵规模
feature_matrix = model.fit(feature_matrix, class_list).transform(feature_matrix)
print feature_matrix.shape # 特征选择后 特征矩阵的规模

特征提取(Feature Extraction)

利用TFIDF算法计算特征词权重时,原则是:若某词在当前文档中出现频率高,而在其他文档中出现频率低,则该词对区分文档的能力越强,其权重值应越大。

from sklearn.feature_extraction.text import TfidfTransformer
tfidf_transformer = TfidfTransformer()
feature_matrix = tfidf_transformer.fit_transform(feature_matrix).toarray()

朴素贝叶斯(Naive Bayes)

朴素贝叶斯是一种著名的机器学习算法,主要依据训练样本的特征来计算各类别的概率,在多分类问题中应用广泛。

from sklearn import metrics
from sklearn.naive_bayes import GaussianNB
# 构建朴素贝叶斯模型
model = GaussianNB()
model.fit(feature_matrix, class_list)
print model
# 使用测试集进行测试(此处将训练集做测试集)
expected = class_list
predicted = model.predict(feature_matrix)
# 输出测试效果
print metrics.classification_report(expected, predicted)
print metrics.confusion_matrix(expected, predicted)

k近邻(k-Nearest Neighbours)

k近邻算法常作为分类算法的一部分使用,例如可用于评估特征质量,在特征选择环节也可借助该方法。

from sklearn import metrics
from sklearn.neighbors import KNeighborsClassifier
# 构建knn模型
model = KNeighborsClassifier()
model.fit(feature_matrix, class_list)
print model
# 使用测试集进行测试(此处将训练集做测试集)
expected = class_list
predicted = model.predict(feature_matrix)
# 输出测试效果
print metrics.classification_report(expected, predicted)
print metrics.confusion_matrix(expected, predicted)

决策树(Decision Tree)

分类与回归树(Classification and Regression Trees, CART)算法常用于处理包含类别信息的分类或回归问题,该方法在多分类场景下尤为适用。

from sklearn import metrics
from sklearn.tree import DecisionTreeClassifier
# 构建决策数模型
model = DecisionTreeClassifier()
model.fit(feature_matrix, class_list)
print model
# 使用测试集进行测试(此处将训练集做测试集)
expected = class_list
predicted = model.predict(feature_matrix)
# 输出测试效果
print metrics.classification_report(expected, predicted)
print metrics.confusion_matrix(expected, predicted)

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数学运算技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述内容能对大家的Python程序设计工作有所帮助。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。