Боке маркировки склона с легендой - PullRequest
0 голосов
/ 18 февраля 2020

Я делаю простую модель 1-мерной линейной регрессии и строю свою линию наилучшего соответствия на склоне, используя Bokeh. Проблема в том, что я хочу отобразить две строки, которые лучше всего подходят, одну из SKLearn, а другую из моего собственного кода градиентного спуска. Я хочу отобразить эти линии с легендой, но не могу понять, как обозначить склон в Боке.

Я хочу продолжать использовать функцию аннотации наклона, поскольку она выходит за пределы объема данных.

Любая помощь будет принята с благодарностью.

# Here x is my x-data and y is my y-data

theta_GD = np.array([[-3.63029144],[ 1.16636235]]) # my fitting gradient descent parameters
theta_SK = np.array([[1.19303364],[-3.8957808783]]) # fitting parameters from SKLearn

fig = figure()

gradient_GD = theta_GD[1]
y_intercept_GD = theta_GD[0]

gradient_SK = theta_SK[1]
y_intercept_SK = theta_SK[0]

slope1 = Slope(gradient=gradient_GD, y_intercept=y_intercept_GD, line_color='red', line_width=2)
slope2 = Slope(gradient=gradient_SK, y_intercept=y_intercept_SK, line_color='blue', line_width=2)

fig.scatter(x,y)
fig.add_layout(slope1)
fig.add_layout(slope2)
show(fig)

1 Ответ

0 голосов
/ 18 февраля 2020

Я бы порекомендовал вам рисовать ваши подогнанные линии в виде линейных символов вместо аннотаций наклона. Например:

m, b= 3,1
m1, b1 = 3.2, .8
x = np.linspace(-10,10,100)
data = m*x + b + np.random.normal(0,3,size=len(x))
y = m*x + b
y1 = m1*x+b1
fig = figure()
fig.line(x,y,legend_label='My Regression',color='green',line_width=2)
fig.line(x,y1,legend_label="Other Algorithm",color='red',line_width=2)
fig.scatter(x,data)
show(fig)

, что дает: enter image description here

...