二、特征工程-1
2.1 数据集
2.1.1 可用数据集
kaggele网站:https://www.kaggle.com/
UIC数据集网站:http://archive.ics.uci.edu/ml/index.php
sklearn网站:https://scikit-learn.org/stable/
1 scikit-learn工具介绍
2 安装
pip install Scikit-learn
# 安装好之后可以通过以下命令查看是否安装成功
import sklearn
安装scikit-learn需要安装numpy和scipy等库
3 scikit-learn包含的东西
Classification:分类
Regression:回归
Clustering:聚类
Dimensionality reduction:降维
Model selection:模型选择
Preprocessing:特征工程
2.1.2 sklearn数据集
1 scikit-learn数据集API介绍
sklearn.datasets # 加载数据集
'''
load_*():获取小规模数据集,数据包含在datasets中
featch_*(data_home=None):获取大规模数据集,第一个参数是下载目录,默认是~/scikit_learn_data/
'''
2 scikit-learn小数据集
sklearn.datasets. load_iris() # 鸢尾花数据集
sklearn.datasets. load_boston() # 波士顿房价数据集
3 sklearn大数据集
sklearn.datasets. fetch_20newsgroups (data_home=None,submit="all")
'''
submit:"train"或者"test"、"all"可选要加载的数据集
'''
4 sklearn 数据集的使用
sklearn数据集返回值介绍(datasets.base.Bunch)
'''
data:特征数据集,是二维的numpy.ndarray数组
target:标签数组,是一维的numpy.ndarray数组
DESCR:数据描述
feature_names:特征值名
target_names:标签名
'''
示例代码
from sklearn.datasets import load_iris
def dataset_demo():
iris = load_iris() # 获取鸢尾花数据集
print('鸢尾花数据集\n', iris) # <class 'sklearn.utils.Bunch'>
print('查看描述\n', iris.DESCR)
print("查看特征名字\n", iris.feature_names) # ['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width
print("查看特征值\n", iris.data, iris.data.shape) # (150, 4)
print("查看标签名\n", iris.target_names) # ['setosa' 'versicolor' 'virginica']
print("查看标签名\n", iris.target, iris.target.shape) # (150,)
return None
if __name__ == '__main__':
dataset_demo()
思考:拿到的数据是否全部都用来训练一个模型?
2.1.3 数据集的划分
机器学习一般的数据集会分为两个部分
训练数据:用于训练、构建模型
测试数据:在模型检验时使用,用于评估模型是否有效
划分比例
训练集:70% 80% 75%
测试集:30% 20% 30%
数据划分API
sklearn.model_selection.train_test_split
'''
x:数据的特征值
y:数据集的标签值
test_size:测试集大小,一般是float,20%->0.2
random_state:随机数种子
返回值:训练接特征值,测试集特征值,训练集目标值,测试集目标值 (x_rain x_test y_train y_test)
'''
示例代码
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
def dataset_demo():
iris = load_iris() # 获取鸢尾花数据集
x_rain, x_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.2, random_state=22)
print("训练集的特征值\n", x_rain, "\n测试集的特征值\n", x_test, "\n训练集的目标值\n", y_train, "\n测试集的目标值\n", y_test)
return None
if __name__ == '__main__':
dataset_demo()