Python_AI

text::Python


一、基础知识

1 基本概念

人工智能包含机器学习和深度学习,机器学习包含深度学习。

基本名词:

  • 泛化:通用性。

  • 非泛化:特殊性。

  • NFL定理:某些问题 model_a 优于 model_b,那么存在另一些问题 model_b 优于 model_a。

  • 泛化误差:未来误差。

  • 经验误差:训练集上的误差。

  • 经验误差并非越小越好,会导致过拟合。

  • 过拟合:限制条件太多。

  • 欠拟合:限制条件太少。(比如所有绿色的都是树叶)

集合(测试集应与训练集互斥):

  • 留出法:留出训练集的一部分用于测试。(20%左右)
  • 交互验证:用 90% 进行训练,剩下 10%进行测试,循环 10 次。
  • 自助采样:有放回的采样测试。

流程名词:

  • 算法参:人为设定的参数,也叫超参数。
  • 模型参:学习的参数。
  • 流程:训练集——测试集——验证集。
  • 算法参确定后用:训练集 + 验证集测试。
  • 查全率:所有的好西瓜中有多少比例被算法挑了出来。
  • 查准率:算法挑出来的西瓜中有多少比例是好西瓜。

2 机器学习

定义:机器学习好似从数据中自动分析获得模型,并利用模型对未知数据进行预测。

数据集构成:特征值 + 目标值(也可以没有目标值,直接进行分类)。

算法:

  • 监督学习(supervised learning)(预测):输入数据是由输入特征值和目标值所组成。函数的输出可以是一个连续的值(称为回归),或是输出是有限个离散值(称作分类):

    • 分类:k-近邻算法、贝叶斯分类、决策树与随机森林、逻辑回归。
    • 回归:线性回归、岭回归。
  • 无监督学习(unsupervised learning):

    • 定义:输入数据是由输入特征值所组成。
    • 聚类:k-means。

目标值:

  • 类别 —— 分类问题。(监督学习)
  • 连续型数据 —— 回归问题。(监督学习)
  • 无 —— 聚类。(无监督学习)

流程:

  1. 获得数据。
  2. 数据预处理。
  3. 特征工程。(将数据处理成机器可以识别的数据:特征值 + 目标值)
  4. 机器训练。
  5. 模型评估。
  6. 应用。

深入学习:

  • 机器学习——“西瓜书”——周志华
  • 统计学习方法——李航
  • 深度学习——“花书”

3 特征工程

定义:

  • 数据集:数据集,数据接口:内部。

分类算法:

回归与聚类算法:

4 Scikit-learn

返回值继承自字典的,datasets.base.Bunch,键如下:

  • data:特征数据数组,是[n_samples * n_features]的二维numpy.ndarray 数组。
  • target:标签数组,是n_samples的一维numpy.ndarray数组。
  • DESCR:数据描述。
  • feature_names:特征名,新闻数据,手写数字、回归数据集没有。
  • target_names:标签名。

调用:dict["key"] || dict.key

# 基本操作


#安装
pip install Scikit-learn #可能会报缺少别的库
import sklearn
'''
sklearn包含:Classification(分类),Regression(回归),Clustering(聚类),Dimensionality reduction(降维),Model selection(模型选择),Preprocessing(特征工程)
'''

#使用数据集
sklearn.datasets.load_<name>() #小数据集,本地保存。
sklearn.dataset.fetch_<name>(data_home=None , subset="train") #大数据集,需要从网上下载。
#data_home:默认保存路径~/scikit_learn_data/;subset:train(训练集),test(测试集),all。
# 数据集


# 小数据集
sklearn.datasets.load_iris() #鸢尾花
sklearn.datasets.load_boston() #波士顿房价

# 大数据集

二、算法实现

1 bp神经网络