zoukankan      html  css  js  c++  java
  • Python for Data Science

    Chapter 6 - Other Popular Machine Learning Methods

    Segment 2 - A neural network with a Perceptron

    Perceptron

    A perceptron is a neural network with just one layer,

    It's a linear classifier that outputs a binary response variable.

    Consequently, the algorithm is called a "linear binary classifier."

    Linear Separability

    • Data is said to have "linear separability " if it can be cleanly classified into one of two classes.
    • Your data must be linearly separable in order for a perceptron to operate properly.

    Activation Function

    An activation function is a mathematical function that is deployed on each unit in a neural network.

    All units in a shared layer deploy the same activation function.

    The purpose of activation functions is to enable neural networks to model complex, nonlinear phenomenon.

    import numpy as np
    import pandas as pd
    import sklearn
    
    from pandas import Series, DataFrame
    from sklearn import datasets
    from sklearn.preprocessing import StandardScaler
    from sklearn.model_selection import train_test_split
    from sklearn.metrics import confusion_matrix, classification_report
    
    from sklearn.linear_model import Perceptron
    
    iris = datasets.load_iris()
    
    X = iris.data
    y = iris.target
    
    X[0:10,]
    
    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],
           [5. , 3.4, 1.5, 0.2],
           [4.4, 2.9, 1.4, 0.2],
           [4.9, 3.1, 1.5, 0.1]])
    
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
    
    standardize = StandardScaler()
    
    standardized_X_test = standardize.fit_transform(X_test)
    
    standardized_X_train = standardize.fit_transform(X_train)
    
    standardized_X_test[0:10,]
    
    array([[ 0.60104076, -0.54300257,  1.03062704,  1.00726119],
           [-0.14142136,  2.04272396, -1.19635601, -1.17060084],
           [ 0.8131728 , -0.54300257,  0.87525613,  1.68784307],
           [ 0.49497475, -0.28442992,  1.03062704,  1.00726119],
           [-0.88388348,  0.7498607 , -1.09277541, -1.03448446],
           [-1.20208153, -0.54300257, -1.09277541, -1.30671722],
           [-0.56568542,  1.78415131, -0.9374045 , -0.89836809],
           [-0.45961941,  0.7498607 , -1.14456571, -1.17060084],
           [-0.88388348, -1.83586584, -0.26413055,  0.05444655],
           [-0.98994949,  0.49128804, -1.0409851 , -1.17060084]])
    
    perceptron = Perceptron(max_iter=50, eta0=0.15, tol=1e-3, random_state=15)
    
    perceptron.fit(standardized_X_train, y_train.ravel())
    
    Perceptron(eta0=0.15, max_iter=50, random_state=15)
    
    y_pred = perceptron.predict(standardized_X_test)
    
    print(y_test)
    
    [2 0 2 2 0 0 0 0 1 0 0 0 1 2 0 2 2 0 1 2 2 1 1 1 2 1 2 0 0 0]
    
    print(y_pred)
    
    [2 0 2 2 0 0 0 0 1 0 0 0 1 1 0 2 2 0 1 1 2 1 1 1 2 1 2 0 0 0]
    
    print(classification_report(y_test,y_pred))
    
                  precision    recall  f1-score   support
    
               0       1.00      1.00      1.00        13
               1       0.78      1.00      0.88         7
               2       1.00      0.80      0.89        10
    
        accuracy                           0.93        30
       macro avg       0.93      0.93      0.92        30
    weighted avg       0.95      0.93      0.93        30
  • 相关阅读:
    CSS浮动元素的水平居中
    html5移动web开发实战必读书记
    再说CSS3渐变——线性渐变
    链栈学习笔记
    用数组实现从文件搜索帐户和验证密码
    启程!
    在Application中集成Microsoft Translator服务之获取访问令牌
    在Application中集成Microsoft Translator服务之开发前准备
    Kinetic使用注意点--canvas
    Kinetic使用注意点--blob
  • 原文地址:https://www.cnblogs.com/keepmoving1113/p/14327357.html
Copyright © 2011-2022 走看看