I’ve seen other posts talking about this but anyone of these can help me. I am using jupyter notebook with Python 3.6.0 on windows x6 machine.
I have a large dataset but I keep only a piece of it to run my models:
This is a piece of code that i used:
df = loan_2.reindex(columns= ['term_clean','grade_clean', 'annual_inc', 'loan_amnt', 'int_rate','purpose_clean','installment','loan_status_clean'])
df.fillna(method= 'ffill').astype(int)
from sklearn.preprocessing import Imputer
from sklearn.preprocessing import StandardScaler
imp = Imputer(missing_values='NaN', strategy='median', axis=0)
array = df.values
y = df['loan_status_clean'].values
imp.fit(array)
array_imp = imp.transform(array)
y2= y.reshape(1,-1)
imp.fit(y2)
y_imp= imp.transform(y2)
X = array_imp[:,0:4]
Y = array_imp[:,4]
validation_size = 0.20
seed = 7
X_train, X_validation, Y_train, Y_validation = model_selection.train_test_split(X, Y, test_size=validation_size, random_state=seed)
seed = 7
scoring = 'accuracy'
from sklearn import model_selection
from sklearn.metrics import classification_report
from sklearn.metrics import confusion_matrix
from sklearn.metrics import accuracy_score
from sklearn.linear_model import LogisticRegression
from sklearn.tree import DecisionTreeClassifier
from sklearn.neighbors import KNeighborsClassifier
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
from sklearn.naive_bayes import BernoulliNB
from sklearn.ensemble import RandomForestClassifier
from sklearn.svm import SVC
from sklearn.ensemble import AdaBoostClassifier
from sklearn.neural_network import MLPClassifier
# Spot Check Algorithms
models = []
models.append(('LR', LogisticRegression()))
models.append(('LDA', LinearDiscriminantAnalysis()))
models.append(('KNN', KNeighborsClassifier()))
models.append(('CART', DecisionTreeClassifier()))
models.append(('BNB', BernoulliNB()))
models.append(('RF', RandomForestClassifier()))
models.append(('GBM', AdaBoostClassifier()))
models.append(('NN', MLPClassifier()))
models.append(('SVM', SVC()))
# evaluate each model in turn
results = []
names = []
for name, model in models:
kfold = model_selection.KFold(n_splits=10, random_state=seed)
cv_results = model_selection.cross_val_score(model, X_train, Y_train, cv=kfold, scoring=scoring)
results.append(cv_results)
names.append(name)
msg = "%s: %f (%f)" % (name, cv_results.mean(), cv_results.std())
print(msg)
When I run the last one piece of code this error comes up:
ValueError Traceback (most recent call last)
<ipython-input-262-1e6860ba615b> in <module>()
4 for name, model in models:
5 kfold = model_selection.KFold(n_splits=10, random_state=seed)
----> 6 cv_results = model_selection.cross_val_score(model, X_train, Y_train, cv=kfold, scoring=scoring)
7 results.append(cv_results)
8 names.append(name)
C:UsersdalilaAnacondalibsite-packagessklearnmodel_selection_validation.py in cross_val_score(estimator, X, y, groups, scoring, cv, n_jobs, verbose, fit_params, pre_dispatch)
138 train, test, verbose, None,
139 fit_params)
--> 140 for train, test in cv_iter)
141 return np.array(scores)[:, 0]
142
C:UsersdalilaAnacondalibsite-packagessklearnexternalsjoblibparallel.py in __call__(self, iterable)
756 # was dispatched. In particular this covers the edge
757 # case of Parallel used with an exhausted iterator.
--> 758 while self.dispatch_one_batch(iterator):
759 self._iterating = True
760 else:
C:UsersdalilaAnacondalibsite-packagessklearnexternalsjoblibparallel.py in dispatch_one_batch(self, iterator)
606 return False
607 else:
--> 608 self._dispatch(tasks)
609 return True
610
C:UsersdalilaAnacondalibsite-packagessklearnexternalsjoblibparallel.py in _dispatch(self, batch)
569 dispatch_timestamp = time.time()
570 cb = BatchCompletionCallBack(dispatch_timestamp, len(batch), self)
--> 571 job = self._backend.apply_async(batch, callback=cb)
572 self._jobs.append(job)
573
C:UsersdalilaAnacondalibsite-packagessklearnexternalsjoblib_parallel_backends.py in apply_async(self, func, callback)
107 def apply_async(self, func, callback=None):
108 """Schedule a func to be run"""
--> 109 result = ImmediateResult(func)
110 if callback:
111 callback(result)
C:UsersdalilaAnacondalibsite-packagessklearnexternalsjoblib_parallel_backends.py in __init__(self, batch)
324 # Don't delay the application, to avoid keeping the input
325 # arguments in memory
--> 326 self.results = batch()
327
328 def get(self):
C:UsersdalilaAnacondalibsite-packagessklearnexternalsjoblibparallel.py in __call__(self)
129
130 def __call__(self):
--> 131 return [func(*args, **kwargs) for func, args, kwargs in self.items]
132
133 def __len__(self):
C:UsersdalilaAnacondalibsite-packagessklearnexternalsjoblibparallel.py in <listcomp>(.0)
129
130 def __call__(self):
--> 131 return [func(*args, **kwargs) for func, args, kwargs in self.items]
132
133 def __len__(self):
C:UsersdalilaAnacondalibsite-packagessklearnmodel_selection_validation.py in _fit_and_score(estimator, X, y, scorer, train, test, verbose, parameters, fit_params, return_train_score, return_parameters, return_n_test_samples, return_times, error_score)
236 estimator.fit(X_train, **fit_params)
237 else:
--> 238 estimator.fit(X_train, y_train, **fit_params)
239
240 except Exception as e:
C:UsersdalilaAnacondalibsite-packagessklearnlinear_modellogistic.py in fit(self, X, y, sample_weight)
1172 X, y = check_X_y(X, y, accept_sparse='csr', dtype=np.float64,
1173 order="C")
-> 1174 check_classification_targets(y)
1175 self.classes_ = np.unique(y)
1176 n_samples, n_features = X.shape
C:UsersdalilaAnacondalibsite-packagessklearnutilsmulticlass.py in check_classification_targets(y)
170 if y_type not in ['binary', 'multiclass', 'multiclass-multioutput',
171 'multilabel-indicator', 'multilabel-sequences']:
--> 172 raise ValueError("Unknown label type: %r" % y_type)
173
174
ValueError: Unknown label type: 'continuous'
Brief assumption: my data are clean from NaN and Missing Value in general.
There are two types of supervised learning algorithms, regression and classification. Classification problems require categorical or discrete response variables (y variable). If you try to train a scikit-learn imported classification model with a continuous variable, you will encounter the error ValueError: Unknown label type: ‘continuous’.
To solve this error, you can encode the continuous y variable into categories using Scikit-learn’s preprocessing.LabelEncoder
or if it is a regression problem use a regression model suitable for the data.
This tutorial will go through the error in detail and how to solve it with code examples.
Table of contents
- ValueError: Unknown label type: ‘continuous’
- What Does Continuous Mean?
- What is the Difference Between Regression and Classification?
- Example #1: Evaluating the Data
- Solution
- Example #2: Evaluating the Model
- Solution
- Summary
ValueError: Unknown label type: ‘continuous’
In Python, a value is a piece of information stored within a particular object. You will encounter a ValueError in Python when you use a built-in operation or function that receives an argument with the right type but an inappropriate value. In this case, the y variable data has continuous values instead of discrete or categorical values.
What Does Continuous Mean?
There are two categories of data:
- Discrete data: categorical data, for example, True/False, Pass/Fail, 0/1 or count data, for example, number of students in a class.
- Continuous data: Data that we can measure on an infinite scale; it can take any value between two numbers, no matter how small. For example, the length of a string can be 1.00245 centimetres.
However, you cannot have 1.5 of a student in a class; count is a discrete measure. Measures of time, height, and temperature are all examples of continuous data.
What is the Difference Between Regression and Classification?
We can classify supervised learning algorithms into two types: Regression and Classification. For regression, the response variable or label is continuous, for example, weight, height, price, or time. In each case, a regression model seeks to predict a continuous quantity.
For classification, the response variable or label is categorical, for example, Pass or Fail, True or False. A classification model seeks to predict a class label.
Example #1: Evaluating the Data
Let’s look at an example of training a Logistic Regression model to perform classification on arrays of integers. First, let’s look at the data. We will import numpy to create our explanatory variable data X and our response variable data y. Note that the data used here has no real relationship and is only for explaining purposes.
import numpy as np # Values for Predictor and Response variables X = np.array([[2, 4, 1, 7], [3, 5, 9, 1], [5, 7, 1, 2], [7, 4, 2, 8], [4, 2, 3, 8]]) y = np.array([0, 1.02, 1.02, 0, 0])
Next, we will import the LogisticRegression class and create an object of this class, our logistic regression model. We will then fit the model using the values for the predictor and response variables.
from sklearn.linear_model import LogisticRegression # Attempt to fit Logistic Regression Model cls = LogisticRegression() cls.fit(X, y)
Let’s run the code to see what happens:
--------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-14-556cca8758bd> in <module> 3 # Attempt to fit Logistic Regression Model 4 cls = LogisticRegression() ----> 5 cls.fit(X, y) ~/opt/anaconda3/lib/python3.8/site-packages/sklearn/linear_model/_logistic.py in fit(self, X, y, sample_weight) 1514 accept_large_sparse=solver not in ["liblinear", "sag", "saga"], 1515 ) -> 1516 check_classification_targets(y) 1517 self.classes_ = np.unique(y) 1518 ~/opt/anaconda3/lib/python3.8/site-packages/sklearn/utils/multiclass.py in check_classification_targets(y) 195 "multilabel-sequences", 196 ]: --> 197 raise ValueError("Unknown label type: %r" % y_type) 198 199 ValueError: Unknown label type: 'continuous'
The error occurs because logistic regression is a classification problem that requires the values of the response variable to be categorical or discrete such as: “Yes” or “No”, “True” or “False”, 0 or 1. In the above code, our response variable values contain continuous values 1.02
.
Solution
To solve this error, we can convert the continuous values of the response variable y to categorical values using the LabelEncoder
class under sklearn.preprocessing
. Let’s look at the revised code:
import numpy as np from sklearn.linear_model import LogisticRegression from sklearn import preprocessing # Values for Predictor and Response variables X = np.array([[2, 4, 1, 7], [3, 5, 9, 1], [5, 7, 1, 2], [7, 4, 2, 8], [4, 2, 3, 8]]) y = np.array([0, 1.02, 1.02, 0, 0]) # Create label encoder object labels = preprocessing.LabelEncoder() # Convert continous y values to categorical y_cat = labels.fit_transform(y) print(y_cat)
[0 1 1 0 0]
We have encoded the original values as 0 or 1. Now, we can fit the logistic regression model and perform a prediction on test data:
# Attempt to fit Logistic Regression Model cls = LogisticRegression() cls.fit(X, y_cat) X_pred = np.array([5, 6, 9, 1]) X_pred = X_pred.reshape(1, -1) y_pred = cls.predict(X_pred) print(y_pred)
Let’s run the code to get the result:
[1]
We successfully fit the model and used it to predict unseen data.
Example #2: Evaluating the Model
Let’s look at an example where we want to train a k-Nearest Neighbours classifier to fit on some data. The data, which we will store in a file called regression_data.csv
looks like this:
Avg.Session Length,TimeonApp,TimeonWebsite,LengthofMembership,Yearly Amount Spent 34.497268,12.655651,39.577668,4.082621,587.951054 31.926272,11.109461,37.268959,2.664034,392.204933 33.000915,11.330278,37.110597,4.104543,487.547505 34.305557,13.717514,36.721283,3.120179,581.852344 33.330673,12.795189,37.536653,4.446308,599.406092 33.871038,12.026925,34.476878,5.493507,637.102448 32.021596,11.366348,36.683776,4.685017,521.572175
Next, we will import the data into a DataFrame. We will define four columns as the explanatory variables and the last column as the response variable. Then, we will split the data into training and test data:
import pandas as pd from sklearn.model_selection import train_test_split df = pd.read_csv('regression_data.csv') X = df[['Avg.Session Length', 'TimeonApp','TimeonWebsite', 'LengthofMembership']] y = df['Yearly Amount Spent'] X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=42)
Next, we will define a KNeighborsClassifier
model and fit to the data:
from sklearn.neighbors import KNeighborsClassifier knn = KNeighborsClassifier(n_neighbors=1) knn.fit(X_train,y_train)
Let’s run the code to see what happens:
--------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-12-889312abc571> in <module> ----> 1 knn.fit(X_train,y_train) ~/opt/anaconda3/lib/python3.8/site-packages/sklearn/neighbors/_classification.py in fit(self, X, y) 196 self.weights = _check_weights(self.weights) 197 --> 198 return self._fit(X, y) 199 200 def predict(self, X): ~/opt/anaconda3/lib/python3.8/site-packages/sklearn/neighbors/_base.py in _fit(self, X, y) 418 self.outputs_2d_ = True 419 --> 420 check_classification_targets(y) 421 self.classes_ = [] 422 self._y = np.empty(y.shape, dtype=int) ~/opt/anaconda3/lib/python3.8/site-packages/sklearn/utils/multiclass.py in check_classification_targets(y) 195 "multilabel-sequences", 196 ]: --> 197 raise ValueError("Unknown label type: %r" % y_type) 198 199 ValueError: Unknown label type: 'continuous'
The error occurs because the k-nearest neighbors classifier is a classification algorithm and therefore requires categorical data for the response variable. The data we provide in the df['Yearly Amount Spent']
series is continuous.
Solution
We can interpret this problem as a regression problem, not a classification problem because the response variable is continuous and it is not intuitive to encode “Length of membership” into categories. We need to use the regression algorithm KNeighborsRegressor
instead of KNeighborsClassifier
to solve this error. Let’s look at the revised code:
from sklearn.neighbors import KNeighborsRegressor knn = KNeighborsRegressor(n_neighbors=1) knn.fit(X_train,y_train)
Once we have fit to the data we can get our predictions with the test data.
y_pred = knn.predict(X_test) print(y_pred)
Let’s run the code to see the result:
[599.406092 487.547505 521.572175]
We successfully predicted three “Yearly Amount Spent
” values for the test data.
Summary
Congratulations on reading to the end of this tutorial! The ValueError: Unknown label type: ‘continuous’ occurs when you try to use continuous values for your response variable in a classification problem. Classification requires categorical or discrete values of the response variable. To solve this error, you can re-evaluate the response variable data and encode it to categorical. Alternatively, you can re-evaluate the model and use a regression model instead of a classification model.
Although “regression” is in the name, logistic regression is a classification algorithm that attempts to classify observations from a dataset into discrete categories. Whenever you want to perform logistic regression, ensure the response variable data is categorical.
For further reading on Scikit-learn, go to the article: How to Solve Python ValueError: input contains nan, infinity or a value too large for dtype(‘float64’).
Go to the online courses page on Python to learn more about coding in Python for data science and machine learning.
Have fun and happy researching!
17 авг. 2022 г.
читать 1 мин
Одна распространенная ошибка, с которой вы можете столкнуться в Python:
ValueError : Unknown label type: 'continuous'
Эта ошибка обычно возникает, когда вы пытаетесь использовать sklearn для соответствия модели классификации, такой как логистическая регрессия , и значения, которые вы используете для переменной ответа, являются непрерывными, а не категориальными.
В следующем примере показано, как использовать этот синтаксис на практике.
Как воспроизвести ошибку
Предположим, мы пытаемся использовать следующий код для соответствия модели логистической регрессии:
import numpy as np
from sklearn. linear_model import LogisticRegression
#define values for predictor and response variables
x = np.array([[2, 2, 3], [3, 4, 3], [5, 6, 6], [7, 5, 5]])
y = np.array([0, 1.02, 1.02, 0])
#attempt to fit logistic regression model
classifier = LogisticRegression()
classifier. fit (x, y)
ValueError : Unknown label type: 'continuous'
Мы получаем ошибку, потому что в настоящее время значения для нашей переменной ответа непрерывны.
Напомним, что модель логистической регрессии требует, чтобы значения переменной ответа были категориальными , например:
- 0 или 1
- «Да или нет»
- «Пройдено» или «Не пройдено»
В настоящее время наша переменная ответа содержит непрерывные значения, такие как 0 и 1,02 .
Как исправить ошибку
Способ устранения этой ошибки — просто преобразовать непрерывные значения переменной ответа в категориальные значения с помощью функции LabelEncoder() из sklearn :
from sklearn import preprocessing
from sklearn import utils
#convert y values to categorical values
lab = preprocessing. LabelEncoder ()
y_transformed = lab. fit_transform (y)
#view transformed values
print(y_transformed)
[0 1 1 0]
Каждое из исходных значений теперь кодируется как 0 или 1 .
Теперь мы можем подобрать модель логистической регрессии:
#fit logistic regression model
classifier = LogisticRegression()
classifier. fit (x, y_transformed)
На этот раз мы не получаем никакой ошибки, потому что значения ответа для модели являются категориальными.
Дополнительные ресурсы
В следующих руководствах объясняется, как исправить другие распространенные ошибки в Python:
Как исправить: ValueError: Индекс содержит повторяющиеся записи, не может изменить форму
Как исправить: ошибка типа: ожидаемая строка или байтовый объект
Как исправить: TypeError: объект ‘numpy.float64’ не вызывается
One common error you may encounter in Python is:
ValueError: Unknown label type: 'continuous'
This error usually occurs when you attempt to use sklearn to fit a classification model like logistic regression and the values that you use for the response variable are continuous instead of categorical.
The following example shows how to use this syntax in practice.
How to Reproduce the Error
Suppose we attempt to use the following code to fit a logistic regression model:
import numpy as np
from sklearn.linear_model import LogisticRegression
#define values for predictor and response variables
x = np.array([[2, 2, 3], [3, 4, 3], [5, 6, 6], [7, 5, 5]])
y = np.array([0, 1.02, 1.02, 0])
#attempt to fit logistic regression model
classifier = LogisticRegression()
classifier.fit(x, y)
ValueError: Unknown label type: 'continuous'
We receive an error because currently the values for our response variable are continuous.
Recall that a logistic regression model requires the values of the response variable to be categorical such as:
- 0 or 1
- “Yes” or “No”
- “Pass” or “Fail”
Currently our response variable contains continuous values such as 0 and 1.02.
How to Fix the Error
The way to resolve this error is to simply convert the continuous values of the response variable to categorical values using the LabelEncoder() function from sklearn:
from sklearn import preprocessing
from sklearn import utils
#convert y values to categorical values
lab = preprocessing.LabelEncoder()
y_transformed = lab.fit_transform(y)
#view transformed values
print(y_transformed)
[0 1 1 0]
Each of the original values is now encoded as a 0 or 1.
We can now fit the logistic regression model:
#fit logistic regression model
classifier = LogisticRegression()
classifier.fit(x, y_transformed)
This time we don’t receive any error because the response values for the model are categorical.
Additional Resources
The following tutorials explain how to fix other common errors in Python:
How to Fix: ValueError: Index contains duplicate entries, cannot reshape
How to Fix: Typeerror: expected string or bytes-like object
How to Fix: TypeError: ‘numpy.float64’ object is not callable
In this article, we will learn the error valueerror: unknown label type: ‘continuous’ in Python programming.
Also, we will provide examples, solutions, and answers to frequently asked questions related to this error.
If you are encountering this issue, read on to find practical solutions and gain a better understanding of how to handle this error effectively.
Why Does this Valueerror: Unknown Label Type: Continuous Error Occur?
The “ValueError: Unknown label type: continuous” error typically occurs because we are trying to use a machine learning algorithm or function that expects discrete or categorical labels, but instead, you have provided continuous labels.
What is the Valueerror Unknown Label Type ‘Continuous’ Error?
The ValueError Unknown label type: ‘continuous’ error is encountered in Python when attempting to apply a classification algorithm or method to a target variable that is continuous type.
The error message demonstrates that the classifier cannot handle continuous labels since it expects discrete categorical labels.
Therefore, it is important to ensure that the target variable is properly categorized before using a classification algorithm.
Examples of the ValueError: Unknown label type ‘continuous’ Error
Here are the examples to understand more about the valueerror, let’s consider a few examples:
Let’s have a look at the example:
from sklearn.svm import SVC
from sklearn.datasets import make_regression
X, y = make_regression(n_samples=100, n_features=2, noise=0.1)
svm = SVC()
svm.fit(X, y)
In this example, we are using the Support Vector Classifier (SVC) from the scikit-learn library.
The make_regression function is generating a dataset with continuous labels (y).
When fitting the SVM classifier, we encounter the error:
ValueError: Unknown label type: ‘continuous’
Another example:
from sklearn.tree import DecisionTreeClassifier
from sklearn.datasets import make_regression
X, y = make_regression(n_samples=100, n_features=2, noise=0.1)
dt = DecisionTreeClassifier()
dt.fit(X, y)
Here, we are using the Decision Tree Classifier from scikit-learn. Again, the make_regression function generates continuous labels (y).
When trying to fit the decision tree classifier, we encounter the same “ValueError” due to the continuous label type.
Traceback (most recent call last):
File “C:UsersDellPycharmProjectsPython-Code-Examplemain.py”, line 6, in
dt.fit(X, y)
File “C:UsersDellPycharmProjectsPython-Code-Examplevenvlibsite-packagessklearntree_classes.py”, line 889, in fit
super().fit(
File “C:UsersDellPycharmProjectsPython-Code-Examplevenvlibsite-packagessklearntree_classes.py”, line 224, in fit
check_classification_targets(y)
File “C:UsersDellPycharmProjectsPython-Code-Examplevenvlibsite-packagessklearnutilsmulticlass.py”, line 218, in check_classification_targets
raise ValueError(“Unknown label type: %r” % y_type)
ValueError: Unknown label type: ‘continuous’
What are the Common Causes of the Error?
The valueerror: unknown label type: ‘continuous error usually occurs due to the following reasons:
- Mismatched data types
- Incorrect dataset
- Missing preprocessing steps
Note: It is important to identify the cause of the error to determine the correct solution.
How to Fix the Valueerror: Unknown Label Type: Continuous?
To resolve the valueerror: unknown label type: continuous error, you can follow these solutions:
Solution 1: Check the target variable type
You can check the type of your target variable (y). Ensure that it is categorical (e.g., represented as strings or integers) and not continuous.
You can use the type() function in Python to determine the variable type.
For example:
# Assuming you have already defined your target variable 'y'
# Check the type of the target variable
target_type = type(y)
# Print the type of the target variable
print("Target variable type:", target_type)
In this code, the type() function is used to determine the type of the target variable y.
The resulting type is stored in the target_type variable, and finally, it is printed to the console using the print() function.
Solution 2: Perform label encoding
If your target variable is continuous, you need to convert it into categorical labels suitable for classification.
Label encoding can be used to assign unique integers to each category.
You can utilize the LabelEncoder class from the scikit-learn library to perform this encoding.
Example:
from sklearn.preprocessing import LabelEncoder
label_encoder = LabelEncoder()
y = label_encoder.fit_transform(y)
Solution 3: Apply one-hot encoding
If your target variable represents multiple categories, one-hot encoding can be used to transform it into binary features.
This encoding creates binary columns for each category, where a value of 1 indicates membership in a specific category, and 0 indicates non-membership.
Let’s take a look at the example:
from sklearn.preprocessing import OneHotEncoder
one_hot_encoder = OneHotEncoder()
y = one_hot_encoder.fit_transform(y.reshape(-1, 1))
Solution 4: Check the dataset
If the error persists, make sure that your dataset is correctly formatted.
You can that the target variable is separate from the features and properly labeled.
Also, confirm that the features contain of numeric or categorical values compatible with the chosen classification algorithm.
More Resources
Here are the following resources that will help you to understand more about VALUEERRORS:
- Valueerror: plot_confusion_matrix only supports classifiers
- Valueerror length of values does not match length of index
- valueerror: invalid mode: ‘ru’ while trying to load binding.gyp
- Valueerror: bad marshal data unknown type code
Conclusion
This valueerror unknown label type ‘continuous’ error usually occurs when we are attempting to train a classifier or perform classification tasks with labels that are not recognized or properly encoded.
By following the examples and solutions provided in this article, you can resolve this error effectively.
Remember to check the type of your target variable, perform appropriate encoding techniques, and choose suitable classification algorithms to handle continuous labels.
FAQs
How can I determine the type of my target variable?
You can use the type() function in Python to determine the type of your target variable. For example, type(y) will return the type of the variable y.
Can I convert a continuous variable into a categorical one?
Yes, you can convert a continuous variable into a categorical one. Label encoding and one-hot encoding are common techniques used for this purpose.
Are there any alternative algorithms that can handle continuous labels?
Yes, there are algorithms specifically designed for regression tasks that can handle continuous labels effectively.
Some examples include linear regression, decision tree regression, and random forest regression.