一级a做爰网站中国php 金融网站源码
一级a做爰网站中国,php 金融网站源码,yw77731域名查询,郑州建设信息网劳务服务系统实验三 一 实验名称
感知器设计
二 目的和意义
使用感知器完成线性分类任务
三 操作步骤或算法结构 数据预处理。载入数据文件#xff08; iris.csv 文件#xff09;中的数据#xff0c;并将其分成样本向量矩阵X和样本分类结果向量 G \bf G G。 给 4 4 4 列向量的… 实验三
一 实验名称
感知器设计
二 目的和意义
使用感知器完成线性分类任务
三 操作步骤或算法结构 数据预处理。载入数据文件 iris.csv 文件中的数据并将其分成样本向量矩阵X和样本分类结果向量 G \bf G G。 给 4 4 4 列向量的 X X X 在最前增加一列常数 1 1 1得到增广向量 y y y 。定义增广权向量 α α α取各项初值为 1 1 1 。 根据错分惩罚的感知器准则函数原理设计感知器公式 8.1 8.1 8.1 到 8.4 8.4 8.4及教材 150 页算法 8-1 将包含三类的样本 X X X 分别训练。取出每一类的 80 % 80\% 80% 作为训练样本剩余 20 % 20\% 20% 作为对比样本。第一次训练将第一类训练样本保持不变第二第三类取负值分类判断出第一类样本。第二次训练将剩余样本的第二类保持不变第三类取负值试训练第二类样本。观察两次训练的结果是否收敛。 公式 8.1 8.1 8.1 f ( x ) sign ( ω T x b ) { 1 ω T x b ≥ 0 − 1 o t h e r s f(\textbf x) \textbf {sign} (\omega^T\textbf xb) \begin{cases}1 \ \ \omega^Tx b \geq 0 \\-1\ \ others\end{cases} f(x)sign(ωTxb){1 ωTxb≥0−1 others 公式 8.2 8.2 8.2 sign ( x ) { 1 x ≥ 0 − 1 x 0 \textbf {sign}(\textbf x) \begin{cases}1\ \ \textbf x \geq 0 \\-1\ \ \textbf x 0\ \end{cases} sign(x){1 x≥0−1 x0 公式 8.3 8.3 8.3 − 1 ∣ ∣ ω ∣ ∣ ∑ x i ∈ M y i ( ω T x i b ) -\frac{1}{||\omega||}\sum\limits_{x_i \in M}y_i(\omega^T\textbf x_ib) −∣∣ω∣∣1xi∈M∑yi(ωTxib) 公式 8.4 8.4 8.4 ∂ L i ( ω , b ) ∂ ω − y i x i ∂ L i ( ω , b ) ∂ b − y i \frac{\partial L_i(\omega,b)}{\partial \omega} -y_i\textbf x_i\\\frac{\partial L_i(\omega,b)}{\partial b} -y_i ∂ω∂Li(ω,b)−yixi∂b∂Li(ω,b)−yi 调整上述步骤中的步长、训练样本分类方式和迭代次数参数重复实验观察结果。试推测感知器训练不收敛的可能原因。
四 结构程序设计
读取数据
import pandas as pdiris pd.read_csv(iris.csv)训练模型
import pandas as pd
import numpy as np
from sklearn.datasets import load_iris
import matplotlib.pyplot as pltiris load_iris()
df pd.DataFrame(iris.data, columns[sepal length, sepal width, petal length, petal width])
df[label] iris.targetdata np.array(df.iloc[:100, [0, 1, -1]])
X, y data[:, :-1], data[:, -1]
y np.array([1 if i 1 else -1 for i in y])# 感知机模型
class Model:def __init__(self):self.w np.ones(len(data[0]) - 1, dtypenp.float64)self.b 0self.rate 0.1def sign(self, x, w, b):y np.dot(x, w) breturn ydef fit(self, X_train, y_train):fault Falsewhile not fault:wrong_count 0for d in range(len(X_train)):x X_train[d]y y_train[d]if y * self.sign(x, self.w, self.b) 0:self.w self.w self.rate * np.dot(y, x)self.b self.b self.rate * ywrong_count 1if wrong_count 0:fault Truereturn successperceptron Model()
perceptron.fit(X, y)x np.linspace(3, 6, 10)
y -(perceptron.w[0] * x perceptron.b) / perceptron.w[1]
plt.plot(x, y)plt.plot(data[:50, 0], data[:50, 1], bo, colorblue, label0)
plt.plot(data[50:100, 0], data[50:100, 1], bo, colorred, label1)
plt.legend()
plt.show()五 结果讨论与分析 可见感知机在该数据集上有非常好的分类效果。
对于较为简单的数据不需要使用更加复杂的深度神经网络结构使用传统的机器学习算法即可。不仅能够同样取得非常好的效果并且在可解释性和算力要求上有优势。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/90020.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!