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
  • 相关阅读:
    【ybtoj高效进阶 21173】简单区间(分治)
    【ybtoj高效进阶 21170】投篮训练(贪心)(线段树)(构造)
    【ybtoj高效进阶 21172】筹备计划(线段树)(树状数组)
    【ybtoj高效进阶 21168】打字机器(Trie树)(LCA)(值域线段树)
    【ybtoj高效进阶 21169】毁灭计划(分类讨论)(树形DP)
    【ybtoj高效进阶 21167】旅游计划(基环树)(DP)(单调队列)
    Day-15 面向对象02 成员
    Day-14 初识面向对象
    Day 13 内置函数(点击网址进入思维导图)、递归、二分法
    Day12 生成器函数-推导式
  • 原文地址:https://www.cnblogs.com/keepmoving1113/p/14327357.html
Copyright © 2011-2022 走看看