• Raspberry Pi和Python OpenCV人工神经网络和卷积神经网络演示及其机器学习微型框架


    首先,主要讨论和演示机器学习中使用的基本数据模型及其演示,其次开始的深度学习讨论,然后,探讨 ANN 和 CNN 如何预测结果,例如,当呈现未知图像时,CNN 将尝试将其识别为属于它已被训练识别的类别之一。

    Raspberry Pi机器学习

    机器学习数据模型

    安装OpenCV

    k-最近邻(k-NN)模型

    决策树分类器

    主成分分析(PCA)

    
    import matplotlib.pyplot as plt
    import numpy as np
    import pandas as pd
    import seaborn as sns
    from sklearn import decomposition
    from sklearn.preprocessing import scale
    from sklearn.decomposition import PCA
    from sklearn.preprocessing import StandardScaler
    df = pd.read_csv('iris.csv', header=None, sep=',')
    df.columns=['sepal_length', 'sepal_width', 'petal_length',
    'petal_width', 'class']
    df.dropna(how="all", inplace=True) # Drops empty line at EOF
    # Show the first 5 records
    print(df.head())
    f, ax = plt.subplots(1, 4, figsize=(10,5))
    vis1 = sns.distplot(df['sepal_length'],bins=10, ax= ax[0])
    vis2 = sns.distplot(df['sepal_width'],bins=10, ax=ax[1])
    vis3 = sns.distplot(df['petal_length'],bins=10, ax= ax[2])
    vis4 = sns.distplot(df['petal_width'],bins=10, ax=ax[3])
    plt.show()
    # split data table into data X and class labels y
    X = df.ix[:,0:4].values
    y = df.ix[:,4].values
    # Standardize the data
    X_std = StandardScaler().fit_transform(X)
    # Compute the covariance matrix
    mean_vec = np.mean(X_std, axis=0)
    cov_mat = (X_std -mean_vec).T.dot(X_std - mean_vec) /
    (X_std.shape[0] - 1)
    print('Covariance matrix \n%s' %cov_mat)
    # Compute the Eigenvectors and Eigenvalues
    cov_mat = np.cov(X_std.T)
    eig_vals, eig_vecs = np.linalg.eig(cov_mat)
    print('Eigenvectors \n%s' %eig_vecs)
    print('Eigenvalues \n%s' %eig_vals)
    eig_pairs = [(np.abs(eig_vals[i]), eig_vecs[:,i]) for i in
    range(len(eig_vals))]
    eig_pairs.sort()
    eig_pairs.reverse()
    print('Eigenvalues in descending order:')
    for i in eig_pairs:
     print(i[0])
    # Compute the Eigenvalue ratios
    tot = sum(eig_vals)
    var_exp = [(i / tot)*100 for i in sorted(eig_vals,
    reverse=True)]
    cum_var_exp = np.cumsum(var_exp)
    print('Eigenvalue ratios:%s' %cum_var_exp)
    #Create the W matrix
    matrix_w = np.hstack((eig_pairs[0][1].reshape(4,1),
     eig_pairs[1][1].reshape(4,1)))
    print('Matrix W:\n', matrix_w)
    # Transform the X_std dataset to the sub-space Y
    Y = X_std.dot(matrix_w)
    features = ['sepal_length', 'sepal_width', 'petal_length',
    'petal_width']
    # Create a scatter plot for PC1 vs PC2
    x = df.loc[:,features].values
    x = StandardScaler().fit_transform(x)
    pca = PCA(n_components=2)
    principalComponents = pca.fit_transform(x)
    principalDf = pd.DataFrame(data=principalComponents,
    columns=['principal component 1','principal component 2'])
    finalDf = pd.concat([principalDf, df[['class']]], axis=1)
    fig = plt.figure(figsize=(8,8))
    ax = fig.add_subplot(1,1,1)
    ax.set_xlabel('Principal Component 1', fontsize=15)
    ax.set_ylabel('Principal Component 2', fontsize=15)
    ax.set_title('2 Component PCA', fontsize=20)
    targets = ['setosa', 'versicolor', 'virginica']
    colors = ['r', 'g', 'b']
    for target, color in zip(targets, colors):
     indicesToKeep = finalDf['class'] == target
     ax.scatter(finalDf.loc[indicesToKeep, 'principal component
    1'], finalDf.loc[indicesToKeep, 'principal component 2'],
    c=color, s=50)
    ax.legend(targets)
    ax.grid
    plt.show()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80

    线性判别分析(LDA)

    支持向量机

    学习向量量化

    装袋和随机森林

    人工神经网络及其演示

    识别手写数字

    使用Keras识别手写字

    卷积神经网络及其演示

    MNIST数据集演示

    使用Raspberry Pi的微型机器学习框架

    参阅 - 亚图跨际

  • 相关阅读:
    泛洪攻击(Flood Attack)
    Intersection Observer API探索
    2022年7月最新贴吧防删图制作教学视频
    预训练语言模型复现CPT-1&Restructure_pretrain
    【深度学习】学习案例:Keras 多层感知器手写数字识别
    C6678/C6657+ZYNQ/K7/A7 FPGA+AD+北斗的软硬件设计方案
    【wp】2023第七届HECTF信息安全挑战赛 Web
    web设计与开发 简单的个人网站设计与实现HTML+CSS 学生HTML个人网页作业作品
    oracle表空间释放
    一款后台管理框架的年终总结
  • 原文地址:https://blog.csdn.net/jiyotin/article/details/125474256