hi, I’m doing something similar the plotly models of ml
the code I’ve reaches is this one:
@app.callback(
Output("graph", "figure"),
Input('dropdown', "value"),
Input('dropdown2', "value"),
Input('dropdown3', "value"))
def train_and_display(name,drop1,drop2):
#df = df # replace with your own data source
#df=df.columns
X = np.array(df[drop1].astype(float).dropna())
Y= np.array(df[drop2].astype(float).dropna())
print("long de x",len(X))
print("long de y",len(Y))
newX=pd.DataFrame(X)
newY=pd.DataFrame(Y)
if len(newX)>len(newY):
w=len(newX)-len(newY)
newXnew=newX.drop(newX.index[:w])
newXnewn = np.array(newXnew.astype(float).dropna()).reshape(-1,1)
newYnewn= np.array(newY.astype(float).dropna())
print(newXnewn)
elif len(newX)<len(newY):
w=len(newY)-len(newX)
newYnew=newY.drop(newY.index[:w])
newYnewn= np.array(newYnew.astype(float).dropna())
newXnewn = np.array(newX.astype(float).dropna()).reshape(-1,1)
print(newYnewn)
elif len(newX)==len(newY):
newXnewn = np.array(newX.astype(float).dropna()).reshape(-1,1)
newYnewn= np.array(newY.astype(float).dropna())
else: print("good")
print("long de x",len(newXnewn))
print("long de y",len(newYnewn))
print(newXnewn)
print(newYnewn)
X_train, X_test, y_train, y_test = train_test_split(
newXnewn, newYnewn)
model = models[name]()
model.fit(X_train, y_train)
x_range = np.linspace(newXnewn.min(), newXnewn.max(), 100)
y_range = model.predict(x_range.reshape(-1, 1))
but for some reason I dont know, the image only shows, 1 point for training, 1 for test and one for the ml. what can I change to make it work?
(the data has more than 1 point)