Lasso 回归

 

有一组给定的x1x2y的值如下表,用lasso回归拟合数据

x1

1.1

1.4

1.7

1.7

1.8

1.8

1.9

2.0

2.3

2.4

x2

1.1

1.5

1.8

1.7

1.9

1.8

1.8

2.1

2.4

2.5

y

16.3

16.8

19.2

18

19.5

20.9

21.1

20.9

20.3

22

代码如下:


A

1

[[1.1,1.1],[1.4,1.5],[1.7,1.8],[1.7,1.7],[1.8,1.9],[1.8,1.8],[1.9,1.8],[2.0,2.1],[2.3,2.4],[2.4,2.5]]

2

[16.3,16.8,19.2,18,19.5,20.9,21.1,20.9,20.3,22]

3

=lasso(A1,A2,0.01,10000)

4

=lasso(A1,A3)

5

=canvas()

6

=A5.plot("NumericAxis","name":"y_pre","autoCalcValueRange":false,"autoRangeFromZero":false,"maxValue":25,"minValue":15,"title":" prediction data ")

7

=A5.plot("NumericAxis","name":"y","location":2,"autoCalcValueRange":false,"autoRangeFromZero":false,"maxValue":25,"minValue":15,"title":"observation data","titleAngle":270)

8

=A5.plot("Dot","lineWeight":0,"lineColor":-16776961,"markerWeight":1,"axis1":"y_pre","data1":A4.conj(),"axis2":"y","data2": A2)

9

=to(15:25)

10

=A5.plot("Line","markerStyle":0,"axis1":"y_pre","data1":A9,"axis2":"y", "data2":A9)

11

=A5.draw(600,600)

A1 输入数据x

A2输入数据y

A3lasso拟合数据,0.01 表示学习率,10000 表示迭代次数,返回模型信息。

A3(1)系数矩阵

A3(2)截距

..

A4 A3拟合的模型在A1上进行预测,返回预测结果

..

A5-A11 画图对比预测值和真实值,评估模型效果。横轴表示每个样本数据的预测值,纵轴表示观测数据真实值。如果所有点都能在对角线附近均匀分布,则方程的拟合值与原值差异很小,方程的拟合效果就好。如效果不理想可通过调节学习率和迭代次数进行优化。

..

A5生成画布

A6绘制横轴,预测数据

A7绘制纵轴,观测数据真实值

A8绘制点图元,横轴取预测值,纵轴取真实值

A9[15,25]的固定区间

A10绘制线图元,y=x

A11画图