DL之GD:利用LogisticGD算法(梯度下降)依次基于一次函数和二次函数分布的数据集实现二分类预测(超平面可视化)

简介: DL之GD:利用LogisticGD算法(梯度下降)依次基于一次函数和二次函数分布的数据集实现二分类预测(超平面可视化)


目录

利用LogisticGD算法(梯度下降)依次基于一次函数和二次函数分布的数据集实现二分类预测(超平面可视化)

设计思路

输出结果

核心代码


 

 

 

相关文章

DL之GD:利用LogisticGD算法(梯度下降)依次基于一次函数和二次函数分布的数据集实现二分类预测(超平面可视化)

DL之GD:利用LogisticGD算法(梯度下降)依次基于一次函数和二次函数分布的数据集实现二分类预测(超平面可视化)实现

 

利用LogisticGD算法(梯度下降)依次基于一次函数和二次函数分布的数据集实现二分类预测(超平面可视化)

设计思路

后期更新……

 

 

 

输出结果

1.  [ 1.          0.06747879 -0.97085008]
2. data_x 
3.  (300, 3) [[ 1.          0.83749402  0.80142971]
4.  [ 1.         -0.93315714  0.91389867]
5.  [ 1.         -0.72558136 -0.43234329]
6.  [ 1.          0.21216637  0.88845027]
7.  [ 1.          0.70547108 -0.99548153]]
8. 因为Linear_function函数无意义,经过Linear_function函数处理后,data_x等价于data_z
9. data_y 
10.  (300,) [-1. -1. -1. -1.  1.]
11. data_x: (300, 3)
12. data_z: (300, 3)
13. data_y: (300,)
14. [228 106 146 250  91 214  47  49 178  90]
15. Number of iterations: 26
16. 
17. Plot took 0.10 seconds.
18. Plot took 0.04 seconds.
19. Target weights: [ -0.49786797   5.28778784 -11.997255  ]
20. Target in-sample error: 3.33%
21. Target out-of-sample error: 6.21%
22. Hypothesis (N=300) weights: [-0.45931854  3.20434478 -7.70825364]
23. Hypothesis (N=300) in-sample error: 4.33%
24. Hypothesis (N=300) out-of-sample error: 6.08%
25. Hypothesis (N=10) weights: [-1.35583449  3.90067866 -5.99553537]
26. Hypothesis (N=10) in-sample error: 10.00%
27. Hypothesis (N=10) out-of-sample error: 12.87%
28. Error history took 88.89 seconds.
29. Plot took 17.72 seconds.
30. Plot took 35.88 seconds.
31. GD_w_hs[-1] [-1.35583449  3.90067866 -5.99553537]
32. dimension_z 5
33. data_x 
34.  (30, 3) [[ 1.         -0.0609991  -0.15447425]
35.  [ 1.         -0.13429796 -0.89691689]
36.  [ 1.          0.12475253  0.36980185]
37.  [ 1.         -0.0182513   0.74771272]
38.  [ 1.          0.50585605 -0.04961719]]
39. 因为Linear_function函数无意义,经过Linear_function函数处理后,data_x等价于data_z
40. data_y 
41.  (30,) [-1.  1.  1.  1. -1.]
42. 
43. Plot took 1.02 seconds.
44. Number of iterations: 105
45. 
46. Plot took 1.03 seconds.
47. Target weights: [-3  2  3  6  9 10]
48. Hypothesis weights: [-1.23615696 -0.9469097   1.76449666  2.09453304  5.62678124  5.06054409]
49. Hypothesis in-sample error: 10.00%
50. Hypothesis out-of-sample error: 15.47%
51. Plot took 16.58 seconds.
52. GD_w_hs[-1] [-1.23615696 -0.9469097   1.76449666  2.09453304  5.62678124  5.06054409]

核心代码

1. def in_sample_error(z, y, logisticGD_function):
2.     y_h = (logisticGD_function(z) >= 0.5)*2-1
3. return np.sum(y != y_h) / float(len(y))
4. 
5. 
6. def estimate_out_of_sample_error(Product_x_function, NOrderPoly_Function,Pre_Logistic_function, logisticGD_function, N=10000, Linear_function_h=None):
7.     x = np.array([Product_x_function() for i in range(N)])
8.     z = np.apply_along_axis(NOrderPoly_Function, 1, x)
9. if not Linear_function_h is None:
10.         z_h = np.apply_along_axis(Linear_function_h, 1, x)
11. else:
12.         z_h = z
13.     y = Pre_Logistic_function(z)
14.     y_h = (logisticGD_function(z_h) >= 0.5)*2-1
15. return np.sum(y != y_h) / float(N)
16. 
17. 
18. def ErrorCurve_Plot(N,GD_w_hs, cross_entropy_error):
19.     start_time = time.time()
20.     fig = plt.figure()   #  figsize=(8, 6)
21.     ax = fig.add_subplot(1, 1, 1)
22.     ax.set_xlabel(r'Iteration', fontsize=12)
23.     ax.set_ylabel(r'In-Sample Error ($E_{in}$)', fontsize=12)
24.     ax.set_title(r'Gradient Descent Evolution, N={}'.format(N), fontsize=12)
25.     ax.set_xlim(0, GD_w_hs.shape[0]-1)
26.     ax.set_ylim(0, 1)
27.     ax.xaxis.grid(color='gray', linestyle='dashed')
28.     ax.yaxis.grid(color='gray', linestyle='dashed')
29.     ax.set_axisbelow(True)
30.     ax.plot(range(GD_w_hs.shape[0]), np.apply_along_axis(cross_entropy_error, 1, GD_w_hs), 'r-')
31.     plt.show()
32. print('Plot took {:.2f} seconds.'.format(time.time()-start_time))


