Skip to content
Snippets Groups Projects
Commit 7bbd2a48 authored by Nicolas Barthes's avatar Nicolas Barthes
Browse files

update to LWPLSR_.py

parent d18871dd
No related branches found
No related tags found
No related merge requests found
...@@ -5,7 +5,7 @@ Pillow>=8.4.0 ...@@ -5,7 +5,7 @@ Pillow>=8.4.0
protobuf>=3.19.0 protobuf>=3.19.0
watchdog>=2.1.8 watchdog>=2.1.8
pinard>=1.0 pinard>=1.0
julia>=0.6.2 juliacall>=0.9.19
plotly>=5.20.0 plotly>=5.20.0
pyodbc>=5.1.0 pyodbc>=5.1.0
matplotlib>=3.8.4 matplotlib>=3.8.4
......
import pandas as pd
import streamlit
from Packages import * from Packages import *
from Class_Mod.Miscellaneous import * from Class_Mod.Miscellaneous import *
...@@ -9,42 +11,56 @@ class LWPLSR: ...@@ -9,42 +11,56 @@ class LWPLSR:
"""Initiate the LWPLSR and prepare data for Julia computing.""" """Initiate the LWPLSR and prepare data for Julia computing."""
self.x_train, self.y_train, self.x_test, self.y_test = x_train, x_test, y_train, y_test self.x_train, self.y_train, self.x_test, self.y_test = x_train, x_test, y_train, y_test
# prepare to send dataframes to julia and Jchemo # prepare to send dataframes to julia and Jchemo
self.Main.x_train,self.Main.y_train,self.Main.x_test,self.Main.y_test = self.x_train, self.y_train, self.x_test, self.y_test jl.x_train,jl.y_train,jl.x_test,jl.y_test = self.x_train, self.y_train, self.x_test, self.y_test
self.scores = pd.DataFrame
self.predicted_results_on_test = pd.DataFrame
def Jchemo_lwplsr(self): def Jchemo_lwplsr(self):
"""Send data to Julia to compute lwplsr. """Send data to Julia to compute lwplsr.
Args: Args:
self.Main.x_train (DataFrame): self.jl.x_train (DataFrame):
self.Main.y_train (DataFrame): self.jl.y_train (DataFrame):
self.Main.x_test (DataFrame): self.jl.x_test (DataFrame):
self.Main.y_test (DataFrame): self.jl.y_test (DataFrame):
Returns: Returns:
self.scores (DataFrame): various metrics and scores self.scores (DataFrame): various metrics and scores
self.predicted_results_on_test (DataFrame): self.predicted_results_on_test (DataFrame):
""" """
# launch Julia Jchemo lwplsr # launch Julia Jchemo lwplsr
Main.eval(""" jl.eval("""
#convert python pd.dataframes to julia dataframes using Pandas
x_train_j = self.Main.x_train |> Pandas.DataFrame|> DataFrames.DataFrame; using DataFrames
y_train_j = self.Main.y_train |> Pandas.DataFrame|> DataFrames.DataFrame; using Jchemo
x_test_j = self.Main.x_test |> Pandas.DataFrame|> DataFrames.DataFrame;
y_test_j = self.Main.y_test |> Pandas.DataFrame|> DataFrames.DataFrame;
# Compute model
nlvdis = 5 ; metric = :mah nlvdis = 5 ; metric = :mah
h = 1 ; k = 200 ; nlv = 15 #; scal = true h = 1 ; k = 200 ; nlv = 15 #; scal = true
mod = Main.Jchemo.model(Main.Jchemo.lwplsr; nlvdis, metric, h, k, nlv) mod = Jchemo.model(Jchemo.lwplsr; nlvdis, metric, h, k, nlv)
Main.Jchemo.fit!(mod, X_train_j, y_train_j) Jchemo.fit!(mod, X_train, y_train)
# Jchemo.pnames(mod)
# Jchemo.pnames(mod.fm)
# predictions on test data calculation # predictions on test data calculation
res = Main.Jchemo.predict(mod, X_test_j) ; res = Jchemo.predict(mod, X_test)
scores = Main.Jchemo.mse(res.pred, y_test_j) # Jchemo.pnames(res)
scoresjp = Pandas.DataFrame(scores);
resjp = Pandas.DataFrame(res.pred);
""") """)
self.scores = self.Main.scoresjp resjp = jl.seval("""
self.predicted_results_on_test = pd.DataFrame(self.Main.resjp) Pandas.DataFrame(res.pred)
""")
scoresjp = jl.seval("""
Jchemo.mse(res.pred, y_test)
""")
self.scores = pd.Dataframe(scoresjp)
self.predicted_results_on_test = pd.Dataframe(resjp)
@property
def pred_data_(self):
return self.predicted_results_on_test, self.predicted_results_on_test, self.predicted_results_on_test
# @property
# def model_(self):
# return self.trained
@property @property
def scores_(self): def metrics_(self):
return self.scores, self.predicted_results_on_test # self.scores = pd.DataFrame(self.scores, index=['test'])
\ No newline at end of file return self.scores
\ No newline at end of file
...@@ -23,8 +23,7 @@ from scipy.sparse.csgraph import minimum_spanning_tree ...@@ -23,8 +23,7 @@ from scipy.sparse.csgraph import minimum_spanning_tree
from scipy.sparse import csgraph from scipy.sparse import csgraph
# Modelling # Modelling
# import julia from juliacall import Main as jl
from julia import Main, Jchemo, DataFrames, Base, Pandas
from pinard import utils from pinard import utils
from pinard import preprocessing as pp from pinard import preprocessing as pp
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment