I wrote a simple linear regression and decision tree classifier code with Python's Scikit-learn library for predicting the outcome. It works well.
My question is, Is there a way to do this backwards, to predict the best combination of parameter values based on imputed outcome (parameters, where accuracy will be the best).
Or I can ask like this, is there a classification, regression or some other type of algorithm (Decision tree, SVM, KNN, Logistic regression, Linear regression, Polynomial regression...) that can predict multiple outcomes based on one (or more) parameter/s?
I have tried to do this with putting multivariate outcome, but it shows the error:
ValueError: Expected 2D array, got 1D array instead: array=[101 905 182 268 646 624 465]. Reshape your data either using array.reshape(-1, 1) if your data has a single feature or array.reshape(1, -1) if it contains a single sample.
This is the code that I wrote for regression:
import pandas as pd
from sklearn import linear_model
from sklearn import tree
dic = {'par_1': [10, 30, 13, 19, 25, 33, 23],
'par_2': [1, 3, 1, 2, 3, 3, 2],
'outcome': [101, 905, 182, 268, 646, 624, 465]}
df = pd.DataFrame(dic)
variables = df.iloc[:,:-1]
results = df.iloc[:,-1]
regression = linear_model.LinearRegression()
regression.fit(variables, results)
input_values = [14, 2]
prediction = regression.predict([input_values])
prediction = round(prediction[0], 2)
print(prediction)
This is the code that I wrote for decision tree:
dic = {'par_1': [10, 30, 13, 19, 25, 33, 23],
'par_2': [1, 3, 1, 2, 3, 3, 2],
'outcome': ['yes', 'yes', 'no', 'yes', 'no', 'no', 'yes']}
df = pd.DataFrame(dic)
variables = df.iloc[:,:-1]
results = df.iloc[:,-1]
decision_tree = tree.DecisionTreeClassifier()
decision_tree.fit(variables, results)
input_values = [18, 2]
prediction = decision_tree.predict([input_values])[0]
print(prediction)

decision_tree.fit(variables, results)returns the following errorValueError: could not convert string to float: 'yes'- SuperKogito