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))


相关文章
|
8月前
|
算法 机器人 定位技术
【VRPTW】基于matlab秃鹰算法BES求解带时间窗的骑手外卖配送路径规划问题(目标函数:最优路径成本 含服务客户数量 服务时间 载量 路径长度)(Matlab代码实现)
【VRPTW】基于matlab秃鹰算法BES求解带时间窗的骑手外卖配送路径规划问题(目标函数:最优路径成本 含服务客户数量 服务时间 载量 路径长度)(Matlab代码实现)
235 0
|
7月前
|
机器学习/深度学习 传感器 算法
基于matlab瞬态三角哈里斯鹰算法TTHHO多无人机协同集群避障路径规划(目标函数:最低成本:路径、高度、威胁、转角)(Matlab代码实现)
基于matlab瞬态三角哈里斯鹰算法TTHHO多无人机协同集群避障路径规划(目标函数:最低成本:路径、高度、威胁、转角)(Matlab代码实现)
259 1
|
8月前
|
算法 机器人 定位技术
基于机器视觉和Dijkstra算法的平面建筑群地图路线规划matlab仿真
本程序基于机器视觉与Dijkstra算法,实现平面建筑群地图的路径规划。通过MATLAB 2022A读取地图图像,识别障碍物并进行路径搜索,支持鼠标选择起点与终点,最终显示最优路径及长度,适用于智能导航与机器人路径规划场景。
|
8月前
|
机器学习/深度学习 算法 数据挖掘
【配送路径规划】基于螳螂虾算法MShOA求解带时间窗的骑手外卖配送路径规划问题(目标函数:最优路径成本 含服务客户数量 服务时间 载量 路径长度)研究(Matlab代码实现)
【配送路径规划】基于螳螂虾算法MShOA求解带时间窗的骑手外卖配送路径规划问题(目标函数:最优路径成本 含服务客户数量 服务时间 载量 路径长度)研究(Matlab代码实现)
290 0
|
8月前
|
算法 Python
【配送路径规划】基于遗传算法求解带时间窗的电动汽车配送路径规划(目标函数:最小成本;约束条件:续驶里程、额定载重量、数量、起始点)研究(Matlab代码实现)
【配送路径规划】基于遗传算法求解带时间窗的电动汽车配送路径规划(目标函数:最小成本;约束条件:续驶里程、额定载重量、数量、起始点)研究(Matlab代码实现)
265 0
|
机器学习/深度学习 算法 数据挖掘
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构。本文介绍了K-means算法的基本原理,包括初始化、数据点分配与簇中心更新等步骤,以及如何在Python中实现该算法,最后讨论了其优缺点及应用场景。
1544 6
|
机器学习/深度学习 算法 数据可视化
利用SVM(支持向量机)分类算法对鸢尾花数据集进行分类
本文介绍了如何使用支持向量机(SVM)算法对鸢尾花数据集进行分类。作者通过Python的sklearn库加载数据,并利用pandas、matplotlib等工具进行数据分析和可视化。
1210 70
|
搜索推荐 Python
利用Python内置函数实现的冒泡排序算法
在上述代码中,`bubble_sort` 函数接受一个列表 `arr` 作为输入。通过两层循环,外层循环控制排序的轮数,内层循环用于比较相邻的元素并进行交换。如果前一个元素大于后一个元素,就将它们交换位置。
335 67
|
机器学习/深度学习 算法 大数据
机器学习入门:梯度下降算法(下)
机器学习入门:梯度下降算法(下)
|
机器学习/深度学习 算法
机器学习入门:梯度下降算法(上)
机器学习入门:梯度下降算法(上)

热门文章

最新文章