文章目录
参考资料
运行环境
- win10操作系统
- anaconda3
- juyper notebook
- python3
一、数据集
1.1 数据集的选择
-
Kaggle 网址: https://www.kaggle.com/datasets
-
UCI 数据集网址:http://archive.ics.uci.edu/ml/
-
scikit-learn 网址:https://scikit-learn.org/stable/auto_examples/index.html#examples-based-on-real-world-datasets
- Scikit-learn 工具介绍
- Python语言的机器学习工具
- Scikit-learn 包含许多知名的机器学习算法的实现
- Scikit-learn 文档完善,容易上手,提供丰富API
安装
pip3 install scikit-learn
导入:
import sklearn
Scikit-learn 包含的内容
- 分类、聚类、回归
- 特征工程
- 模型选择、调优
1.2 sklearn 数据集
0x001 scikit-learn数据集API介绍
- sklearn.datasets
- 加载获取流行数据集
- datasets.load_xxx() 获取小规模数据集,数据包含在datasets里
- datasets.frech_xxx(data_home=None) 获取大规模数据集,需从网络上下载,函数第一个参数为data_home,表示数据集下载的目录,默认位置为
~/scikit_learn_data/
0x010 sklearn 小数据集
- sklearn.datasets.load_iris() 加载并返回鸢尾花数据集
from sklearn.datasets import load_iris
import pandas as pd
iris = load_iris()
df = pd.DataFrame(iris.data, columns=iris.feature_names)
df.head() # 输出前五行
运行结果:
- sklearn.datasets.load_boston() 加载并返回波士顿放假数据集
from sklearn.datasets import load_boston
import pandas as pd
boston = load_boston()
df = pd.DataFrame(boston.data, columns=boston.feature_names)
df.head()
0x011 大数据集
- sklearn.datasets.fetch_xxx(data_home=None, subset=‘train’)
- subset: ‘train’ 或者 ‘test’ , ‘all’, 可选,选择要加载的数据集
- 训练集的"训练", 测试集的"测试",两者的"全部"
0x100 sklearn数据集返回值介绍
-
load
和frech
返回的数据类型是dataset.base.Bunch
(字典格式)参数列表
参数 描述 data 特征数据数组,是[n_samples * n_features] 的二维 numpy.ndarray数组 target 标签数组,是 n_samples 的一维numpy.ndarray数组 DESCR 数据描述 feature_names 特征名称,部分数据集没有,比如新闻数据、手写数字、回归数据集等 target_names 标签名称
Bunch对象获取值的两种方法
bunch['key']
bunch.key
1.3 数据集的划分
机器学习一般的数据会划分为两个部分:
- 训练数据: 用于训练,构建模型
- 测试数据:在模型检验时使用,用于评估模型是否有效
划分比例:
- 训练集:70% 80% 75%
- 测试集:30% 20% 30%
数据集划分API
sklearn.model_selection.train_test_split(arrays, *options)
参数列表
参数 | 描述 |
---|---|
x | 数据集的特征值 |
y | 数据集的标签值 |
test_size | 测试集的大小,一般为float,默认为0.25 |
random_state | 随机数种子,不同的种子会造成不同的随机采样结果。相同的种子采样结果相同 |
return | 训练集特征值,测试集特征值,训练集目标值,测试集目标值 x_train, x_test, y_train, y_test |
范例:划分鸢尾花数据集
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
import pandas as pd
iris = load_iris()
x_train, x_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.2)
pd.DataFrame(x_train, columns=iris.feature_names)
运行结果:
二、特征工程 Feature Engineering介绍
目标
- 了解特征工程在机器学习当中的重要性
- 知道特征工程的分类
2.1 特征工程 目的
机器学习领域的大神 Andrew Ng(吴恩达)老师说过 : "Coming up with features is difficult, ti