One-Hot, Label, Target and K-Fold Target Encoding, Clearly Explained!!!

Поділитися
Вставка
  • Опубліковано 19 гру 2024

КОМЕНТАРІ • 185

  • @statquest
    @statquest  Рік тому +2

    To learn more about Lightning: lightning.ai/
    Support StatQuest by buying my book The StatQuest Illustrated Guide to Machine Learning or a Study Guide or Merch!!! statquest.org/statquest-store/

  • @matthewmechtly5026
    @matthewmechtly5026 Рік тому +27

    It's mind-boggling how much better Josh is at explaining complicated topics than anyone else.

  • @bridgetelly8554
    @bridgetelly8554 Рік тому +14

    Thank you so much for your videos, this is by far the best educational Machine Learning channel I’ve ever come across

  • @sungminson3658
    @sungminson3658 8 місяців тому +5

    This is literally the best explanation about statistics & traditional ML model. I am so lucky to see your video with my journey of data science started.

  • @Li-dv8lr
    @Li-dv8lr Рік тому +11

    Much better explanation than what I had at class!

  • @dzhikirbaroman2692
    @dzhikirbaroman2692 Місяць тому +1

    Thank you Josh and people contributing to it, it is very helpfull and nice content, that enhance my studying expirience ! :)
    By the way, there is the best explanations and visualizations I have ever seen for these topics, and for free ! What a fairy tale
    Thanks from Ukrainian student !

    • @statquest
      @statquest  Місяць тому

      Thank you! I'm glad it helped!

  • @moazhendy9394
    @moazhendy9394 Рік тому +2

    I really loved your explanation and your sense of humor. I really did!

  • @LuizHenrique-qr3lt
    @LuizHenrique-qr3lt Рік тому +7

    Hi Josh I wanted to thank you for your content, I'm finishing your stats playlist it's very good. Statsquatch has become my friend. Big hug straight from Brazil!

  • @myfoodfeast
    @myfoodfeast Рік тому +6

    Hi Josh. Just came across your channel. Your method of explaining is so concise, clear and appealing. Definitely I would learn a lot from this channel.

  • @marcom5873
    @marcom5873 9 місяців тому +1

    Love the dry humour in your videos 🤣. Great content too!

  • @RumayzaNorova
    @RumayzaNorova 3 місяці тому +1

    Absolutely looooooooooove all videos of this channel (especially 'shameless self-promotion' hehe)

  • @amirrezaabedini9795
    @amirrezaabedini9795 11 місяців тому +1

    thank you your explanations are always simple and clear.

    • @statquest
      @statquest  11 місяців тому

      You are welcome!

  • @SnipeSniperNEW
    @SnipeSniperNEW Рік тому +6

    but what happens in inferring? say you trained a great model and now you are predicting the new data, do you use the mean of the old data or the mean of the new data? if you use target encoding, well in the new data you don't have a target? so what now?!?

    • @jamesgunn1560
      @jamesgunn1560 Рік тому +2

      Typically u took the avg of the training data for each category for inference

    • @statquest
      @statquest  Рік тому +2

      BAM! :)

    • @shahnurislam5100
      @shahnurislam5100 Рік тому +1

      For target encoding. Usually you store a dictionary of the encodings for the categorical data. If it’s an unseen value from the training set. Best practice is to use the mean

  • @lakshmanbharath
    @lakshmanbharath Рік тому +1

    Hi Josh, a heartfull Thank you for sharing these encoding techniques
    I have one doubt; it may look stupid, but I just want to clarify it with you.
    On 13:40, the encoding of green colour with target value 1 is 0.42, and below that, green colour with target value 1 is 0.67.
    So when encoding transforms the new data, will system change the green colour to 0.42 or 0.67?

    • @statquest
      @statquest  Рік тому +2

      When encoding new data, we'll use all of the training data to convert the option "green" into numbers. Thus, I believe we'll convert it to we'll convert it to ((3 * (2/3)) + (2 * (3/7))) / (3 + 2) = 0.57

  • @MilenkoCurcin
    @MilenkoCurcin Рік тому +1

    Totally great explanation, congratulations

  • @monkeystoot
    @monkeystoot Рік тому +5

    How do you use k-fold target encoding for a test data set, since blue now has several distinct numeric values as a predictor in the training set?

    • @statquest
      @statquest  Рік тому +1

      Great questions - with new data, you can use all of the original training data to find the best value.

  • @hasandaaboul5322
    @hasandaaboul5322 10 місяців тому +1

    Hey Josh, great job. Thnak you a lot!

  • @simoneparvizi775
    @simoneparvizi775 Рік тому +1

    I NEED YOUR HELP
    At 4:20 our brother Josh said that some ML models might have problems with label encoding and as always he explains it in a beautiful way. I'm writing my Thesis and I need at least one paper that confirms this (although it makes totally perfect sense...). It's been 2 days of and still can't find anything...anybody can help me?...
    Thank you people, stay smart and keep learning

    • @statquest
      @statquest  Рік тому

      I think part of the problem is that the issue with label encoding is pretty obvious so no one thinks to publish about it, and reviewers might think it is too obvious to be published. Sort of like publishing a paper that says 2 + 2 = 4. However, I was able to find this: arxiv.org/pdf/2201.11358.pdf

    • @simoneparvizi775
      @simoneparvizi775 Рік тому +1

      @@statquest Josh, thank you do much. Really, it was already enough the video you made. Can't imagine how much i appreciate it, wish you the best

  • @dvergnordicalfar4052
    @dvergnordicalfar4052 Рік тому +4

    Hi Josh, thanks for explanation. But I want to know how to transform the unseen data using k-fold target encoding? Is it oke to use mean value of the transformed category? Thanks before

    • @jizhiliu1878
      @jizhiliu1878 Рік тому +1

      I have the same question

    • @statquest
      @statquest  Рік тому

      Great questions - with new data, you can use all of the original training data to find the best value.

  • @anujvishwakarma5082
    @anujvishwakarma5082 Місяць тому

    First of all, Thankyou so much for the amazing content
    My Question : How will we be perform encodings when we are solving multi classification problem or say regression problem, how to tackle such cases?

    • @statquest
      @statquest  Місяць тому

      I think you should consider one-hot encoding in that case.

  • @onkarpatil4262
    @onkarpatil4262 Рік тому +1

    Awesome as always ☺️👏

  • @justinwhite2725
    @justinwhite2725 Рік тому

    13:33 okay...but how do you use this trained model? If you wanted to make a prediction using k-target which of the numbers for that color would you use?
    (Ps - for colors I'd use their HSV values, or for simple colors like this I'd just use their hue which is a simple spectrum)

    • @statquest
      @statquest  Рік тому +1

      You can use the entire training dataset for new data.

    • @BlueRS123
      @BlueRS123 Рік тому

      @@statquest Could you please elaborate on how would you do this? I'm probably missing something obvious, but thanks in advance!
      Is it that you apply the K-Fold target encoding to the new data based on the training data?

    • @statquest
      @statquest  Рік тому

      @@BlueRS123 When we have new data, instead of splitting the training data into k-folds, we use all of it to calculate the option mean and the overall mean.

  • @razapoetra9355
    @razapoetra9355 8 місяців тому +1

    Never learning ML this fun before 😂

  • @jfndfiunskj5299
    @jfndfiunskj5299 Рік тому +1

    For one-hot encoding, shouldn't there be one less position to avoid the dummy variable trap?

    • @statquest
      @statquest  Рік тому +1

      That only applies for models that depend on design matrices (like linear models or logistic regression).

  • @lbognini
    @lbognini Рік тому

    Great video. 👍🏽
    I find it less confusing, however, to say categorical or qualitative data instead of discrete data.
    Numeric data can be discrete (integers)

  • @ТатьянаАсташенко-ц5п
    @ТатьянаАсташенко-ц5п 9 місяців тому +1

    Thank you for explanation. Is it possible to buy these slides in this video? I didnt find them in Illustrated Guide To Machine Learning. How to buy all your slides?

    • @statquest
      @statquest  9 місяців тому

      Thanks! Unfortunately my slides are not available. :(

  • @kaicheng7271
    @kaicheng7271 Рік тому +2

    it's time you introduce Quadruple Bam!!!!

    • @statquest
      @statquest  Рік тому +1

      Not yet - I'm waiting for 1 million subscribers.

  • @ameerkamal9305
    @ameerkamal9305 Рік тому

    Hi josh .... thanks for your extreme efforts.... I hope to see a statquest about lightgbm and catboost.....

    • @statquest
      @statquest  Рік тому

      This is actually a lead in to CatBoost (as well as word embeddings).

  • @nitinsiwach1989
    @nitinsiwach1989 Рік тому

    Hi Josh. You rock.
    Can you help me understand how the k-fold target encoding results are used on the test data that appears months after the model is trained and is in deployment?

    • @statquest
      @statquest  Рік тому

      Once trained, you use all of the training data to encode future data.

  • @blackpilledbuddha4944
    @blackpilledbuddha4944 Рік тому

    is there a sklearn package to do the K-fold target encoding ?

    • @statquest
      @statquest  Рік тому

      Not that I know of, but there are lots of good examples on the web. Here's one: www.kaggle.com/code/anuragbantu/target-encoding-beginner-s-guide

    • @blackpilledbuddha4944
      @blackpilledbuddha4944 Рік тому +1

      @@statquest thanks, will have a look

  • @speedtent
    @speedtent 10 місяців тому

    thanks for a great video! i am trying to apply k-fold target encoding on my train and test data. i target encoded my train data using k-fold target encoding just like the video, but how should i encode my test data ? If the feature is BLUE, should i get the mean of BLUE (target encoded) in the train data and use it for test data? OR should i just use the whole train data to get new target encoding values for the test data?

    • @statquest
      @statquest  10 місяців тому

      Use the full training dataset to encode the test data.

  • @gandalfrj9364
    @gandalfrj9364 Рік тому

    Question . How did you arrive at the conclusion that the weight of the overall mean should be 2 ?

    • @statquest
      @statquest  Рік тому

      Answer: See 7:23

    • @khushalkumar31
      @khushalkumar31 11 місяців тому

      It's not clear why you choose m = 2. Can you explain again or give me some resource to read?@@statquest

    • @statquest
      @statquest  11 місяців тому

      ​@@khushalkumar31 Ultimately, this, and all hyperparameters in any model, should be determined with cross validation. In other words, try a bunch of values (maybe 1, 10, 100, 1000) and see which one works the best. For details on how cross validation works, see: ua-cam.com/video/fSytzGwwBVw/v-deo.html

  • @natannvw1
    @natannvw1 6 місяців тому

    Is there any tool like sk-learn that holds the Kfold or any of these advanced encodings?

    • @statquest
      @statquest  6 місяців тому

      Good question! I don't know.

  • @Futureyouth-be1bo
    @Futureyouth-be1bo 5 місяців тому

    i have two differnt datsets those have columns 750 after one hot encoding and aligning manually now my problem is i'm facing long load time in the process so how can i reduce those columns si

    • @statquest
      @statquest  5 місяців тому

      If you don't store them that way, they should load faster. If the datasets are not super huge, you should be able to one-hot-encode in RAM and then run it through your analysis.

  • @shridharvaidya-fv6bz
    @shridharvaidya-fv6bz Рік тому

    Hello Josh, I have a question how can we provide value for testing data when we don't know the outcome?

    • @statquest
      @statquest  Рік тому +1

      When we have new data that we want to classify, we simply use all of the training data to calculate the encoding values.

  • @lutzsommer4708
    @lutzsommer4708 Рік тому

    Great work like always! What to do, when target encoding results in the same number for two labels?

    • @statquest
      @statquest  Рік тому

      That's fine - because the goal isn't to find unique values, the goal is to find values that help make the best predictions.

  • @thevitorialima
    @thevitorialima 6 місяців тому

    What if you are using a categorical column data to create new features through feature engineering (with groupby in python for instance)? Does it mean that you should do your feature engineering first and then apply K-fold Traget Encoding after doing this?

    • @statquest
      @statquest  6 місяців тому +1

      That makes sense to me.

  • @Monkey_uho
    @Monkey_uho Рік тому

    Hey! I have a question regarding K-Fold target encoding. While I grasp the concept and the reason behind obtaining multiple values for the same category, I am uncertain about how to encode new data. Specifically, if I train a machine learning model using K-Fold target encoding and subsequently wish to test the model with new data, for which I do not have the target value, how should I go about encoding this data?
    Should I take for instance the mean of all values corresponding to "red" ?

    • @statquest
      @statquest  Рік тому +1

      Yes, exactly. You use the full training dataset to encode new data when you are using the model to make new predictions.

    • @Monkey_uho
      @Monkey_uho Рік тому

      @@statquest Thank you very much! I have another question though, what if I want to encode the target itself ? In my problem, I have a classification problem where the target can take ~250 different values. I guess Label encoding or One hot are not suitable for this, and I don't really know if I can use target encoding to encode the target itself... Is there another way to encode data in this situation.

    • @statquest
      @statquest  Рік тому +1

      @@Monkey_uho Depending on your method, you might need to encode the target. For example, if you were using a neural network, you would just have one output per target value. Or, if you are using a tree based method (like xgboost), you can probably just assign a number to to each target value - this is because you don't use the target value itself to determine how to build the tree.

  • @chenzeping9603
    @chenzeping9603 Рік тому

    Hey! What if my label is also categorical? How do I do target encoding then?

    • @statquest
      @statquest  Рік тому

      If you just have 2 options, it's the same as here. Otherwise you use counts for each option as described here: catboost.ai/en/docs/concepts/algorithm-main-stages_cat-to-numberic

  • @tarun8122
    @tarun8122 Рік тому

    here, at 7.54 I see that while calculating weighted average for 'Red', you mentioned 'overall mean' as 3/7 however Isn't it incorrect?, shouldn't it be '1/7'? please correct in case I am claculating it wrong?

    • @statquest
      @statquest  Рік тому +1

      Overall mean is the average of the "Loves Troll 2" column for all colors. The "option mean" is the average of the "Loves Troll 2" column for a specific color (like "red")

  • @khaikit1232
    @khaikit1232 Рік тому

    Hi
    Thank you for the video but I just have some questions and hope I get clarifications from you:
    1) Could you explain why you were concerned about data leakage when doing the k-fold target encoding?
    The data leakage I know is when some test set information is incorporated into the model training. Is the dataset shown in the video supposed to be the full dataset or is it just the training/testing data for a machine learning model?
    2) Target encoding feels very different from one-hot encoding and feels like we are replacing the original column with a derived column.
    Hence I was wondering, what is the intuition and reason behind target encoding? In what situation would I use it over one-hot encoding?

    • @statquest
      @statquest  Рік тому +3

      1) There are different ways to corrupt training, and one of the ways is to use the target values in the training data to impute values that are also used in the training data.
      2) One-hot-encoding is great when there are only a few options. But if you have a lot of options, target encoding can be better.

  • @aayushsmarten
    @aayushsmarten 2 місяці тому

    Hie, just a simple question... when we are testing out... we will also need to "replace" the actual Red, Green, and Blue values into numbers. In testing - real world phase, we won't have the target. And in the K-Flod case we have different numbers of Red, Green, Blue. So, in test environment how would you replace them? I mean, would you take mean of Red, Green and Blue, from K-flod, store somewhere and replace in the testing time or anything else?
    Thanks!!!

    • @statquest
      @statquest  2 місяці тому

      When you are testing, you use the entire training dataset to determine what numbers replace "red, green and blue".

    • @aayushsmarten
      @aayushsmarten 2 місяці тому

      @@statquest Okay, but how can you get the target means in the testing time? There is no existence of the target, right?

    • @statquest
      @statquest  2 місяці тому

      @@aayushsmarten The target means come from the full training dataset.

  • @cyberwarlus2758
    @cyberwarlus2758 Рік тому

    Isn't the formula of weighted mean is (num of option pos targets + m*overall mean)/(n+m), since n*Option Mean = n * (sum of option targets)/n = sum of option targets = num of option pos targets?

    • @statquest
      @statquest  Рік тому +1

      Yep, you can write it either way. I like the way I wrote it because it makes the weighting explicit and easy to see. The other thing is that 'n' does not have to be the number of rows, and thus, it doesn't have to cancel out the denominator of the mean. So that's something to think about as well.

  • @lautarocisterna3339
    @lautarocisterna3339 Рік тому +1

    Hi Josh! Great video. Are you planning to add to these videos how to apply them in Python?
    Thanks!

    • @statquest
      @statquest  Рік тому

      That's a good idea. I'll keep that in mind. I show how to one-hot encoding in my video on XGBoost ua-cam.com/video/GrJP9FLV3FE/v-deo.html but I haven't shown how to use Target Encoding.

  • @michaelbohnen636
    @michaelbohnen636 Рік тому

    Hi Josh. How can you apply these methods in regression models? One Hot Encoding seems self-explainatory, but the weighted mean or the catboost methods seem, like they need additional steps...

    • @statquest
      @statquest  Рік тому

      For the CatBoost method, they quantize the "label value". catboost.ai/en/docs/concepts/algorithm-main-stages_cat-to-numberic

  • @benstallone6784
    @benstallone6784 Рік тому

    So how do we assign values to a categorical column that underwent K-fold Target Encoding for training when it is time to make actual predictions?

    • @statquest
      @statquest  Рік тому

      If you have new data to make a prediction for, you use the entire training dataset.

  • @kartikmalladi1918
    @kartikmalladi1918 2 місяці тому

    What do we do when 2 variables give same mean value?

    • @statquest
      @statquest  2 місяці тому

      Then you use the same value for both. The goal isn't necessarily to give each category a unique value, but to convert the variables into something the algorithm can use in a helpful way, and if multiple variables give you the same mean, well, that might be what helps the most.

  • @adiskaop
    @adiskaop Рік тому

    Hi Josh! Thank you very much for sharing information regarding statistics. Do you have a video regarding linear model and linear mixed model? I have been struggling with these two. Have a nice day!

    • @statquest
      @statquest  Рік тому +1

      Here's my series on linear models: ua-cam.com/play/PLblh5JKOoLUIzaEkCLIUxQFjPIlapw8nU.html

    • @adiskaop
      @adiskaop Рік тому

      @@statquest thank you, but the linear mixed models is not in there, would love to watch your explanation about it

    • @statquest
      @statquest  Рік тому +2

      @@adiskaop I'll keep that in mind. However, I'll tell you the basic idea of linear mixed models boils down to a model where you don't have enough data to estimate all of the parameters in a standard linear models. So, instead of estimating parameters, you just make assumptions.

  • @berke7255
    @berke7255 Рік тому

    in the case of LOO, do we sum the weighted means of the remaining subsets while encoding subset?

    • @statquest
      @statquest  Рік тому

      For LOO, we use all but one row to calculate the encoding value.

    • @berke7255
      @berke7255 Рік тому

      @@statquest so how do we decide which subset to choose and calculate its value for encoding another subset

    • @statquest
      @statquest  Рік тому

      @@berke7255 For LOO, you don't decide. When you are encoding a row, you use all other rows do calculate the value.

    • @berke7255
      @berke7255 Рік тому

      @@statquest do we sum all other row values or just take the average?

    • @statquest
      @statquest  Рік тому

      @@berke7255 You just plug the data into the equation for the Weighted Mean, as specified at 11:05. To encode a row, we treat that one row of interest as subset "A", and all of the other rows as subset "B".

  • @125Markus
    @125Markus Рік тому

    Hey, how can i use K-Fold Target Encoding when I have more than two targets? (not only 0 or 1) In my dataset are 1.604 different classes.

    • @statquest
      @statquest  Рік тому

      See: towardsdatascience.com/target-encoding-for-multi-class-classification-c9a7bcb1a53

  • @pamelamss
    @pamelamss Місяць тому

    Shoud I care about data leakage if I won't use my model to prediction? I'm trying to use a clustering algorithm to describe my data and I need to convert categorical data to numeric

    • @statquest
      @statquest  Місяць тому

      I wouldn't worry about it in that case.

  • @jakubstrawa8629
    @jakubstrawa8629 7 місяців тому

    So essentially everything greater than 1-fold target encoding is the same as leave one out target encoding?

    • @statquest
      @statquest  7 місяців тому

      What time point, minutes and seconds, are you asking about?

    • @jakubstrawa8629
      @jakubstrawa8629 7 місяців тому

      @@statquest Hi, first of all, thanks for replying! At mark 10:30 youre showing the method for 2 fold target encoding where you divide dataset into 2 subsets. Then at 13:55 you're dividing it into 7 subsets as an example of 7-fold target encoding but at the same time Leave one out target encoding. Isn't it the same? The terminology got me confused. Whats the difference between the terminology ie. 7-fold target encoding and leave-one-out target encoding.

    • @statquest
      @statquest  7 місяців тому

      @@jakubstrawa8629 For k-fold encoding, if k=the number of rows, then it is the exact same as leave-one-out encoding and we can use either term interchangeably.

    • @jakubstrawa8629
      @jakubstrawa8629 7 місяців тому

      @@statquest Ohhh okay, i understand now the difference. So if we have a dataset let's say 10 rows and we divide it into 3 parts (3/3/4) then its only 3-fold encoding but not the leave-one-out?

    • @statquest
      @statquest  7 місяців тому

      @@jakubstrawa8629 yep.

  • @Makumazaan
    @Makumazaan Рік тому

    Well, it is explained for categorization, what about regression?

    • @statquest
      @statquest  Рік тому +2

      Everything is the same for both methods (classification and regression). Just replaces the 1's and 0's in the target variable with continuous values.

  • @ernststravoblofeld
    @ernststravoblofeld 2 місяці тому +1

    In a better world, everyone would like Troll 2.

  • @heteromodal
    @heteromodal Рік тому

    hey Josh and thank you as always for an amazing tutorial! :)
    when we perform k-fold target encoding - it applies on all the data, and then you split to train-test sets? and then - we you have new data that you feed to the trained model and want to get predictions about - what would be the values you assign to the categorical features? the ones you'd get by just performing target encoding on all the initial data you had (train + test)?
    thank you!

    • @statquest
      @statquest  Рік тому +2

      Typically, we would split the data into training and testing bits. Then apply k-fold target encoding on the training data and build the model. Then, when testing, we use all of the training data to encode each row of testing data and run it through the model.

    • @heteromodal
      @heteromodal Рік тому +1

      @@statquest thanks!

  • @tompease95
    @tompease95 Рік тому +1

    This is the first Statquest I've ever watched which I've actually found quite confusing - two things it leaves unanswered:
    a) It's quite a leap to go from encoding categorical features in a way that each category always has the same numerical representation (e.g. blue is always 1), to a way that doesn't, and there is no explanation of why that works. I'm thinking - "How does the model know that 0.22 and 0.5 are referring to the same thing - isn't that an issue?".
    b) With k-fold TE, how do you encode the test data?

    • @statquest
      @statquest  Рік тому

      a) The model doesn't know that 0.22 and 0.5 are referring to the same thing. Is this ideal? Probably not - leaving the features as discrete options to begin with would probably be better. But if we don't have that choice, we have to make some sort of compromise.
      b) We just use the full training dataset.

    • @tompease95
      @tompease95 Рік тому

      @@statquest Ah okay, that makes sense re. a), thanks so much for the response. For b), makes sense that you would use the whole dataset for training, but how would you encode the categorical variables if you wanted to use the model with new data/in production?

    • @statquest
      @statquest  Рік тому

      @@tompease95 To be clear - when you have new data and your model is in production, you use the full training dataset. In other words, given the 7 rows of data in the example in the video, you would use all 7 rows to encode new data when using this in a production setting. You can precompute these values from the full training dataset so the encoding can be very fast.

  • @eoinwhelan4783
    @eoinwhelan4783 Рік тому

    Great video! One question - in using kfold target encoding it seems like you're being counter productive in producing encodings that is useful to a model. For example a node of an XGBoost tree will look at 'colour' and split based on the value of the encodings, treating it as a continous variable. But what if by kfold encoding maybe 'Blue' has values between [0.3, 0.5] and 'Red' has values between [0.2, 0.5 ] - now you've disrupted the models ability to effectively split on this node! Appreciate any thoughts on this you might have

    • @statquest
      @statquest  Рік тому

      First of all, I'm pretty sure XGBoost efficiently uses one-hot encoding for all discrete features, no matter how many options there are (by implementing sparse matrices). However, assuming you still have to translate the discrete features to continuous values, if there is overlap between Red and Blue, than that might actually be fine. The important thing isn't to split Red from Blue, but to make good predictions, and that might still happen, even with overlap.

  • @SkN097
    @SkN097 Рік тому

    If my column has 3 categories, should I convert it into 2 columns? (because with the information from two columns, I can determine the value of the third category). I understand that this conversion is commonly done in linear models to handle multicollinearity caused by the additional columns, but I'm unsure about its application in models like decision trees.
    Great videos!

    • @statquest
      @statquest  Рік тому

      The way design matrices are made for linear models is different than one-hot-encoding because they, specifically, need to deal with multicollinearity. However, most other ML methods, including decision trees and neural networks, don't have that problem, so for them, if you have 3 options, you have 3 columns.

  • @lucho8731
    @lucho8731 Рік тому

    Hello, I had watched some video but don't know the meaning of "Bam". Can anyone explain for me pls

    • @statquest
      @statquest  Рік тому

      Sure! If you want to learn about "Bam!", check out this StatQuest: ua-cam.com/video/i4iUvjsGCMc/v-deo.html It's clearly explained!!! :)

  • @kaus0463
    @kaus0463 6 місяців тому +2

    great!

  • @justinwhite2725
    @justinwhite2725 Рік тому +1

    5:06 that would be the average. The mean would be 0.
    Edit excuse me, I was confusing mean with median.carry on.

  • @DanishAlam-lp2cq
    @DanishAlam-lp2cq Рік тому

    Hi Josh.. Another great video.. Just curious, if we want to encode postcodes or something similar like user-id's, customer-id's where the target variable is not available which technique should we use?

    • @statquest
      @statquest  Рік тому

      All of the methods I know of require some sort of target.

    • @DanishAlam-lp2cq
      @DanishAlam-lp2cq Рік тому

      @@statquest Thanks Josh.. If possible could you please cover some videos on Contextual Anomaly detection .

    • @statquest
      @statquest  Рік тому

      @@DanishAlam-lp2cq I'll keep that in mind.

  • @bkleinman123
    @bkleinman123 Рік тому

    Hey Josh,
    Love the videos. I'm left with one question: is there anything we can do when we are doing multiclass classification and need to transform our predicted variable so that the algorithm isn't working with string data?

    • @statquest
      @statquest  Рік тому

      See: stats.stackexchange.com/questions/452022/can-target-encoding-be-performed-on-a-multi-label-classification-problem

  • @akaakaakaak5779
    @akaakaakaak5779 17 днів тому +1

    isnt it TrollS 2, not Troll 2? or is this some other thing or fictional version or something

    • @statquest
      @statquest  17 днів тому

      It's Troll 2: en.wikipedia.org/wiki/Troll_2

  • @samore11
    @samore11 Рік тому

    The methodology is very clear here. But one thing that bothers me is how a categorical feature can now have different numeric values - like Blue being .22 and .50. Let's say that all people who liked Blue also like Troll 2, and nobody else liked it. It seems that relationship would be easily recognized in a model if Blue was kept as is, or was given the same numeric value, but now it could be masked with the encoding techniques giving Blue different values. Am I missing something?

    • @statquest
      @statquest  Рік тому

      Yes, when you have crazy situations where there is a super tight correlation between a category and the label, this can cause problems. Thus, the folks that created CatBoost came up with a work around. To learn more about that strategy, see: ua-cam.com/video/KXOTSkPL2X4/v-deo.html

  • @novicadakovic6188
    @novicadakovic6188 Рік тому

    Why did we choose m=2?

    • @statquest
      @statquest  Рік тому +1

      This question is answered at 7:23

  • @simoneparvizi775
    @simoneparvizi775 Рік тому

    If anybody can help me understand the ONLY thing that's not clear to me:
    - In K-Fold target encoding, based on what do you choose the value of the weight?
    - Moreover, when I try it, I have results slightly above 1 (like 1.04,1.07, etc). It shouldn't be right? But I can't get why tho

    • @statquest
      @statquest  Рік тому +1

      I talk about how to think about what would be a good value for 'm' at 7:11 . However, if you have a large dataset, I've seen a lot of people just set it to 10. Also, you the output should always be between 0 and 1.

  • @Navier-Stokes
    @Navier-Stokes 3 місяці тому

    Hi Josh!
    I'm sorry but I don't understand something in the K fold target encoding. If blue have different values when I concatenate subsets into one single dataframe, how does the algorithm know that both are blue given that they have different values?
    What confuses me is that every previous methods keep the information of the color no matter the row and only this one change it...
    Thanks for all your good work 😁

    • @statquest
      @statquest  3 місяці тому +1

      The algorithm doesn't keep track of the original colors - just the values that replaced them. In this example, we end up with two different numbers that represent blue. If the dataset is relatively large, then those numbers should be relatively close to each other compared to the numbers that represent other colors, so in that sense, by proximity, information about the original color "blue" is retained.

    • @Navier-Stokes
      @Navier-Stokes 3 місяці тому +1

      @@statquest Thank you for your fast answer, it's getting clearer in my mind ! Best regards from France

  • @shil0universe
    @shil0universe 29 днів тому +1

    BAM!💥

  • @willw4096
    @willw4096 Рік тому

    3:03 5:33 6:17 6:27 6:42

  • @akshatsrivastava3480
    @akshatsrivastava3480 11 місяців тому +2

    i come here for beep boop boop beep beep

  • @nov1195
    @nov1195 6 місяців тому +1

    When I get stuck in comprehending any ML concept, I turn to StatQuest.

    • @statquest
      @statquest  6 місяців тому +1

      bam! :)

    • @nov1195
      @nov1195 6 місяців тому +1

      @@statquest Double bam!

  • @brandonsager223
    @brandonsager223 Рік тому

    I will stick with the 43k columns

  • @kom_senapati
    @kom_senapati Рік тому +1

    BAM!!

  • @youngzproduction7498
    @youngzproduction7498 Рік тому +1

    Multiple BAMS

  • @ehxanhaq2883
    @ehxanhaq2883 Рік тому +2

    Like this comment for "Shameless self liking" 😀

  • @habibiibnnabeel
    @habibiibnnabeel 8 місяців тому +1

    pin for absolutely no reason?
    who's watching when neural networks took over the world(2152)
    👇