Skip to main content

传统算法入门

scikit-learn 数据的来源?

参考数据集

scikit-learn 内置有一些小型标准数据集,不需要从某个外部网站下载任何文件。

scikit-learn 提供也加载较大数据集的工具,并在必要时下载这些数据集。

数据特征说明可参考https://scikit-learn.org/stable/modules/classes.html#module-sklearn.datasets

这些数据集有助于快速说明在 scikit 中实现的各种算法的行为。 然而,它们数据规模往往太小,无法代表真实世界的机器学习任务。 但是作为学习使用刚刚好。

数据集名称加载方法模型类型数据大小(样本数*特征数)
0波士顿房价数据集load_bostonregression506*13
1鸢尾花数据集load_irisclassification150*4
2手写数字数据集load_digitsclassification1797*64
3糖尿病数据集load_diabetesregression442*10
4葡萄酒数据集load_wineclassification178*13
5乳腺癌数据集load_breast_cancerclassification569*30
6体能训练数据集load_linnerud多重回归20*3
import sklearn.datasets
# 加载小数据
data = sklearn.datasets.load_wine()
data.data

from sklearn.datasets import fetch_california_housing
# 加载大数据
housing = fetch_california_housing()
housing.data

from sklearn.datasets import load_sample_image
# 加载图片
china = load_sample_image("china.jpg")

样本生成器

scikit-learn 包括各种随机样本的生成器,可以用来建立可控制的大小和复杂性人工数据集。

from sklearn.datasets import make_blobs
# 创建KNN模型数据集
'''
X为样本特征,Y为样本簇类别,共1000个样本,

每个样本4个特征,共4个簇,簇中心在[-1,-1], [0,0], [1,1], [2,2],
簇方差分别为[0.4, 0.2, 0.2]
'''
x, y = make_blobs(n_samples=1000,
n_features=2,
centers=[[-1, -1], [0, 0], [1, 1], [2, 2]],
cluster_std=[0.4, 0.2, 0.2, 0.2],
)
from sklearn.datasets import make_regression
# 创建回归模型数据集
'''
X为样本特征,Y为样本簇类别,共1000个样本,

每个样本1个特征,
离散度为2
'''
x2,y2 = make_regression(n_samples=1000, n_features=1, n_targets=1, noise=2)

自有数据集

我们手上可能刚好有一些数据集,可以通过 pandas 或者 numpy 读取

# 通过pandas或者numpy读取
import pandas as pd
import numpy as np
data = pd.read_csv('./data/iris.csv')
# 通过numpy读取
data = np.loadtxt('./data/iris.csv', delimiter=",", skiprows=1)