python_MachineLearning_感知机PLA

感知机:线性二类分类器(linear binary classifier)
 

感知机(perceptron)是二类分类的线性模型,其输入为实例的特征向量,输出为实例的类别,取+1和-1二值。感知机对应于输入空间(特征空间)中将实例划分为正负两类的分离超平面,属于判别模型。感知机学习旨在求出将训练数据进行线性划分的分离超平面,为此,导入基于误差分类的损失函数,利用梯度下降法对损失函数进行极小化,求得感知机模型。

 
 

 

import numpy as np
import matplotlib.pyplot as plt

datafile = open('data.txt')

xx = []
yy = []

#read data from file
line = datafile.readline()
while line:
    p = line.split()
    print(p)
    xx.append((1, float(p[0]), float(p[1])))
    yy.append(int(p[2]))
    line = datafile.readline()

print(xx)
print(yy)
xx_arr = np.array(xx)  #numpy的array,相当于向量,可用于运算
yy_arr = np.array(yy)

w = np.array([1, 0, 0])
delta = 1

for i in range(100):
    false = -1
    for j in range(len(xx_arr)):
        if int(yy_arr[j]) != np.sign(np.dot(w, xx_arr[j])): #numpy.dot求两向量内积
            false = j
            break
    if false == -1:
        break
    w = w + delta * yy_arr[false] * xx_arr[false] #更新w向量

#使用matplotlib.pyplot绘制函数
line_x1 = np.linspace(0,5,50) #生成[0,5]之间均匀分布的50个x1
line_x2 = [(-w[1]*x-w[0])/w[2] for x in line_x1] #每个x1对应的x2
plt.plot(line_x1,line_x2)

#使用matplotlib.pyplot绘制点
for i in range(len(xx_arr)):
    if yy_arr[i] == 1:
        plt.plot(float(xx_arr[i][1]), float(xx_arr[i][2]),'go')
    else:
        plt.plot(float(xx_arr[i][1]), float(xx_arr[i][2]), 'ro')

plt.show()

 

转载于:https://www.cnblogs.com/jasonlixuetao/p/9843777.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
watson_machine_learning_client是一个Python库,用于与Watson机器学习服务进行交互。通过导入"from watson_machine_learning_client import WatsonMachineLearningApiClient",我们可以创建一个WatsonMachineLearningApiClient对象,然后使用它来访问和管理Watson机器学习服务。 Watson Machine Learning是一个IBM云服务,它提供了一系列功能来帮助开发人员和数据科学家构建、训练和部署机器学习模型。WatsonMachineLearningApiClient是一个客户端库,它简化了与Watson Machine Learning服务的通信,并提供了一些便捷的方法和功能来管理模型的生命周期。 通过WatsonMachineLearningApiClient,我们可以执行以下操作: 1. 创建和管理模型实例:我们可以使用WatsonMachineLearningApiClient的方法来创建模型实例、查看和更新实例的详细信息,并删除不再需要的实例。 2. 上传和下载模型:我们可以使用WatsonMachineLearningApiClient上传已经训练的机器学习模型,以便在Watson Machine Learning服务上部署和使用该模型。同样,我们也可以使用ApiClient从服务上下载和保存已经部署的模型。 3. 部署和管理模型服务:WatsonMachineLearningApiClient提供了一些方法来部署机器学习模型作为云服务,然后我们可以使用ApiClient管理和监控这些部署的服务。我们可以控制模型服务的启动与停止,并查看服务的详细信息和性能指标。 4. 提供模型的预测服务:使用WatsonMachineLearningApiClient,我们可以编写代码来调用部署的机器学习服务,通过输入数据进行预测,并获取预测结果。 总之,通过使用WatsonMachineLearningApiClient,我们可以方便地连接和管理Watson机器学习服务,从而更有效地构建、训练和部署机器学习模型。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值