当前位置: 首页 > news >正文

营销类网站怎么做钓鱼网站

营销类网站,怎么做钓鱼网站,ui在线设计工具,wordpress家谱机器学习系列文章 入门必读#xff1a;机器学习介绍 文章目录 机器学习系列文章前言1. 感知机1.1 感知机定义1.2 感知机学习策略 2. 代码实现2.1 构建数据2.2 编写函数2.3 迭代 3. 总结 前言 大家好#xff0c;大家好✨#xff0c;这里是bio#x1f996;。这次为大家带来…机器学习系列文章 入门必读机器学习介绍 文章目录 机器学习系列文章前言1. 感知机1.1 感知机定义1.2 感知机学习策略 2. 代码实现2.1 构建数据2.2 编写函数2.3 迭代 3. 总结 前言 大家好大家好✨这里是bio。这次为大家带来的是感知机模型。下面跟我一起来了解感知机模型吧 感知机 (Perceptron) 是二类分类的线性分类模型 其输入为实例的特征向量 输出为实例的类别 分别为 1 和 -1。1957年由康奈尔航空实验室Cornell Aeronautical Laboratory弗兰克·罗森布拉特 Frank Rosenblatt提出。它可以被视为一种最简单形式的前馈神经网络是一种二元线性分类器。在人工神经网络领域中感知机也被指为单层的人工神经网络以区别于较复杂的多层感知机。 1. 感知机 1.1 感知机定义 感知器使用特征向量来表示二元分类器把矩阵上的输入 x \mathcal{x} x实数值向量映射到输出值 y \mathcal{y} y 上一个二元的值。 f ( x ) { 1 , i f w ⋅ x b 0 − 1 , e l s e f(x) \begin{cases} 1,\,\, if\,w\cdot xb0\\ -1,\,\,else\\ \end{cases} f(x){1,ifw⋅xb0−1,else​ w \mathcal{w} w 是实数的表示权重的向量 w ⋅ x \mathcal{w} \cdot \mathcal{x} w⋅x 是点积。 b \mathcal{b} b 是偏置一个不依赖于任何输入值的常数。 1.2 感知机学习策略 假设训练数据集是线性可分的 如下图所示。感知机学习的目标是求得一个能够将训练集正实例点和负实例点完全正确分开的直线 L \mathcal{L} L。 为了找出这样的超平而 即确定感知机模型参数 w \mathcal{w} w b \mathcal{b} b 需要确定一个学习策略 即定义损失函数并将损失函数极小化 。 损失函数的一个选择是误分类数据点的数量 。 但是这样的损失函数不是参数 w \mathcal{w} w b \mathcal{b} b 的连续可导函数不易优化 。 损失函数的另一个选择是误分类数据点到直线 L \mathcal{L} L 的总距离。感知机所采用的就是后者 。 对于错误分类的数据点 ( x i , y i ) (\mathcal{x_i, y_i}) (xi​,yi​)总有 − y i ⋅ ( w ⋅ x i b ) 0 \mathcal{-y_i\cdot(w\cdot x_ib) 0} −yi​⋅(w⋅xi​b)0错误分类点到直线 L \mathcal{L} L 的距离为 1 ∥ w ∥ ∣ w ⋅ x i b ∣ \mathcal{\frac{1}{\|w\|} \vert w \cdot x_i b \vert} ∥w∥1​∣w⋅xi​b∣假设直线 L \mathcal{L} L 的误分类点集合为 m \mathcal{m} m 那么所有误分类点到直线 L \mathcal{L} L 的总距离为 − 1 ∥ w ∥ ∑ i m y i ⋅ ( w ⋅ x i b ) \mathcal{-\frac{1}{\|w\|} \sum_{i}^{m}y_i\cdot(w \cdot x_i b)} −∥w∥1​i∑m​yi​⋅(w⋅xi​b)不考虑 1 ∥ w ∥ \mathcal{\frac{1}{\|w\|}} ∥w∥1​感知机的损失函数为 K ( w , b ) − ∑ i m y i ⋅ ( w ⋅ x i b ) \mathcal{K(w, b) - \sum_{i}^{m}y_i\cdot(w \cdot x_i b)} K(w,b)−i∑m​yi​⋅(w⋅xi​b) 显然损失函数 K \mathcal{K} K 是非负的。如果没有误分类点损失函数值是 0 。而且误分类点越少误分类点离超平面越近损失函数值就越小 。 而感知机的优化算法采用的是随机梯度下降算法 Stochastic Gradient Descent后续更新用误分类数据驱动损失函数 K \mathcal{K} K 不断减小。本文将采取二维数据来展示感知机的工作过程。 2. 代码实现 2.1 构建数据 首先创建二维数据并用线性回归模型拟合出直线 L \mathcal{L} L。代码如下 import numpy as np from sklearn.datasets import make_classification from sklearn import linear_model import matplotlib.pyplot as plt import random# two-dimention data td_data make_classification(n_samples20, n_features2, n_informative2, n_redundant0, n_clusters_per_class1, random_state24)td_data list(td_data) td_data[1] np.array([1 if i 0 else -1 for i in td_data[1]]) td_data tuple(td_data)# visualized data fig, ax plt.subplots() scatter ax.scatter(td_data[0][:, 0], td_data[0][:, 1], ctd_data[1], alpha0.6, cmapcool) legend_1 ax.legend(*scatter.legend_elements(), titleClasses, locupper left) ax.add_artist(legend_1) ax.set_xlabel(Feature_1) ax.set_ylabel(Feature_2)# add minimal residual sum of squares line as gold standard reg linear_model.LinearRegression()# reshape for model fitting reg.fit(td_data[0][:, 0].reshape(-1, 1), td_data[0][:, 1].reshape(-1, 1)) print(fthe intercept is {reg.intercept_[0]} and the coefficient is {reg.coef_[0][0]}) formula ff(x){round(reg.coef_[0][0], 2)}*x1-x2{round(reg.intercept_[0], 2)}# create a x axis for plotting create_x_axis np.linspace(min(td_data[0][:, 0]), max(td_data[0][:, 0]), 100).reshape(-1, 1) predicted_value reg.predict(create_x_axis)ax.plot(create_x_axis, predicted_value, cgold, alpha0.8, labelformula) handles, labels ax.get_legend_handles_labels() legend_2 ax.legend(handles, labels, loclower right)plt.show()根据代码输出的结果可知由线性回归模型拟合出的直线 L 0.53 x 1 x 2 − 0.6 \mathcal{L 0.53x_1x_2-0.6} L0.53x1​x2​−0.6。 2.2 编写函数 接下来编写可复用的函数减少代码编写量。partial_derivative_w 函数用于对变量 w \mathcal{w} w 求偏导partial_derivative_b 函数用于对变量 b \mathcal{b} b 求偏导decision_funtion 函数用于决策是否继续进行迭代plot_function 函数绘制迭代结果图。 # take the partial derivative of w and b def partial_derivative_w(data_point, label_point):# feature_1 * feature_2 * yresult_w_1 data_point[0] * label_pointresult_w_2 data_point[1] * label_pointreturn [result_w_1, result_w_2]def partial_derivative_b(label_point):# labelresult_b label_pointreturn result_b# decision function. w and b will be change if exist data point make def decision_funtion(weight_1, weigh_2, intercept):# if y*(w*xb) 0, the data point is wrongly classified.result td_data[1] * ((td_data[0][:, 0] * weight_1) (td_data[0][:, 1] * weight_2) intercept)if len(result[np.where(result 0)]) ! 0:print(result)wrong_dp_index np.where(result result[np.where(result 0)][0])[0][0]wrong_dp td_data[0][wrong_dp_index]wrong_lb td_data[1][wrong_dp_index]return [True, wrong_dp, wrong_lb]else:print(interation end)return [False, None, None]def plot_function(weight_1, weight_2, intercept):fig, ax plt.subplots()scatter ax.scatter(td_data[0][:, 0], td_data[0][:, 1], ctd_data[1], alpha0.6)ax.legend(*scatter.legend_elements(), titleClasses)ax.set_xlabel(Feature_1)ax.set_ylabel(Feature_2)b intercept/weight_2hyperplane [(-(weight_1/weight_2) * i) - b for i in create_x_axis]ax.plot(create_x_axis, hyperplane, cgreen, alpha0.5)plt.show()2.3 迭代 设置特征一的初始权重为 0特征二的初始权重为 0初始截距为 0学习率为 0.1迭代次数为1000次随机从数据中选择一个数据点作为分类错误数据点后开始迭代。 # initiate weight, intercept and learning rate weight_1 0 weight_2 0 intercept 0 learn_rate 0.1# iteration times iteration_times 1000# random value in two dimention data random_index random.randint(0, 19) feature_point td_data[0][random_index] label_point td_data[1][random_index] # it is not correctly classified for any data point resulting in loss function equte 0.for iteration in range(iteration_times):# w1 w0 (learn_rate * y * x)new_weight_1 weight_1 (learn_rate * partial_derivative_w(feature_point, label_point)[0])new_weight_2 weight_2 (learn_rate * partial_derivative_w(feature_point, label_point)[1])# b1 b0 learn_rate * ynew_intercept intercept (learn_rate * partial_derivative_b(label_point))# decisiondecision_condition, wrong_dp, wrong_lp decision_funtion(new_weight_1, new_weight_2, new_intercept)if decision_condition:weight_1 new_weight_1weight_2 new_weight_2intercept new_intercept# wrong data pointfeature_point wrong_dplabel_point wrong_lpprint(fThe {iteration 1} iteration\tweight_1{weight_1}\tweight_2{weight_2}\tintercept{intercept}\n)plot_function(weight_1, weight_2, intercept)else:print(fThe {iteration 1} iteration\tweight_1{new_weight_1}\tweight_2{new_weight_2}\tintercept{new_intercept}\n)plot_function(new_weight_1, new_weight_2, new_intercept)break迭代结果如下表所示在迭代到第八次的时候感知机模型成功将所有数据点正确分类。 迭代次数效果图片12345678 3. 总结 以上就是本次更新的全部内容。关于本次内容有一下缺点: 用于迭代的错误分类数据点没有被绘制出来。由于跳过了大部分数学知识内容衔接没有做好。迭代数据点完全随机复现过程可能不同。 后续将会更新 感知机模型的数学解释随机梯度算法的解释可视化迭代过程的错误分类数据点可能 喜欢本次内容的小伙伴麻烦点赞关注。
http://www.zqtcl.cn/news/909023/

