【一起从0开始学习人工智能】0x01机器学习基础+初次实践

简介: 【一起从0开始学习人工智能】0x01机器学习基础+初次实践

从零开始----到敲出一个推荐系统

人工智能概述

人工智能------机器学习-------深度学习

应用:网络安全、交通网络、社交网络…

比如:小案例-------你画我猜

人工智能之父---------McCarthy、 Minsky

达特茅斯会议-----------人工智能的起点

流派

符号主义--------推

机器学习----统计的方法实现人工智能----------神经网络

深度学习------图像学习

能做什么

传统预测

图像识别----------无人驾驶 、 人脸识别

自然语言处理------感情分析、自动聊天、文本检测、智能客服

什么是机器学习

从数据中自动分析获得模型,并利用模型对位置数据来对位置数据进行预测

机器学习:

数据----------模型-------预测

人类:

问题-----------规律---------未来

本质:从中总结规律

比如:识别动物、房屋价格预测

数据集构成

结构:特征值+目标值

有些数据集可以没有目标值-------------------进行分类------------物以类聚

机器学习算法分类

目标值:类别---------分类问题------K临近算法、贝叶斯分类、决策树与随机森林、逻辑回归

目标值:连续性数据----------回归问题---------------------前两种监督学习--------线性回归、岭回归

目标值:无------Kmeans-------------无监督学习—没有目标值

人脸识别:分类问题

机器学习开发流程

获取数据

数据处理

特征工程

机器学习算法训练—模型

模型评估

学习框架和资料

算法是核心、数据和计算是基础

找准定位:

大部分复杂模型的算法设计都是算法工程师在做,工程师一般:

分析很多数据

分析具体的业务

应用常见的算法

特征工程、调参属、优化

当前重要的是掌握一些机器学习算法等技巧、从某个业务领域切入问题

怎么做

入门

实战类书籍

机器学习–周志华------统计学习方法–李航---------深度学习–花书

机器学习库与框架

pythorch

caffe2

chainer

可用数据集

公司内部— 百度、

数据结构 ---- 花钱

数据集----政府内部的

学习阶段常用:sklearn

kaggle

UCI

sklearn

文档完善

包含:分类回归聚类、降维、模型选择、特征工程

python语言的机器学习工具

pip install Scikit-learn
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Collecting Scikit-learn

使用自带数据集

sklearn.datasets
1. load_*----------获取小规模数据集
2. fetch_*----------获取大规模数据集---从网上下载-------函数的第一个参数是data_home, 默认~/scikit-learn-data/
sklearn.datasets.load_iris()应为花数据集
sklearn.datasets.load_Boston()波士顿房价数据集
sklearn.datasets.fetch_20newsgroups(data_home=None,subset='all')
subset有 train test all--全部

sklearn数据集使用

数据集返回值:数据类型datasets.base.Bunch-------字典格式

获取数据集返回的类型

load和fetch返回的数据类型datasets.base.Bunch(字典格式)

data:特征数据数组,是 [n_samples * n_features] 的二维 numpy.ndarray 数组

target:标签数组,是 n_samples 的一维 numpy.ndarray 数组 DESCR:数据描述

feature_names:特征名,新闻数据,手写数字、回归数据集没有 target_names:标签名,回归数据集没有

可以用字典的特性--------dict"key"]=value

继承自字典----自己的特性----------bunch.key = value

from sklearn.datasets import load_iris
def datasets_demo():
    #获取数据集
    iris = load_iris();
    print("鸢尾花数据集:\n", iris);
    # 获取鸢尾花数据集
    iris = load_iris()
    print(type(iris))
    # print('鸢尾花数据集的返回值:\n', iris)
    # print('鸢尾花数据集的特征值:\n', iris['data'])
    print(iris['data'].shape)
    print('鸢尾花数据集的目标值/标签值:\n', iris.target)
    print('鸢尾花数据集特征的名字:\n', iris.feature_names)
    print('鸢尾花数据集目标值的名字:\n', iris.target_names)
    print('鸢尾花数据集的描述:\n', iris.DESCR)
    return None
if __name__ == "__main__":
    datasets_demo()
