Simple Machine Learning Project | Build a PERSONALITY SYSTEM using Basic PYTHON | Coding Portfolio

Sdílet
Vložit
  • čas přidán 5. 08. 2024
  • Do you want to build your coding portfolio in Python? Start here with a simple machine learning project in which you will build your own personality system!
    We will use an unsupervised learning algorithm, k-means, to divide people into TEN distinct personality types.
    This is an easy programming project, suitable for Python beginners & intermediate level. It's time to build your programming portfolio!
    Download the Big Five Personality Test data from Kaggle:
    www.kaggle.com/tunguz/big-fiv...
    Download the Jupyter Notebook:
    jupyter.org/
    Finished script on my GitHub account:
    github.com/karolina-sowinska/...
    P.S. What are your MBTI & Enneagram types?
    P.S.2. if you want to buy me a cup of coffee as a thanks.... :)
    ko-fi.com/karolina_sowinska
  • Věda a technologie

Komentáře • 108

  • @karolinasowinska
    @karolinasowinska  Před 4 lety +8

    Thanks again for watching! Let me know if that was too easy/too hard, I'll keep your comments in mind for the next video. Also, catch these timestamps:
    0:17 What is a personality system?
    0:57 Step-by-step project outline
    1:17 Download & view the data
    3:28 Feed the data into k-means (unsupervised learning algorithm)
    7:29 Discover the personality traits within a type (just looking at the first type)
    8:53 Discover the personality traits within all of the types
    10:02 Normalise the data
    12:36 Plot the results!

    • @siham1999
      @siham1999 Před 3 lety

      where is dataset's link please ?

    • @CE-vd2px
      @CE-vd2px Před 3 lety

      @@siham1999 Google "Kaggle Big 5 datset" and it is in the description

  • @aliadosmc
    @aliadosmc Před 2 lety +2

    I love your personality haha thanks for the video! 💜

  • @Dr0IT0iraq
    @Dr0IT0iraq Před 3 lety +6

    that was very useful, thanks a lot for what you delivered, this is my 2nd exercise...i need now to dive in your channel and get more and more for what you are doing, plus than this , it is very nice to look at a pretty programmer have an amazing smile and coming with all that passion of coding

    • @karolinasowinska
      @karolinasowinska  Před 3 lety +1

      I'm so glad to read this, thank you! :) I hope you'll enjoy my other videos

  • @abdelalimerhom3335
    @abdelalimerhom3335 Před 4 lety +1

    You did it very well, great effort, Thank you

  • @chdfnh
    @chdfnh Před 3 lety +1

    Love your videos! Thanks for sharing your knowledge. Greetings from Mexico!

  • @istiaqsiaam4878
    @istiaqsiaam4878 Před 3 lety

    is it possible to use elbow method on this to determine clusters rather then fixing 10 clusters ? if so , how ?

  • @phillipspodcast
    @phillipspodcast Před 3 lety +2

    Cool video, great idea for a project

  • @adrianpierzak4732
    @adrianpierzak4732 Před 4 lety +5

    Nice video! Good that you provided a link to the code base. :)

  • @mirzaminhazarafatayon7489

    Hello Kerolina! hope you're doing well.I'm really happy to see a easy machine learning project as I am working on personality prediction system in my final year thesis and your model helped me to get a right way.But please can you give me a solution? Can you tell us how we can calculate accuracy in this project?
    It will be very helpful for me.
    Thanks in advance ❤

  • @fadhelalsuwaidi1221
    @fadhelalsuwaidi1221 Před 2 lety +2

    Hi Karolina, wonderful video
    Am trying to create dss system (decision support system), which ml algorithm did u advice me to pick, I want the system to be able to give advices based on previous experience.
    Thanks in advance.

  • @ellasmpark
    @ellasmpark Před rokem +1

    Hi Karolina, i'm trying to decipher the parameters you used for the KMeans. By "MiniBatchKMeans(n_clusters=10, random_state=0, batch_size=100, max_iter=100)", we are telling the machine to create 10 centroids at the same location across the 10,000 batches ? Many thanks in advance :)

  • @Spicyspacegoat
    @Spicyspacegoat Před 3 lety +8

    I think there is maybe a mistake when you do loop for all_types_scores
    each line of personality must be 0-->9, then 10 --> 19... right?

    • @karolinasowinska
      @karolinasowinska  Před 3 lety

      You are right, I'll update the code as soon as possible! Thanks for spotting! :)

  • @deeyadoshi4673
    @deeyadoshi4673 Před 3 lety

    Ms.Karolina Sowinska I'm facing the below mentioned error while running the MiniBatchKMeans algorithm. Could you please help me?
    C:\Users\Deeya Doshi\OneDrive\Desktop\Personality\env\lib\site-packages\sklearn\cluster\_kmeans.py:887: UserWarning: MiniBatchKMeans is known to have a memory leak on Windows with MKL, when there are less chunks than available threads. You can prevent it by setting batch_size >= 2048 or by setting the environment variable OMP_NUM_THREADS=1
    warnings.warn(

  • @khushboochoudhary6938
    @khushboochoudhary6938 Před 3 lety

    Can you help me out if I want to do this project in visual studio so what things I have to keep in mind for it please rply because it's urgent to me

  • @dineshkumarmetta6626
    @dineshkumarmetta6626 Před 3 lety

    I got an error in In[13]
    It will display value error: could not convert string to float
    I am doing final year project please help me

  • @MilitaryTech21
    @MilitaryTech21 Před 3 lety +2

    Thank you very much, great effort. 👍

  • @dongdinhquang2542
    @dongdinhquang2542 Před 2 lety +1

    The video sound is pretty good, beyond my imagination

  • @michealhall7776
    @michealhall7776 Před 3 lety +1

    Should you have changed the missing values for 2.5 (assuming Max is 5) the middle, so you don't assume people extremely disagree with all missing data. My thinking is a netual answer would lead to better results.

  • @daksh2485
    @daksh2485 Před 3 lety

    Which regression you used here

  • @dharna452
    @dharna452 Před 3 lety +1

    explained so easiy!!

  • @risatak3973
    @risatak3973 Před 2 lety

    Is there a way to create a similar test without knowing any code?

  • @ramiismael7502
    @ramiismael7502 Před 3 lety +1

    This is a great video

  • @MadMax-pk8oy
    @MadMax-pk8oy Před 3 lety +1

    Mam, is there any expert level python programming course

  • @sreeharim5976
    @sreeharim5976 Před 3 lety

    how can I contact u to discuss a plan of my project using this topic is same but its my first project

  • @khushboochoudhary6938
    @khushboochoudhary6938 Před 3 lety

    And ma'am what will be the frontend and backend for it

  • @Suhaibsavors
    @Suhaibsavors Před rokem +1

    T
    hank you

  • @competidor64
    @competidor64 Před 4 lety +1

    excellent content, subscribed Karolina Sowinska

  • @farahjahangir8540
    @farahjahangir8540 Před 4 lety

    In supervised learning for raw data called msgs how can we compute personality scores(EXTROVERT/INTROVERT)(JUDGING /FEELING) for certain emotions? can u help

    • @karolinasowinska
      @karolinasowinska  Před 4 lety

      That will depend on how the msgs data looks like. Do you have a link so that I can have a look at it?

    • @farahjahangir8540
      @farahjahangir8540 Před 4 lety

      Data is in text just like the post that in MBTI type. But it needs preprocessing as certain terms dont represent emotions like URLS etc.. For supervised learning we need to know the targeted feature as These types(Extrovert/Introvert). Thats what confused me.

    • @karolinasowinska
      @karolinasowinska  Před 4 lety +1

      @@farahjahangir8540 That's right, for supervised learning we need labels. In this video, by firstly clustering each row into one of the 10 clusters, we are effectively assigning labels for each row. That's why we would be able to use supervised learning as a next step (that is, assigning someone to one of the 10 clusters based on their responses to the personality test). If your data doesn't have labels, then there are two solutions: 1. labelling the data manually (assign a label to each row based on your judgement) 2. using a proxy (something that could serve as an approximation of the true label).

    • @farahjahangir8540
      @farahjahangir8540 Před 4 lety +1

      Thankyou for the response.😊🙌

  • @tochukwunwokolo2048
    @tochukwunwokolo2048 Před 3 lety +5

    Hi, wonderful video! Thanks so much. Could you explain what you're doing while you're doing it? Or direct your camera to the screen while you're explaining? That would be very helpful. Thank you again.

    • @karolinasowinska
      @karolinasowinska  Před 3 lety +3

      Hi, thanks! That's good feedback, I agree this is not the best way to present. I actually changed the way I explain things in my newest videos to have voiceovers when showing code! :)

    • @amethyst1044
      @amethyst1044 Před 3 lety

      @@karolinasowinska So I am making a project in machine learning, and what I am trying to do is predicting the scores of each trait of the big five personality traits using this dataset for an answer of that set of questions. Is it possible? I am kinda lost Tbh, as I only have the questions and their answers in this dataset, but not the scores for each answer (therefore, it is not labeled) I still don't really understand how to use this dataset for my purpose. This video is somehow close to what I want to do(I think) but I still an not exactly sure what happened here
      An answer would help me a lot x) x(

    • @shivanijaiswal402
      @shivanijaiswal402 Před 3 lety

      @@amethyst1044 Did u complete ur project?

    • @amethyst1044
      @amethyst1044 Před 3 lety

      @@shivanijaiswal402 not yet, no

    • @shivanijaiswal402
      @shivanijaiswal402 Před 3 lety

      @@amethyst1044 Okay

  • @estheefreynet
    @estheefreynet Před 2 lety +5

    Hi Karolina, thanks for this insightful video :) I thought you might be able to point me in the right direction. I'm building an enneagram test to distribute for free to the public, version 1 is already finished but right now it's done on paper (it ranks each type separately as this is the easiest way I found, but I want to have the result be one type with the wing). As you know, the algorithm to make an enneagram test is quite a project. I'm a beginner coder, can I make a test entirely with Python? Are there tools or resources you would recommend?

    • @karolinasowinska
      @karolinasowinska  Před 2 lety +3

      Hey! Sorry for my delayed response. It's awesome that you're planning to create your own test! Yes, you can definitely do it entirely in Python (the whole test logic and saving the data to a database), but what might be a little more challenging is the presentation layer, because you'll need to learn some web dev (html,css, javascript or alternatively some frameworks such as Django). If you don't have any experience with coding, I'd probably go for a low code solution such as wordpress. Unless you're determined to learn quite a few technologies (or you know some alresdy) :)

    • @danielihenacho
      @danielihenacho Před 2 lety

      @@karolinasowinska I think for the presentation layer, she could make use of Streamlit. It's a platform to easily display data science and ML projects.

  • @ig_surajdeep
    @ig_surajdeep Před rokem +1

    Arigatto gosaymas

  • @azkamalik325
    @azkamalik325 Před 3 lety +3

    can i use this system to ask questions from the user and predict his personality type and if yes, how? plz help will be highly thankful

    • @karolinasowinska
      @karolinasowinska  Před 3 lety +2

      Yes you can! You'd have to do a few things:
      1. Write a little program to get user input 2. Do the unsupervised learning algorithm as shown in the video, and keep the results (one of the 10 personality types) as labels
      3. Train a supervised learning algorithm on the existing data, using the fact that you now have labels
      4. Fit the trained algorithm on the unseen user input from your little program
      5. V'oilla, you get the personality type prediction:)

    • @azkamalik325
      @azkamalik325 Před 3 lety

      thanks. what can be the supervised learning algorithm?

    • @karolinasowinska
      @karolinasowinska  Před 3 lety +2

      @@azkamalik325 decision trees for example:)

    • @azkamalik325
      @azkamalik325 Před 3 lety +1

      thank you so much🙂

    • @azkamalik325
      @azkamalik325 Před 3 lety +1

      can you please provide the code implementation of this too, or make some tutorial to do that plz??

  • @snehasebi3480
    @snehasebi3480 Před 3 lety +1

    Hey is it possible to run this program using UI

  • @rmp5640
    @rmp5640 Před 3 lety +3

    Thanks for tutorial, it would be great if you can recommend some basic ML course tutorial so that we can learn some concepts and syntax first coz it's a bit hard when you see it for the first time :D

    • @karolinasowinska
      @karolinasowinska  Před 3 lety

      Great suggestion! I'll definitely think about it! :)

    • @rmp5640
      @rmp5640 Před 3 lety +1

      @@karolinasowinska Thank you so much! It doesn't look hard when you explain and writing but still, when someone is a new baby in the game it's hard to catch all up, love your videos, I will watchall of them in next few days because I will probably have that interview for junior data engineer job next week or week after next :)

    • @karolinasowinska
      @karolinasowinska  Před 3 lety +1

      @@rmp5640 Good luck with the interview and I hope my videos will come in handy!! :)

    • @rmp5640
      @rmp5640 Před 3 lety +1

      @@karolinasowinska Thank you so much! No matter how it goes at the end, you are very informative and nice and your videos are cool and I will continue with progression, learning, watching and trying things on my own. It seems bit easier then programming and even QA type of jobs :)

  • @PerfectlyHiba
    @PerfectlyHiba Před 2 lety

    Hey karolina. This vedio is too good. Here I want some guidance for my fyp. I will be creating an online job portal where a user can apply for a job and while applying after submitting cv he has to give this personality test by answering some questions and the emplyer can see win what category does this candidate falls. Could you help me find out how I will link machine learning with website developed with php or node js?

  • @smraghu81
    @smraghu81 Před 3 lety +1

    Great work.! Thanks. Is there any way to get these questions and their answer options?. Please share the link if you have?. Thanks in advance ☺

  • @md.alief35
    @md.alief35 Před 3 lety +2

    Hi Karolina...I want to ask you, can I make a career prediction system using this personality traits ? is it possible to use this method?

    • @karolinasowinska
      @karolinasowinska  Před 3 lety

      Hmm you'd have to get the appropriate data (that correlates personality traits with careers). If you did, then you could use this algorithm. :)

  • @plavali_znaem
    @plavali_znaem Před 2 lety

    dear Karolina, I am following the video and got a question about 8:13, where you subtract and add values to a score. I am somewhat new to ML, so basic questions appear. The question is: what exactly in the code reflect the words "if person answer 'yes', we add up, if person answers 'no', be subtract." What are the numerical values corresponding to positive or negative answer? And did you manually do the subtraction and summation of all the values - I mean, did you check the answer, whether it's 'yes' or 'no', and decided upon the sign (be it '+' or '-') before one[1], one[2] etc (if it makes sense), or is there any way the code figured it out itself? I'd be happy if you find time to answer, or anyone reading this could share their input too!

    • @plavali_znaem
      @plavali_znaem Před 2 lety

      9 months passed, and I am able to answer this myself ;)

  • @sreeharim5976
    @sreeharim5976 Před 3 lety +1

    thank you for the great informations and you are very beautiful .... :)

  • @snehasebi3480
    @snehasebi3480 Před 3 lety +1

    If can possible can you tell me how

    • @karolinasowinska
      @karolinasowinska  Před 3 lety

      You'd have to build your own UI - there are plenty of technologies you can use, e.g. React framework

    • @snehasebi3480
      @snehasebi3480 Před 3 lety

      Ok thank you

  • @occupytheweb8855
    @occupytheweb8855 Před 3 lety +1

    🌹🙏💜✨

  • @MadMax-pk8oy
    @MadMax-pk8oy Před 3 lety +1

    You and me can teamup for Kaggle competition and win big stacks of money...🌝

  • @Yunixes
    @Yunixes Před 3 lety +1

    You are an Infj right?

  • @itlearner1175
    @itlearner1175 Před 3 lety +2

    Good tutorial but hate the music

    • @karolinasowinska
      @karolinasowinska  Před 3 lety

      Thanks for your feedback! I changed the music in the following videos! :)

    • @itlearner1175
      @itlearner1175 Před 3 lety +1

      @@karolinasowinska Perhaps better without music?

    • @karolinasowinska
      @karolinasowinska  Před 3 lety

      @@itlearner1175 Hm, that's debatable! I think music can add some character to a video. But I can definitely see that it can also be quite distracting!

  • @aabidgull9787
    @aabidgull9787 Před 2 lety

    getting error at this line "could not convert string to float:"
    at this line of code
    "kmeans = MiniBatchKMeans(n_clusters=10, random_state=0, batch_size=100, max_iter=100).fit(X)"

  • @KK7155.
    @KK7155. Před 3 lety +3

    I am falling in love by watching you.you are so beautiful so that's why subscribe your channel.

    • @karolinasowinska
      @karolinasowinska  Před 3 lety

      Oh, that's very flattering, I'm glad you're enjoying the channel!

  • @Bell0
    @Bell0 Před 3 lety +2

    Hello @Karolina Sowinska, thank you very much for explaining this!
    I tried to make the code a little more comprehensible and fixed the loop Values as @Victor Cardon already pointed out.
    (Unfortunately my comments are in German but if someone needs it I could translate it into Eng as well)
    You can find it here:
    colab.research.google.com/drive/1WaSTtLpoYfrzi7P6ZyW33ifo122pShru?usp=sharing

    • @karolinasowinska
      @karolinasowinska  Před 3 lety +1

      Awesome stuff, thanks! ;)

    • @caffeinecrash7398
      @caffeinecrash7398 Před 3 lety

      Hi @S B thank you for the notebook. I'm interested in your 'Next Steps', will you develop this project further?. I'm interested in improving this project too. Would you mind to explain your 'Next Steps' further?. Thank you very much!

    • @Bell0
      @Bell0 Před 3 lety

      @@caffeinecrash7398 Hey :) first i have to tell you that I am quite a noob in this area and I don't actually know how to continue but I would love to develop it further and am currently looking for solutions. I think the next steps depend on what your goal is because as the code is right now it might be usefull to create "fake" People but the question is "what do we want our fake people to do?". In my case I want to create a chatbot with a "personality" so the first step was to "generate" Personalities which worked out thanks to Karolina and Victor.
      Now my next steps are to 1. teach a Model to (randomly) self-assign one of the generated Personalities.
      2. Teach the Model to generate Text (probably with GPT or DialoGPT) in the "style" of the generated Personality.
      3. Create an Userinput Method so the Model can actually listen to chat input.
      4. Try to chat with the Bot and optimize
      I skipped #1 for now and was kind of successfull in Training a small DialoGPT model thanks to various tutorials (My Notebook: colab.research.google.com/drive/12ckWLFYNv6hEmZxfV72jPtZd9r-6phWv?usp=sharing) but my coding skills are not good enough at the moment to continue so i am currently trying to learn more
      I hope it helps a little and if you like we can of course try to develop it together :)
      Best wishes,
      Bello

  • @MrPrebuttal
    @MrPrebuttal Před 4 lety

    Are you an ENTP?

    • @karolinasowinska
      @karolinasowinska  Před 4 lety

      Haha no! Keep guessing! :)

    • @michealhall7776
      @michealhall7776 Před 3 lety +1

      Girls are harder to type. I first thought was ENFP. But could also be INFP, or even INFJ. Also camera self is not real self, plus girls tend to have defence layers, making of hard to pick.

    • @karolinasowinska
      @karolinasowinska  Před 3 lety

      @@michealhall7776 Well said! :)

    • @MrPrebuttal
      @MrPrebuttal Před 3 lety +1

      micheal hall You do a questionnaire and reply with the results. Its pretty simple

    • @karolinasowinska
      @karolinasowinska  Před 3 lety

      @@MrPrebuttal To be fair the test results might not be very accurate. It think it's best to study yourself, do some introspection, and understand the cognitive functions theory:)

  • @plavali_znaem
    @plavali_znaem Před 2 lety

    did somebody else get totally different results for one_scores?
    mine do differ a lot from what Karolina shows... wonder, did the dataset change in the meantime?
    here's what I got:
    {'extroversion_score': -7.008256313845145,
    'neuroticism_score': 15.281161668616864,
    'agreeableness_score': 1.982790581491693,
    'conscientiousness_score': 1.4643256248110226,
    'openness_score': 9.367826669997259}

  • @Suhaibsavors
    @Suhaibsavors Před rokem +1

    T
    hank you