Scikit-learn工具介绍与数据集

发布于:2025-05-01 ⋅ 阅读:(12) ⋅ 点赞:(0)

一、Scikit-learn简介与安装

Scikit-learn是Python中最流行的机器学习库之一,它提供了简单高效的数据挖掘和数据分析工具。

  1. Python语言机器学习工具

  2. Scikit-learn包括许多智能的机器学习算法的实现

  3. Scikit-learn文档完善,容易上手,丰富的API接口函数

  4. Scikit-learn官网:scikit-learn: machine learning in Python — scikit-learn 1.6.1 documentation

  5. Scikit-learn中文文档:sklearn

  6. scikit-learn中文社区

1. Scikit-learn安装

# 使用pip安装scikit-learn
# pip install scikit-learn
# pip install -i https://pypi.tuna.tsinghua.edu.cn/simple scikit-learn

# 或者使用conda安装
# conda install scikit-learn

# 验证安装是否成功
import sklearn
print("Scikit-learn版本:", sklearn.__version__)

2. Scikit-learn包含的内容

Scikit-learn主要包含以下功能模块:

  • 分类(Classification)

  • 回归(Regression)

  • 聚类(Clustering)

  • 降低降维(Dimensionality reduction)

  • 模型选择(Model selection)

  • 预处理(Preprocessing)

二、数据集使用

1. sklearn玩具数据集介绍

Scikit-learn内置了一些小型标准数据集,数据量小,只要安装了sklearn就可以使用,非常适合学习和测试算法。

from sklearn import datasets

# 列出所有可用的玩具数据集
print("可用玩具数据集:", datasets.__all__)

2. sklearn现实世界数据集介绍

除了玩具数据集,scikit-learn还提供了一些更大的现实世界数据集,数据量大,数据只能通过网络获取 。

3. sklearn加载玩具数据集

示例1:鸢尾花数据
from sklearn.datasets import load_iris
# 加载鸢尾花数据集
iris = load_iris() # 返回一个Bunch对象

# iris字典中有几个重要属性: 
# data 特征
# feature_names 特征描述
# target  目标
# target_names  目标描述
# DESCR 数据集的描述
# filename 下后到本地保存后的文件名
# 它们可以通过 数据集.属性 的方式访问

# 查看数据集描述
print(iris.DESCR)

# 特征数据 (150个样本,4个特征)
print("特征数据形状:", iris.data.shape)

# 目标变量 (3类鸢尾花)
print("目标变量:", iris.target_names)

# 下面使用pandas把特征和目标一起显示出来


# 将数据转换为DataFrame (需要pandas)
import pandas as pd
import numpy as np
# iris = load_iris()
feature = iris.data
target = iris.target
target.shape=(len(target), 1)
data = np.hstack([feature, target])
cols = iris.feature_names
cols.append("target")
pd.DataFrame(data,columns=cols)

示例2:分析糖尿病数据集 

from sklearn.datasets import load_iris
# 加载糖尿病数据集
diabetes = load_diabetes()

# 查看数据集描述
print(diabetes.DESCR)

# 特征数据 (442个样本,10个特征)
print("特征数据形状:", diabetes.data.shape)

# 目标变量 (一年后疾病进展的定量测量)
print("目标变量范围:", min(diabetes.target), "到", max(diabetes.target))

# 可视化第一个特征与目标变量的关系
import matplotlib.pyplot as plt
plt.scatter(diabetes.data[:, 0], diabetes.target)
plt.xlabel('年龄(标准化)')
plt.ylabel('疾病进展')
plt.title('年龄与糖尿病进展关系')
plt.show()

4. sklearn获取现实世界数据集

示例3:获取20分类新闻数据
# 针对下载不成功的可能是版本问题的解决方式
# 加载互联网数据集
# pip install --upgrade scikit-learn 库更新

import sklearn.datasets as datasets
from sklearn.datasets import fetch_20newsgroups, fetch_california_housing
path = datasets.get_data_home() # 获取数据集的默认路径
print(path)

# news = fetch_20newsgroups(data_home="./src",subset="all") # 加载所有数据集 train:训练集 / test:测试集
# print(len(news.data)) # 18846
# print(type(news.data)) # <class 'list'>
# print(news.data[:5]) # 文本数据
# print(news.target_names) # 20个类别

data,target = fetch_20newsgroups(data_home="./src",subset="all",return_X_y=True)
print(data[:5],target[:5]) # 文本数据

5. 读取本地csv数据(借用pandas读取)

(1) 创建csv文件
# 创建一个简单的csv文件
import csv

data = [
    ['姓名', '年龄', '城市'],
    ['张三', 25, '北京'],
    ['李四', 30, '上海'],
    ['王五', 35, '广州']
]

with open('sample_data.csv', 'w', newline='', encoding='utf-8') as f:
    writer = csv.writer(f)
    writer.writerows(data)

 (2) pandas加载csv

# 使用pandas加载csv文件
import pandas as pd

# 读取csv文件
df = pd.read_csv('sample_data.csv')

# 查看数据
print("数据概览:")
print(df.head())

# 基本统计信息
print("\n基本统计信息:")
print(df.describe())

# 可视化
df.plot(kind='bar', x='姓名', y='年龄')
plt.title('年龄分布')
plt.show()

三、总结

        本文介绍了scikit-learn的基本安装、包含的内容,以及如何使用内置数据集和本地csv数据进行机器学习分析。通过示例代码展示了如何加载和处理不同类型的数据集,为后续的机器学习建模打下基础。

        在实际应用中,理解数据是机器学习项目成功的关键第一步。scikit-learn提供的数据集接口和pandas的数据处理能力可以帮助我们快速开始数据分析工作。

 

 

 

 


网站公告

今日签到

点亮在社区的每一天
去签到