Tue May 20 22:22:19 2025 perceptron_test(): python version: 3.10.12 numpy version: 1.26.4 Use the perceptron algorithm to determine a classifier for sets of data. dividing_line_test(): Apply the perceptron to an artificial data set. Points (x,y) are in set 0 if y < 3x + 2 Points (x,y) are in set 1 if y > 3x + 2 Generate 25 points at random and search for a classifier using the perceptron algorithm Number of training data values = 25 Training data: [[0.00000000e+00 5.48853558e-01 2.28520448e+00 0.00000000e+00] [1.00000000e+00 2.09172037e-01 2.46961184e+00 0.00000000e+00] [2.00000000e+00 2.37940914e-01 2.91613866e+00 1.00000000e+00] [3.00000000e+00 2.63612220e-01 4.98364220e+00 1.00000000e+00] [4.00000000e+00 1.74363724e-01 2.55737812e+00 1.00000000e+00] [5.00000000e+00 6.44138098e-01 4.86159269e+00 1.00000000e+00] [6.00000000e+00 2.68704314e-01 4.17198630e+00 1.00000000e+00] [7.00000000e+00 6.45885709e-01 2.29719923e+00 0.00000000e+00] [8.00000000e+00 4.80114400e-01 4.33877905e+00 1.00000000e+00] [9.00000000e+00 3.58845448e-01 4.41496823e+00 1.00000000e+00] [1.00000000e+01 5.07678780e-02 2.09820920e+00 0.00000000e+00] [1.10000000e+01 4.02045786e-01 3.42603110e+00 1.00000000e+00] [1.20000000e+01 8.57537429e-01 2.26282105e+00 0.00000000e+00] [1.30000000e+01 6.12238953e-01 2.38061752e+00 0.00000000e+00] [1.40000000e+01 3.33987334e-02 2.90741765e+00 1.00000000e+00] [1.50000000e+01 8.42187155e-01 2.91825224e+00 0.00000000e+00] [1.60000000e+01 7.20420338e-01 3.39020872e+00 0.00000000e+00] [1.70000000e+01 4.97258744e-01 3.90484925e+00 1.00000000e+00] [1.80000000e+01 3.36950334e-01 2.45559661e+00 0.00000000e+00] [1.90000000e+01 8.93034401e-03 4.62364764e+00 1.00000000e+00] [2.00000000e+01 7.67367027e-01 2.70743383e+00 0.00000000e+00] [2.10000000e+01 1.38427468e-01 3.18510793e+00 1.00000000e+00] [2.20000000e+01 3.15829884e-01 2.96731111e+00 1.00000000e+00] [2.30000000e+01 7.55613686e-02 2.61370788e+00 1.00000000e+00] [2.40000000e+01 9.14990441e-02 4.44844112e+00 1.00000000e+00]] 25 good y, and 25 bad y 0.00893034 <= X <= 0.857537 2.09821 <= Y <= 4.98364 GOOD: mean X = 0.266045, mean Y = 3.75473 BAD: mean X = 0.559138, mean Y = 2.52652 Graphics saved as "dividing_line_data.png" Using learning rate alpha = 0.05 Using 1000 steps Iteration terminated without convergence on step 1000 e = 6 Perceptron weights: f(x) = -0.771604 + -0.472154 * x + 0.42626 * y Index x*w (0 {0, 1} Generator ratings Number of generators = 56 56 good generators, and 56 bad generators 562 <= RPM <= 939 79 <= VIB <= 585 GOOD: mean RPM = 740.75, mean VIB = 447.286 BAD: mean RPM = 741.964, mean VIB = 219.857 Graphics saved as "generator_ratings_data.png" All training data classified on step 8 Perceptron weights: f(x) = -0.541674 + 0.397848 * r + 0.740477 * v Index x*w (0