一、Sklearn介绍
scikit-learn是Python语言开发的机器学习库,一般简称为sklearn,目前算是通用机器学习算法库中实现得比较完善的库了。其完善之处不仅在于实现的算法多,还包括大量详尽的文档和示例。其文档写得通俗易懂,完全可以当成机器学习的教程来学习。
二、Sklearn数据集种类
sklearn 的数据集有好多个种
自带的小数据集(packaged dataset):sklearn.datasets.load_
可在线下载的数据集(Downloaded Dataset):sklearn.datasets.fetch_
计算机生成的数据集(Generated Dataset):sklearn.datasets.make_
svmlight/libsvm格式的数据集:sklearn.datasets.load_svmlight_file(…)
从买了http://data.org在线下载获取的数据集:sklearn.datasets.fetch_mldata(…)
三、Sklearn数据集
3.1 有关数据集的工具类
clearn_data_home 清空指定目录
get_data_home 获取sklearn数据根目录
load_files 加载类目数据
dump_svmlight_file 转化文件格式为svmlight/libsvm
load_svmlight_file 加载文件并进行格式转换
load_svmlight_files 加载文件并进行格式转换
3.2 有关文本分类聚类数据集
fetch_20newsgroups 新闻文本分类数据集
fetch_20newsgroups_vectorized 新闻文本向量化数据集
fetch_rcv1 路透社英文新闻文本分类数据集
有关人脸识别的数据集 fetch_lfw_pairs 人脸数据集
fetch_lfw_people 人脸数据集
fetch_olivetti_faces 人脸数据集
3.3 有关图像的数据集
load_sample_image 图像数据集
load_sample_images 图像数据集
load_digits 手写体数据集
3.4 有关医学的数据集
load_breast_cancer 乳腺癌数据集
load_diabetes 糖尿病数据集
load_linnerud 体能训练数据集
3.5 其他数据集
load_wine 葡萄酒数据集
load_iris 鸢尾花数据集
load_boston 波士顿房屋数据集
fetch_california_housing 加利福尼亚房屋数据集
fetch_kddcup99 入侵检测数据集
fetch_species_distribution 物种分布数据集
fetch_covtype 森林植被数据集
load_mldata http://mldata.org 在线下载的数据集
四、数据集API基本使用知识
数据集划分:
机器学习一般的数据集会划分为两个部分
训练数据:
用于训练,构建模型
测试数据:
在模型检验时使用,用于评估模型是否有效
sklearn数据集划分API:sklearn.model_selection.train_test_split
scikit-learn数据集API:
获取数据集的返回类型:
数据集进行分割:
五、代码示例:
5.1 breast cancer数据集基本介绍:
乳腺癌数据集一共有569个样本,30个特征,标签为二分类
类型 | 个数 |
良性 benign | 357 |
恶性 malignant | 212 |
5.2 获取乳腺癌训练集和数据集
from sklearn.datasets import load_breast_cancer
from sklearn.svm import SVC
from sklearn.model_selection import train_test_split
import matplotlib.pyplot as plt
import numpy as np
from time import time
import datetime
cancers = load_breast_cancer()
X = cancers.data #获取特征值
Y = cancers.target #获取标签
print(X.shape) #查看特征形状
print(Y.shape) #查看标签形状
print(X)
print(Y)
print(data.DESCR) #查看数据集描述
print('特征名称')
print(data.feature_names) # 特征名
print('分类名称')
print(data.target_names) # 标签类别名
# 注意返回值: 训练集train,x_train,y_train,测试集test,x_test,y_test
# x_train为训练集的特征值,y_train为训练集的目标值,x_test为测试集的特征值,y_test为测试集的目标值
# 注意,接收参数的顺序固定
# 训练集占80%,测试集占20%
x_train, x_test, y_train, y_test = train_test_split(X, Y, test_size=0.2)
print('训练集的特征值和目标值:', x_train, y_train)
print('测试集的特征值和目标值:', x_test, y_test)
#dict_keys(['data', 'target', 'target_names', 'DESCR', 'feature_names', 'filename'])
print(cancers.keys())
5.3 建模训练、评价模型
model_linear = SVC(C=1.0, kernel='linear') # 线性核
model_linear.fit(x_train, y_train)
train_score = model_linear.score(x_train, y_train)
test_score = model_linear.score(x_test, y_test)
print('train_score:{0}; test_score:{1}'.format(train_score, test_score))
5.4 运用模型,进行预测
preresult=model_linear.predict(x_test)
#查看第一个样本的预测值
preresult[0]
说明:本文参考以下博客写成
1、SK数据集 2、Python的Sklearn库中的数据集