人工神经网络及感知机


目录

1.原型感知机概览

2.感知机python代码

3.人工神经网络概览

4.人工神经网络python代码

5.人工神经网络-sklearn练习

5.1函数

5.2 代码


实验环境

  • Python 3.6
  • NumPy: 1.14.2
  • Matplotlib: 2.2.2
  • Pandas: 0.22.0
  • scikit-learn: 0.19.1

1.原型感知机概览

2.感知机python代码

# -*- coding: utf-8 -*-
"""
Created on Tue Sep  4 10:25:06 2018

人工神经网络--感知机分类

 数据:
  http://labfile.oss.aliyuncs.com/courses/1081/course-12-data.csv
  

"""

"""加载数据集
"""
import pandas as pd
df = pd.read_csv("course-12-data.csv", header=0) # 加载数据集
#print('df',df)#df       X0   X1  Y       5.1  3.5 -1
"""感知机随机梯度下降算法实现
"""
def perceptron_sgd(X, Y, alpha, epochs):
    """
    参数:
    X -- 自变量数据矩阵
    Y -- 因变量数据矩阵
    alpha -- lamda 参数
    epochs -- 迭代次数

    返回:
    w -- 权重系数
    b -- 截距项
    """
    w = np.zeros(len(X[0])) # 初始化参数为 0
    b = np.zeros(1)
    
    for t in range(epochs): # 迭代
        for i, x in enumerate(X):
            if ((np.dot(X[i], w)+b)*Y[i]) <= 0: # 判断条件
                w = w + alpha*X[i]*Y[i] # 更新参数
                b = b + alpha*Y[i]

    return w, b
"""感知机求最佳分割线
"""
import numpy as np

X = df[['X0','X1']].values
Y = df['Y'].values
#print('YYYY',Y)
alpha = 0.0005
epochs = 1000#数据总长度
L=perceptron_sgd(X, Y, alpha, epochs)#(array([ 4.93, -6.98]), array([-3.3]))
print(L)#函数为f(x)=4.93∗x1−6.98∗x2−3.3
"""求解分类正确率
"""
w1 = L[0][0]
w2 = L[0][1]
b = L[1]

z = np.dot(X, np.array([w1, w2]).T) + b    #f(x)式子
np.sign(z)   #感知机公式

from sklearn.metrics import accuracy_score

a=accuracy_score(Y, np.sign(z))   #预测准确率   0.986666666666
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值