目录
scikit-learn地址:scikit-learn中文社区
1、获取sklearn中的数据集
(1)获取小规模数据集,数据包含在datasets里:sklearn.datasets.load_name()
(2)获取大规模数据集,需从网络上下载:sklearn.datasets.fetch_name(data_home=None) 函数的第一个参数是data_home,表示数据下载的目录,不指定的话默认~/scikit_learn_data/
举例:
-
sklearn.datasets.load_iris()
加载并返回鸢尾花数据集 -
sklearn.datasets.load_boston()
加载并返回波斯顿房价数据集 - sklearn.datasets.fetch_20newsgroups(data=None, subset=‘train’)
可以通过subset参数选择需要加载的数据集:‘train’、’test’、‘all’
‘train’:训练集,’test’:测试集,‘all’:全部
2、数据集的使用
(1)load和fetch返回的数据类型为datasets.base.Bunch(与字典格式一样)
(2)按Ctrl后点击数据集名称,可以查看数据集中的键值对
- data:特征数据数组,是[n_samples * n_features]的二维numpy.ndarry数组
- target:标签数组,是n_samples的一维numpy.ndarry数组
- target_names:标签名
- DESCR:数据描述
- feature_names:特征名,新闻数据,手写数字、回归数据集没有
(3) 两种获取键值对的方式:dict[‘‘key’’] = value 和 bunch.key = value
3、数据集的划分
(1)机器学习一般的数据集会划分为两个部分:
- 训练数据:用于训练,构建模型
- 测试数据:模型检验,评估模型是否有效
(2)划分比例:
- 训练集:80%~70%
- 测试集:20%~30%
4、sklearn中的数据集划分API
sklearn.model_selection.train_test_split(x,y,test.size,random_state)
x :数据集的特征值,如iris.data
y: 数据集的标签值/目标值,如iris.target
test_size:测试集的大小,一般为float类型(如测试集占20%,则设置为0.2,默认为0.25)
random_state:随机数种子,不同的种子会造成不同的随机采样结果 , 相同的种子采样结果相同
return:训练集特征值 x_train,测试集特征值 x_test,训练集目标值 y_train,测试集目标值 y_test
注意:返回值的顺序是固定的;x和y为必须的参数,其余参数可以不进行设置
from sklearn.datasets import load_iris #导入数据集
from sklearn.model_selection import train_test_split #导入数据集划分API
def datasets_demo():
"""
sklearn数据集使用
:return:
"""
# 获取数据集
iris = load_iris()
print("鸢尾花数据集:\n", iris)
print("查看数据集描述:\n", iris["DESCR"]) #字典方式获取键值对
print("查看特征值的名字:\n", iris.feature_names) #点属性方式获取键值对
print("查看特征值:\n", iris.data, iris.data.shape) # 150个样本
# 数据集划分
x_train, x_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.2, random_state=22)
print("训练集的特征值:\n", x_train, x_train.shape) # 返回为150*0.8=120个样本
return None
if __name__ == "__main__":
datasets_demo()