相关文章
|
2月前
|
机器学习/深度学习 人工智能 算法
【新闻文本分类识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
文本分类识别系统。本系统使用Python作为主要开发语言,首先收集了10种中文文本数据集("体育类", "财经类", "房产类", "家居类", "教育类", "科技类", "时尚类", "时政类", "游戏类", "娱乐类"),然后基于TensorFlow搭建CNN卷积神经网络算法模型。通过对数据集进行多轮迭代训练,最后得到一个识别精度较高的模型,并保存为本地的h5格式。然后使用Django开发Web网页端操作界面,实现用户上传一段文本识别其所属的类别。
90 1
【新闻文本分类识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
|
1月前
|
存储 缓存 分布式计算
数据结构与算法学习一:学习前的准备,数据结构的分类,数据结构与算法的关系,实际编程中遇到的问题,几个经典算法问题
这篇文章是关于数据结构与算法的学习指南,涵盖了数据结构的分类、数据结构与算法的关系、实际编程中遇到的问题以及几个经典的算法面试题。
30 0
数据结构与算法学习一:学习前的准备,数据结构的分类,数据结构与算法的关系,实际编程中遇到的问题,几个经典算法问题
|
1月前
|
移动开发 算法 前端开发
前端常用算法全解:特征梳理、复杂度比较、分类解读与示例展示
前端常用算法全解:特征梳理、复杂度比较、分类解读与示例展示
21 0
|
2月前
|
机器学习/深度学习 算法 数据挖掘
决策树算法大揭秘:Python让你秒懂分支逻辑,精准分类不再难
【9月更文挑战第12天】决策树算法作为机器学习领域的一颗明珠,凭借其直观易懂和强大的解释能力,在分类与回归任务中表现出色。相比传统统计方法,决策树通过简单的分支逻辑实现了数据的精准分类。本文将借助Python和scikit-learn库,以鸢尾花数据集为例,展示如何使用决策树进行分类,并探讨其优势与局限。通过构建一系列条件判断,决策树不仅模拟了人类决策过程,还确保了结果的可追溯性和可解释性。无论您是新手还是专家,都能轻松上手,享受机器学习的乐趣。
47 9
|
3月前
|
数据采集 机器学习/深度学习 算法
【python】python客户信息审计风险决策树算法分类预测(源码+数据集+论文)【独一无二】
【python】python客户信息审计风险决策树算法分类预测(源码+数据集+论文)【独一无二】
|
3月前
|
存储 算法 安全
密码算法的分类
【8月更文挑战第23天】
97 0
|
26天前
|
算法 安全 数据安全/隐私保护
基于game-based算法的动态频谱访问matlab仿真
本算法展示了在认知无线电网络中,通过游戏理论优化动态频谱访问,提高频谱利用率和物理层安全性。程序运行效果包括负载因子、传输功率、信噪比对用户效用和保密率的影响分析。软件版本:Matlab 2022a。完整代码包含详细中文注释和操作视频。
|
11天前
|
算法 数据挖掘 数据安全/隐私保护
基于FCM模糊聚类算法的图像分割matlab仿真
本项目展示了基于模糊C均值(FCM)算法的图像分割技术。算法运行效果良好,无水印。使用MATLAB 2022a开发,提供完整代码及中文注释,附带操作步骤视频。FCM算法通过隶属度矩阵和聚类中心矩阵实现图像分割,适用于灰度和彩色图像,广泛应用于医学影像、遥感图像等领域。
|
12天前
|
算法 调度
基于遗传模拟退火混合优化算法的车间作业最优调度matlab仿真,输出甘特图
车间作业调度问题(JSSP)通过遗传算法(GA)和模拟退火算法(SA)优化多个作业在并行工作中心上的加工顺序和时间,以最小化总完成时间和机器闲置时间。MATLAB2022a版本运行测试,展示了有效性和可行性。核心程序采用作业列表表示法,结合遗传操作和模拟退火过程,提高算法性能。
|
13天前
|
存储 算法 决策智能
基于免疫算法的TSP问题求解matlab仿真
旅行商问题(TSP)是一个经典的组合优化问题,目标是寻找经过每个城市恰好一次并返回起点的最短回路。本文介绍了一种基于免疫算法(IA)的解决方案,该算法模拟生物免疫系统的运作机制,通过克隆选择、变异和免疫记忆等步骤,有效解决了TSP问题。程序使用MATLAB 2022a版本运行,展示了良好的优化效果。