相关文章:

  • 卖设计图的网站低代码开发平台公司
  • 建设银行顺德分行网站中国建筑装饰公司排名
  • 百度网站提交入口百度国内打开google网页的方法
  • 上海高端品牌网站制作wordpress返利主题
  • 网站建设会遇到哪些难题安阳网站如何做优化
  • 哈德网站建设使用wordpress创建企业官网
  • 新品销售网站建设建设银行网站怎么登陆密码
  • 外贸营销主题怎么写seo薪资
  • 手机音乐网站源码关键路径
  • 网站制作哪些官方静态网站模板
  • 网站开发seo网站排名优化服务
  • 佛山营销网站开发帝国cms网站公告怎么做
  • 2_试列出网站开发建设的步骤在哪里进行网站域名的实名认证
  • 个人网站做博客还是做论坛网络服务推广
  • 遵义网站制作小程序辛集做网站
  • 做逆战网站的名字吗网站维护员
  • 浏览器收录网站重庆网上房地产网
  • 门户网站建设哪专业wordpress爆破密码字典
  • 响应式网站的制作app开发公司加盟
  • 建设部安全事故通报网站sem是什么分析方法
  • 北京网站制作出名 乐云践新手机建站专家
  • 做机械有什么兼职网站安徽网站优化怎么做
  • 网站建设规划semir是什么品牌
  • 网站建设开发环境自学服装设计下载
  • 南京网站建设公司哪家好设计教程网站有哪些
  • 网页和网站做哪个好用吗陕西陕煤建设集团有限公司网站
  • 网站建设系统优势设计欣赏
  • 河北省网站建设东莞网站开发哪家好
  • php做学校网站免费苏州网站建设的公司
  • 网站做rss+wordpresswordpress动漫插件