机器学习主要是由三部分组成,即:表示(模型)、评价(策略)和优化(算法)。
表示(或者称为:模型):Representation
模型本质上是一个函数,实现样本x到样本标记y的映射,即f(x)->y,表示主要做的就是建模,故可以称为模型。模型要完成的主要工作是转换:将实际问题转化成为计算机可以理解的问题,即建模。
评价(或者称为:策略):Evalution
评价的目标是判断已建好的模型的优劣。这里就会是一些评价的指标以及一些评价函数的设计。
优化:Optimization
优化的目标是评价的函数,我们希望能够找到最好的模型,也就是说评价最高的模型。
sklearn数据集接口介绍:
sklearn.datasets 加载获取流行数据集
(1)datasets.load_*(return_X_y=False) 获取小规模数据集,数据包含在datasets里,return_X_y: 如果为True,则返回元组(tuple),默认为False
(2)datasets.fetch_*(data_home=None,subset=‘train’) 获取大规模数据集,需要从网络上下载,data_home:数据集下载目录,默认是 ~/scikit_learn_data/ ,要修改默认目录,可以修改环境变量SCIKIT_LEARN_DATA ,subset默认为train(训练集),其它值:test(测试),all(全部)
(3)datasets.make_*() 本地生成数据集
(4)datasets.get_data_home() 获取数据集目录
(5)clear_data_home(data_home=None) 删除所有下载数据
load*和 fetch* 函数返回的数据类型是 datasets.base.Bunch,本质上是一个 字典。主要包含以下属性:
data:特征数据数组,是 n_samples * n_features 的二维 numpy.ndarray 数组
target:标签数组,是 n_samples 的一维 numpy.ndarray 数组
DESCR:数据描述
feature_names:特征名
target_names:标签名
示例:
datasets.load_*(return_X_y=False)
#导入鸢尾花数据集
from sklearn.datasets import load_iris
lr = load_iris()
print(lr.data) #特征值
print(lr.target) #目标值
print(lr.DESCR) #数据描述
print(lr.feature_names) #特征名
print(lr.target_names) #标签名
输出:略
datasets.fetch_*(data_home=None)
from sklearn.datasets import fetch_20newsgroups
news = fetch_20newsgroups(subset='all')
print(news.target)
输出:略
补充:
使用fetch_20newsgroups会自动下载20news-bydate_py3(数据集),但速度很慢,可以手动下载20news-bydate_py3(地址:https://pan.baidu.com/s/1Do3vncy3AY15EhENP6nR4A 提取码:ecwi ),Linux系统置于~/scikit_learn_data/ 下(无则创建),Windows系统请看:https://segmentfault.com/a/1190000016498146
datasets.make_*()
生成本地分类数据:
from sklearn.datasets.samples_generator import make_classification
"""
n_samples:样本总数
n_features:特征总数
random_state:int,random_state是随机数生成器使用的种子; RandomState的实例,random_state是随机数生成器; None,随机数生成器所使用的RandomState实例np.random
return :X,特征数据集;y,目标值
"""
X,y = make_classification(n_samples=10,n_features=5)
print(X)
print(y)
[[-0.86454514 -1.36268468 0.90295025 -0.30836021 0.29052901]
[-1.87806188 1.25455456 -1.6531036 -0.41116952 -2.45396463]
[-1.40417143 -0.93543289 0.00718474 -0.42240351 -0.46345276]
[-0.19693165 2.1764521 0.76339485 0.08239387 -1.75413969]
[-0.88154855 1.31744959 -0.09864734 -0.1482829 -1.68516987]
[ 1.35352212 0.47337301 0.46974938 0.38087852 0.76025467]
[ 0.80810895 0.8111545 -0.73747885 0.25983966 0.06703121]
[ 1.26830884 -1.43252407 -0.79440397 0.24175167 2.08564918]
[-0.42608793 -1.59002686 1.01691516 -0.20834432 0.81545735]
[-2.02371648 -0.44202249 1.43556549 -0.55315974 -1.33120935]]
[0 1 0 1 1 1 1 0 0 0]
生成本地回归数据:
#生成本地回归数据:
from sklearn.datasets.samples_generator import make_regression
X,y = make_regression(n_samples=10,n_features=5)
print(X)
print(y)
[[ 1.00083671e+00 5.63928397e-01 -1.10912015e+00 1.19800471e+00
-8.42378340e-01]
[-4.09079613e-02 1.33005245e+00 -7.53300418e-02 9.69744810e-02
-2.03115358e+00]
[-2.30320257e-01 -5.41023431e-01 -3.34915677e-01 -8.13300999e-01
5.19756172e-01]
[ 9.49846145e-01 -5.23253531e-01 1.26802032e+00 -4.42250036e-01
-3.85213090e-01]
[-4.62611277e-01 7.78740446e-01 1.28919813e+00 -2.12661369e-01
-1.55375302e+00]
[ 1.26642863e+00 1.66596003e+00 -7.52345528e-01 -7.55070025e-01
2.29231594e-01]
[-3.05838328e-02 2.54112184e-01 -4.86162867e-01 -5.16731106e-01
-6.79390340e-01]
[ 9.80560544e-02 -1.66537453e+00 -6.29638652e-01 6.86211850e-01
1.61388330e+00]
[-1.69731818e-01 -4.12799300e-01 -9.47467288e-05 1.35926163e+00
-1.23264374e-01]
[ 1.17891988e+00 4.49857029e-01 1.48206272e+00 1.57026387e+00
-3.10388803e-02]]
[157.51609376 34.41708374 -98.65693718 34.50306617 -25.6337089
212.38658293 -44.63921213 -41.87331386 19.89257885 264.34091796]
补充:
以上三个接口的例子只各举其一,其参数和其它例子请自行参考官方文档