鸢尾花数据集:
 {'data': array([[5.1, 3.5, 1.4, 0.2],
       [4.9, 3. , 1.4, 0.2],
       [4.7, 3.2, 1.3, 0.2],
       [4.6, 3.1, 1.5, 0.2],
       [5. , 3.6, 1.4, 0.2],
       [5.4, 3.9, 1.7, 0.4],
       [4.6, 3.4, 1.4, 0.3],
'target': array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
鸢尾花数据集的描述:
 .. _iris_dataset:
Iris plants dataset
--------------------
**Data Set Characteristics:**
    :Number of Instances: 150 (50 in each of three classes)
    :Number of Attributes: 4 numeric, predictive attributes and the class
    :Attribute Information:
        - sepal length in cm
        - sepal width in cm
        - petal length in cm
        - petal width in cm
        - class:
                - Iris-Setosa
                - Iris-Versicolour
                - Iris-Virginica
    :Summary Statistics:
    ============== ==== ==== ======= ===== ====================
                    Min  Max   Mean    SD   Class Correlation
    ============== ==== ==== ======= ===== ====================
    sepal length:   4.3  7.9   5.84   0.83    0.7826
    sepal width:    2.0  4.4   3.05   0.43   -0.4194
    petal length:   1.0  6.9   3.76   1.76    0.9490  (high!)
    petal width:    0.1  2.5   1.20   0.76    0.9565  (high!)
    ============== ==== ==== ======= ===== ====================
    :Missing Attribute Values: None
    :Class Distribution: 33.3% for each of 3 classes.
    :Creator: R.A. Fisher
    :Donor: Michael Marshall (MARSHALL%PLU@io.arc.nasa.gov)
    :Date: July, 1988
The famous Iris database, first used by Sir R.A. Fisher. The dataset is taken
from Fisher's paper. Note that it's the same as in R, but not as in the UCI
Machine Learning Repository, which has two wrong data points.
This is perhaps the best known database to be found in the
pattern recognition literature.  Fisher's paper is a classic in the field and
is referenced frequently to this day.  (See Duda & Hart, for example.)  The
data set contains 3 classes of 50 instances each, where each class refers to a
type of iris plant.  One class is linearly separable from the other 2; the
latter are NOT linearly separable from each other.
.. topic:: References
   - Fisher, R.A. "The use of multiple measurements in taxonomic problems"
     Annual Eugenics, 7, Part II, 179-188 (1936); also in "Contributions to
     Mathematical Statistics" (John Wiley, NY, 1950).
   - Duda, R.O., & Hart, P.E. (1973) Pattern Classification and Scene Analysis.
     (Q327.D83) John Wiley & Sons.  ISBN 0-471-22361-1.  See page 218.
   - Dasarathy, B.V. (1980) "Nosing Around the Neighborhood: A New System
     Structure and Classification Rule for Recognition in Partially Exposed
     Environments".  IEEE Transactions on Pattern Analysis and Machine
     Intelligence, Vol. PAMI-2, No. 1, 67-71.
   - Gates, G.W. (1972) "The Reduced Nearest Neighbor Rule".  IEEE Transactions
     on Information Theory, May 1972, 431-433.
   - See also: 1988 MLC Proceedings, 54-64.  Cheeseman et al"s AUTOCLASS II
     conceptual clustering system finds 3 classes in the data.
   - Many, many more ...

拿到的数据是否全部用来训练模型

留一部分-----来检验验证

部分训练

部分测试

划分比例7:3

数据集划分

sklearn.model_selection.train_test_split(arrays, *options)

sklearn.model_selection.train_test_split(arrays, *options)

x 数据集的特征值

y数据集的标签值

test_size 测试集的大小,一般为float

random_state随机数种子,不同的种子会造成不同的随机采样结果。相同的种子采样结果相同。

return 测试集特征训练集特征值值,训练标签,测试标签(默认随机取)

注意:当要做对比实验的时候,要将random_state设置为一个固定的值,这样才能到达控制变量的效果

x-train x_test, y_train,y_test

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
def datasets_demo():
    #获取数据集
    iris = load_iris();
    print('鸢尾花数据集的描述:\n', iris.data, iris.data.shape)
    x_train, x_test, y_train, y_test=train_test_split(iris.data, iris.target, test_size=0.2, random_state=22)
    print("xunlianjitezhengzhi:\n:", x_train, x_train.shape)
    return None
if __name__ == "__main__":
    datasets_demo()
[6.3 2.5 4.9 1.5]
 [6.1 2.8 4.7 1.2]
 [5.9 3.2 4.8 1.8]
 [5.4 3.9 1.7 0.4]
 [6.  2.2 4.  1. ]
 [6.4 2.8 5.6 2.1]
 [4.8 3.4 1.9 0.2]
 [6.4 3.1 5.5 1.8]
 [5.9 3.  4.2 1.5]
 [6.5 3.  5.5 1.8]
 [6.  2.9 4.5 1.5]
 [5.5 2.4 3.8 1.1]
 [6.2 2.9 4.3 1.3]
 [5.2 4.1 1.5 0.1]
 [5.2 3.4 1.4 0.2]
 [7.7 2.6 6.9 2.3]
 [5.7 2.6 3.5 1. ]
 [4.6 3.4 1.4 0.3]
 [5.8 2.7 4.1 1. ]
 [5.8 2.7 3.9 1.2]
 [6.2 3.4 5.4 2.3]
 [5.9 3.  5.1 1.8]
 [4.6 3.1 1.5 0.2]
 [5.8 2.8 5.1 2.4]
 [5.1 3.5 1.4 0.3]
 [6.8 3.2 5.9 2.3]
 [4.9 3.1 1.5 0.1]
 [5.5 2.3 4.  1.3]
 [5.1 3.7 1.5 0.4]
 [5.8 2.7 5.1 1.9]
 [6.7 3.1 4.4 1.4]
 [6.8 3.  5.5 2.1]
 [5.2 2.7 3.9 1.4]
 [6.7 3.1 5.6 2.4]
 [5.3 3.7 1.5 0.2]
 [5.  2.  3.5 1. ]
 [6.6 2.9 4.6 1.3]
 [6.  2.7 5.1 1.6]
 [6.3 2.3 4.4 1.3]
 [7.7 3.  6.1 2.3]
 [4.9 3.  1.4 0.2]
 [4.6 3.2 1.4 0.2]
 [6.3 2.7 4.9 1.8]
 [6.6 3.  4.4 1.4]
 [6.9 3.1 4.9 1.5]
 [4.3 3.  1.1 0.1]
 [5.6 2.7 4.2 1.3]
 [4.8 3.4 1.6 0.2]
 [7.6 3.  6.6 2.1]
 [7.7 2.8 6.7 2. ]
 [4.9 2.5 4.5 1.7]
 [6.5 3.2 5.1 2. ]
 [5.1 3.3 1.7 0.5]
 [6.3 2.9 5.6 1.8]
 [6.1 2.6 5.6 1.4]
 [5.  3.4 1.5 0.2]
 [6.1 3.  4.6 1.4]
 [5.6 3.  4.5 1.5]
 [5.1 3.8 1.5 0.3]
 [5.6 2.8 4.9 2. ]
 [4.4 3.  1.3 0.2]
 [5.5 2.4 3.7 1. ]
 [4.7 3.2 1.6 0.2]
 [6.7 3.3 5.7 2.5]
 [5.2 3.5 1.5 0.2]
 [6.4 2.7 5.3 1.9]
 [6.3 2.8 5.1 1.5]
 [4.4 2.9 1.4 0.2]
 [6.1 3.  4.9 1.8]
 [4.9 3.1 1.5 0.2]
 [5.  2.3 3.3 1. ]
 [4.8 3.  1.4 0.3]
 [5.8 4.  1.2 0.2]
 [6.3 3.4 5.6 2.4]
 [5.4 3.  4.5 1.5]
 [7.1 3.  5.9 2.1]
 [6.3 3.3 6.  2.5]
 [5.1 3.8 1.9 0.4]
 [6.4 2.8 5.6 2.2]
 [7.7 3.8 6.7 2.2]] (120, 4)
Process finished with exit code 0

🌸I could be bounded in a nutshell and count myself a king of infinite space.

特别鸣谢:木芯工作室 、Ivan from Russia


相关文章
|
8天前
|
机器学习/深度学习 算法 数据挖掘
利用机器学习优化数据中心能效的策略与实践
【5月更文挑战第13天】 在数据中心管理和运营的众多挑战中,能源效率优化是降低运营成本和减少环境影响的关键因素。本文旨在探讨如何应用机器学习技术来提高数据中心的能效,通过智能化的数据分析和资源管理达到节能的目的。与传统的摘要不同,本文将直接深入探讨所采用的技术手段、实施步骤以及预期效果,为读者提供一种新颖的视角。
15 4
|
3天前
|
机器学习/深度学习 监控 算法
【机器学习】提供学习率的直观解释
【5月更文挑战第18天】【机器学习】提供学习率的直观解释
|
6天前
|
机器学习/深度学习 数据采集 监控
构建高效机器学习模型的策略与实践
【5月更文挑战第17天】 在当今数据驱动的时代,机器学习(ML)模型的效能成为衡量技术创新和解决实际问题能力的重要指标。本文旨在探讨构建高效机器学习模型的先进策略,并通过具体实践案例来揭示这些方法的有效性。我们将从数据处理、特征工程、模型选择、调参技巧以及模型部署等方面详细论述,旨在为读者提供一个全面而深入的视角,帮助其优化现有模型或开发新模型,以应对复杂多变的业务挑战。
12 2
|
7天前
|
机器学习/深度学习 运维 算法
利用机器学习进行异常检测的技术实践
【5月更文挑战第16天】本文探讨了利用机器学习进行异常检测的技术实践,强调了在大数据时代异常检测的重要性。机器学习通过无监督、有监督和半监督学习方法自动识别异常,常见算法包括KNN、LOF、K-means和GMM等。异常检测流程包括数据准备、特征工程、选择算法、训练模型、评估优化及部署。机器学习为异常检测提供了灵活性和准确性,但需结合具体问题选择合适方法。
|
8天前
|
机器学习/深度学习 人工智能 自然语言处理
构建未来:人工智能在持续学习系统中的进化之路
【5月更文挑战第15天】 随着技术的不断进步,人工智能(AI)已成为推动现代科技革新的核心动力。特别是在机器学习领域,AI系统的能力正通过持续学习机制得到显著增强。本文深入探讨了AI技术在实现自我进化方面的最新进展,分析了持续学习系统的关键组成部分,包括数据获取、模型适应性以及算法优化等方面。同时,文章还着重讨论了在设计这些系统时所面临的挑战,如数据偏差、计算资源限制和伦理问题,并提出了可能的解决方案。
|
8天前
|
机器学习/深度学习
机器学习 —— 分类预测与集成学习(下)
机器学习 —— 分类预测与集成学习(下)
|
8天前
|
机器学习/深度学习 数据采集 数据可视化
机器学习 —— 分类预测与集成学习(上)
机器学习 —— 分类预测与集成学习
|
8天前
|
机器学习/深度学习 自然语言处理 监控
利用机器学习进行情感分析:技术详解与实践
【5月更文挑战第13天】本文探讨了利用机器学习进行情感分析的方法,包括技术原理、常用算法和实践应用。情感分析涉及文本预处理(如清洗、分词和去除停用词)、特征提取(如词袋模型、TF-IDF和Word2Vec)及分类器训练(如朴素贝叶斯、SVM和RNN/LSTM)。常见情感分析算法有朴素贝叶斯、支持向量机和深度学习模型。实践中,情感分析应用于社交媒体监控、产品评论分析等领域。通过本文,读者可了解情感分析的基础知识及其应用价值。
|
8天前
|
机器学习/深度学习 监控 算法
LabVIEW使用机器学习分类模型探索基于技能课程的学习
LabVIEW使用机器学习分类模型探索基于技能课程的学习
13 1
|
8天前
|
机器学习/深度学习 人工智能 分布式计算
人工智能平台PAI
人工智能平台PAI
18 0

热门文章

最新文章