Principal Component Analysis (PCA)

Поділитися
Вставка
  • Опубліковано 26 січ 2020
  • Principal component analysis (PCA) is a workhorse algorithm in statistics, where dominant correlation patterns are extracted from high-dimensional data.
    Book PDF: databookuw.com/databook.pdf
    Book Website: databookuw.com
    These lectures follow Chapter 1 from: "Data-Driven Science and Engineering: Machine Learning, Dynamical Systems, and Control" by Brunton and Kutz
    Amazon: www.amazon.com/Data-Driven-Sc...
    Brunton Website: eigensteve.com
    This video was produced at the University of Washington
  • Наука та технологія

КОМЕНТАРІ • 206

  • @T4l0nITA
    @T4l0nITA 4 роки тому +43

    The best video on PCA I could find on youtube, no messy blackboards, jokes or oversimplification, just solid explanation, great job.

  • @sjh7782
    @sjh7782 3 роки тому +22

    Prof. Brunton always delivers the best explanations on the subjects! His videos really help me a lot! Kudos!

  • @rezab314
    @rezab314 3 роки тому +22

    What the hell. One can download your book for free?! You sir are a saint. I will work thru it and if I like it I will definitely purchase it!! (I'm pretty sure I will like it, because I like all your videos so far)
    PS: I am so proud of you guys. You are bringing humanity forward with content like this being free. I encourage everyone who can to purchase content from sources like this

  • @danielzhang3070
    @danielzhang3070 4 роки тому +65

    So far this is the best video of PCA explanation.

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

    You explain complicated math in a brilliant way. Thank you so much

  • @aayushpatel5777
    @aayushpatel5777 3 роки тому +3

    These videos are the PCA for data driven engineering!!Thank you for bringing up these series publicly!!

  • @sheethouse15
    @sheethouse15 3 місяці тому

    Finally, someone who explains statistics in a straight-forward way, whilst communicating in an adult like manner.

  • @GreenCreepLoL
    @GreenCreepLoL 3 роки тому +10

    I logged in just for this, which I almost never do xD
    I wanted to say: Thank you!
    Your video series is great, enjoyful, and helps getting familiar with the topic rapidly. The same applies to the book, which you link at for free. Thank you.

  • @vijanth
    @vijanth 3 роки тому +1

    Steve, able to explain PCA from classical statistiscal point of view. Very clear

  • @resap.9128
    @resap.9128 3 роки тому +14

    I've watched a lot of PCA videos and this is really the best one. You're amazing!

    • @TheMangz1611
      @TheMangz1611 3 роки тому +2

      yes he is but do visit statquest

    • @GundoganFatih
      @GundoganFatih 2 роки тому +2

      @@TheMangz1611 Bam. Best wishes to anyone who makes teaching intuitive.

  • @shashidharmuniswamy2620
    @shashidharmuniswamy2620 2 роки тому +2

    Thank you, Prof. Brunton. I have a question: supposing I have done this series of experiments with a target measure that cannot be categorized but is a continuous value, then can I use PCA?

  • @richardlin6993
    @richardlin6993 4 роки тому +3

    Best explanation. Looking forward to video about Kernel PCA!

  • @lucasheterjag
    @lucasheterjag 2 роки тому

    Love this series! Just bought your book

  • @vijanth
    @vijanth 3 роки тому

    The alst part of the video on how SVD and PCA are related really class of its own. IT show the expert should run video lectures

  • @jacobanderson5693
    @jacobanderson5693 4 роки тому +18

    Do you have a patreon? How can I help support this content? Just these materials on Ch1 and 2 have been amazing. Will it extend to addiitonal chapters?

    • @Eigensteve
      @Eigensteve  4 роки тому +13

      I don't, but I really appreciate the kind words! This will extend to all of the chapters eventually.

  • @criticalcog6363
    @criticalcog6363 3 роки тому +1

    Wow, excellent explanation. Thank you so much.

  • @VinodSharma-lj6yy
    @VinodSharma-lj6yy 2 місяці тому

    Very good explanation for each symptom and its treatment

  • @edhas7988
    @edhas7988 3 роки тому +2

    Thank you so much. You made it really easy to understand.

  • @user-pb4pe5mk7c
    @user-pb4pe5mk7c 3 роки тому

    I am a phd student learning inverse scattering, your lectures help me with understanding those concept :) greetings from naples

  • @tymothylim6550
    @tymothylim6550 3 роки тому

    Thank you very much for this video! Learnt quite a bit from this :)

  • @Sky-pg6xy
    @Sky-pg6xy 2 роки тому

    This channel is amazing!

  • @jaanuskiipli4647
    @jaanuskiipli4647 3 роки тому

    Correct me if I'm wrong, but B transposed multiplied by B sums up the products of mean centered values, but to get the covariation we still need to divide by number of rows in X as covariation is defined as
    E{(X-E(X))*(Y-E(Y))} not just sum of (X-E(X))*(Y-E(Y)) over measurements

  • @jenssen97
    @jenssen97 3 роки тому

    superb explanation. Thank you!

  • @rodrigomaximo1034
    @rodrigomaximo1034 2 роки тому +1

    Amazing video. I did the MIT lectures about Linear Algebra (that talked about SVD) and the Andrew Ng's ML course (that talked about PCA). This video was the perfect bridge to connect the two things in a coherent manner. Thank you very much, Dr. Brunton!

  • @muhammadali-jv1kr
    @muhammadali-jv1kr 3 роки тому

    Excellent ,connected ,simple

  • @mohamedemara6906
    @mohamedemara6906 4 роки тому +3

    This is amazing!

  • @bradjones06
    @bradjones06 4 роки тому +1

    If there was a Nobel Prize in Education (which there absolutely should be), then you should absolutely win.

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

    Beautifully explained ~ and Thank you so much ^^

  • @macmos1
    @macmos1 4 роки тому +3

    Awesome! Thank you!

  • @noahbarrow7979
    @noahbarrow7979 2 роки тому +3

    Hey Dr. Brunton. Awesome video yet again! I've been snooping around kaggle, and found a dataset on body performance given a host of variables. I thought i'd try using PCA to determine the most influential characteristics within the data and began working with it in matlab. I was able to get tons of outputs (a thrill unto itself) and a nice little scatter plot! However, when all was said and done I had difficulty understanding which variables were most influential by looking at the scatter plot and PCA breakdown. What should I be doing/thinking to gain that intuition? Thanks!

  • @thomaswilke9197
    @thomaswilke9197 3 роки тому +2

    Is this done with a glass whiteboard and the recording is mirrored?

  • @Actanonverba01
    @Actanonverba01 4 роки тому +1

    Very clear, excellent

  • @hectorponce2012
    @hectorponce2012 3 роки тому

    Does the concept of cross-loadings exist in PCA like it does in EFA? If it does exist, what are the criteria to determine so?

  • @ffelixvideos
    @ffelixvideos 2 роки тому +6

    Hi professor, Just one question. If your X matrix has samples in the rows and sample features in the columns, then the correct shouldn't be to calculate the column-means(X), instead of row-means(X), and subtract each column-value by its respective column-mean? So, each X column (feature) has mean = 0.

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

      I think, as he explained at the beginning, this mix-up happened due to the difference in representing the data in SVD literature and PCA literature. I am rewatching this lecture after watching the next one where MATLAB demonstration is given. The code does exactly that, take column-mean of each person and then subtract. I came down in the comment section to check if somebody else had this confusion also.

  • @spyhunter0066
    @spyhunter0066 2 роки тому

    Can you also show how to get covariance matrix from a Gaussian function results from its fit on a Gaussian looking data. Any suggestion for a book to explain this kind of stuff? Cheers.

  • @minjieshen6558
    @minjieshen6558 4 роки тому +8

    If we do row-wise correlation with respect to B, should it be C=B * B_T instead of B_T * B?

    • @jianjia7261
      @jianjia7261 2 роки тому

      i agree with you

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

      Yeah, he wrote "BTB is the covariance of the the rows of B", but I think he meant the columns (the features)

  • @alexanderfeng860
    @alexanderfeng860 3 роки тому +4

    I believe that there's a typo. The principal components are the columns of V.

  • @MilianoAlvez
    @MilianoAlvez 4 роки тому +10

    Excelent teaching. I have one question tho. When you wrote the covariance matrix of the rows (6:00) because each row is a measurement vector I thought its the covariance between the measurements but then you wrote C=(BT)(B) which is the covariance of the features. Can you explain please.

    • @GreenCreepLoL
      @GreenCreepLoL 3 роки тому

      From what I could find in PCA literature, it depends on what you have more of (Objects or Variables/Features). Both (BT)(B) and (B)(BT) is possible when doing PCA, and the covariance matrix you calculate depends on this (you always take the larger one).

    • @MilianoAlvez
      @MilianoAlvez 3 роки тому +7

      Here I am six month later but now I understand my problem. So, we have measurment vector M and every mesurment has some features such as age, height, disease and etc. Now what we are intersted in, is to understand the distributation and the covariance of these features to workout for example joint or posterior distributions or etc. For example, the positive covariance between age and testing positive for some disease means there is a relation between these two ,the more the age the more the risk of this disease. So, we need the (BT)*B that is Cov-Var between features, then we can find the joint or posterior probablity distribution.

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

      @@MilianoAlvez right, which means B*B is the covariance of the columns. Brunton I think accidentally wrote "rows"

  • @vincecaulfield9368
    @vincecaulfield9368 4 роки тому +6

    Hi Steve,
    There may be a tiny typo in Page#22 in your Data Driven Science book. The equation(1.26) is supposed to be $B = X - \bar X$ to represent demeaned data $X$ while it shows $B = X - \bar B$ on the book. Please correct me if I am wrong.

  • @SM-tb9ux
    @SM-tb9ux 2 роки тому +3

    It can be helpful to use the names "features" (to refer to the 'n' different pixels in a photo, or the 'n' different characteristics of rats which may predict cancer) and "snapshots" (to refer to the 'm' different measurements (e.g. people's photos, or rats)).
    Then, it doesn't matter whether you have the "features" as columns or rows - Corr(feat) = feature-wise correlation matrix, where entries represent the correlation between two features, and the eigenvectors of this matrix are the "eigenfeatures". If you happen to have "features" as columns, then Corr(feat) = [X][X^T]. If you happen to have the "features" as rows, then Corr(feat) = [X^T][X].
    Similarly, for the "snapshots" we have the Corr(snap) = snapshot-wise correlation matrix, where entries represent the correlation between two snapshots, and the eigenvectors of this matrix are the "eigensnapshots". Again, depending on whether the "snapshots" are in the rows or columns of X, you can find Corr(snap).
    This also helps when doing PCA, as you generally wish to reduce the number of "features", and are therefore interested in determining the eigenvectors of Corr(feat). No need to sweat over how your data is organized in the matrix X, or any annoying conventions for PCA.
    In short, it is easier to think of "features & snapshots" than "rows & columns".

    • @HansongGao
      @HansongGao 4 місяці тому

      I can't agree more. It is inconsistent in the video and the code. In the video, he emphasized that each row has to be the features collected from a single individual. If you have a 2*10000 matrix, you have 2 individuals and 2000 features. However, a matrix of 2*10000 is generated in the code, which actually means 2 features and 10000 individuals. That takes me a really long time to figure out what happened.

  • @eduardoantonioroquediaz9504
    @eduardoantonioroquediaz9504 3 роки тому

    If I have outliers in my dataset, can this affect the PCA?, because I have tried with cases of this type and it usually identifies a single principal component

  • @matthijsg5983
    @matthijsg5983 8 місяців тому

    Note @ 7:50 regarding CV = VD. The D here is a matrix where all the eigenvalues are on the diagonal.

  • @braydenst.pierre9761
    @braydenst.pierre9761 3 роки тому +6

    Thanks for the great explanation! In your next video, can you please explain how you are writing backward!?

  • @zhanfeipeng7625
    @zhanfeipeng7625 4 роки тому +2

    Still confused how do we get BV=USigma🤔🤔 since Vt doesn’t cancel with V right?

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

    In some implementations, I find that along with mean centering, standard deviation division is followed (Z-scores), does this make a difference? I believe standard deviation division is important to keep the features on the same scale (Unit Variance).

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

    Nobody gonna say anything about how this man just wrote all of that backwards flawlessly?

  • @wenhuaxu8589
    @wenhuaxu8589 4 роки тому +3

    Thank you

  • @huseyinsenol1769
    @huseyinsenol1769 4 місяці тому

    Best math content is always the serious and straightforward ones.. Fuck the jokers, you are the king dude

  • @leli9833
    @leli9833 2 роки тому +1

    hi doctor,really usefull to watch your lecture,but in the video,you have pointed out that T matrix is the principle components, however ,this is what confused me, my knowlage is that the col vector of loading are principle components, T is just transformed version of the data B. pls correct me if im wrong, thanks.

  • @ocarinaoftimelz
    @ocarinaoftimelz 3 роки тому

    So as another way to look at this, are U the scores, sigma the eigenvalues, and V the loadings?

  • @alhelibrito4480
    @alhelibrito4480 3 роки тому +1

    Wow, I saw n videos before this, beautiful explanation¡

  • @cyaaronk7328
    @cyaaronk7328 3 роки тому

    Amazing! Thank you!

  • @yt-1161
    @yt-1161 Рік тому +1

    4:45 here you’re summing over the elements of each row, but in the book on page 21 it say x_j = sum_i X_ij so you’re building the sum of each column. Is it a typo ?

  • @tazking93
    @tazking93 4 роки тому +56

    Thank you for the lecture, its been very helpful. On an unrelated note, how do you write backwards with such ease?

    • @LTForcedown
      @LTForcedown 4 роки тому +18

      They probably just mirror the video

    • @estebanlopez1701
      @estebanlopez1701 3 роки тому

      I was thinking the same!

    • @xephyr417
      @xephyr417 3 роки тому +4

      @@LTForcedown no, he writes backwards.

    • @arkanasays
      @arkanasays 3 роки тому

      it is a mirroring technique - he cannot write backwards with such ease

    • @HardLessonsOfLife
      @HardLessonsOfLife 2 роки тому

      I think he is using a special technology which shows mirror image of his board in front of him

  • @qasimahmad6714
    @qasimahmad6714 3 роки тому

    Is it important to show 95% confidence ellipse in PCA? If my data is not drawing then what should i do ? can i used PCA score graph without 95% confidence ellipse?

  • @Kyubbie
    @Kyubbie 3 роки тому

    I started watching from SVD til here and it was super helpful! Thank you so so much.

  • @reginaldrobinson8007
    @reginaldrobinson8007 3 роки тому

    Can you please share what software and equipment you're using for this presentation?

  • @u2coldplay844
    @u2coldplay844 3 роки тому

    I am confused with SVD of B in step 4 , Isn't we do SVD or Eigen decomposition of C the covariance matrix? i.e. T=CV=UE, C=UEV' ? thank you

  • @linkmaster959
    @linkmaster959 3 роки тому

    The data matrix is a wide matrix, so if it is already zero mean, then in this case the PC XV is equal to XU (Considering U from the SVD lecture)?

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

    Should #3 be the covariance matrix of the columns rather than the row ?.
    It seems to me that leads to V rows = B columns

  • @mquant001
    @mquant001 3 роки тому

    Please could you make a video about singular spectrum analysis?

  • @localguy123
    @localguy123 3 роки тому

    Hello, can you show with examples how to curvilinear component analysis?

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

    this is amazing

  • @zsun0188
    @zsun0188 3 роки тому +2

    BtB seems to calculate the cariance matrix of cols of B.

    • @Eigensteve
      @Eigensteve  3 роки тому

      Yep, this essentially is a matrix of inner products of each column with each other.

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

    how do you write inverted letters so quick? or is it some kind of CGI?

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

    At the 13’45 ‘’ mark why is the equation CV=VD? Should it be CV=DV?

  • @mangeshpathade5183
    @mangeshpathade5183 4 роки тому

    Why did we calculate covariance matrix?

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

    @6:08, Can anybody confirm that C=B*BT instead of C=BT*B. That is because each row of B represents the measurement of a variable (0 mean).

  • @nkotbs
    @nkotbs 3 роки тому +2

    Amazing video. To the point and efficient.

  • @hira9505040
    @hira9505040 3 роки тому +1

    I like your explanation. Please check equation 1.26 on your databook.

  • @sorvex9
    @sorvex9 2 роки тому

    Can someone explain to me, why covariance matrix is just the inner product of B transposed B?

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

    Principal Component Analysis (PCA) is a technique in statistics that simplifies complex data by identifying and emphasizing the most important patterns or features. It does this by transforming the original variables into a new set of uncorrelated variables called principal components, allowing for a more efficient representation of the data.

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

    This guy is super good at writing backwards

  • @vinson2233
    @vinson2233 2 роки тому

    You only said about the data should have 0 mean, but what about the standard deviation? Don't we need to scale the data first by dividing each measure by its standard deviation to make sure the PCA doesn't easily overfit to direction with the largest magnitude?

  • @EladM8a
    @EladM8a 3 роки тому +5

    doesn't C has to be B*B^T ? B^T * B is the covariance of the columns if I get this correctly

    • @nguyenkiengtoan5402
      @nguyenkiengtoan5402 3 роки тому +1

      indeed, C should have to divide to 1/N ... or may be my memory is wrong

    • @kottelkannim4919
      @kottelkannim4919 3 роки тому +3

      No. (and you yourself pointed out why:-).
      Each column represent a single feature, e.g. "age" for the entire population.
      Each row contains the features of a single individual, e.g. "age, weight, sex,...".
      In order to get an estimate of , say, cov("age","weight") one has to multiply the columns,
      "age"^T * "weight"
      and divide by, say N-1 (roughly the number of individual samples in each column as suggested by Kieng Toan).
      That is why B^T * B is due here.
      May I suggest a UA-cam playlist of Victor Lavrenko that actually explains the general motivation driving PCA and the specific motivation for searching for the eigenvectors of the covariance matrix.
      ua-cam.com/play/PLBv09BD7ez_5_yapAg86Od6JeeypkS4YM.html
      esp. video #7

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

      @Elad M @Kottel Kannim You're both right. B^T * B is the covariance of the columns, and that's what we want... i.e., covariance of the features (or variables). Brunton mistakenly writes "covariance of the rows of B".

  • @gamingandmusic9217
    @gamingandmusic9217 3 роки тому

    If the images of X are not all independent, then X is not full rank matrix.then will we have only rank number of eigen faces?

  • @Giantcjy
    @Giantcjy 3 роки тому +1

    He just knows it all.

    • @Eigensteve
      @Eigensteve  3 роки тому

      Lol, not even the first principal component! :)

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

    are you writing in the reverse order (right to left) on the board?

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

    We do the last part (T=BV) in order to calculate the inner product with the principal components.

  • @MrRynRules
    @MrRynRules 3 роки тому

    Thank you!

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

    Brilliant!

  • @engr.israrkhan
    @engr.israrkhan 4 роки тому +1

    Nice lecture

  • @GamingShiiep
    @GamingShiiep 2 роки тому

    2:09 I just don't get it: Let's say we measured 1600 samples. Each sample measurement resulted in a concentration value for each of 26 Elements. How would that look like in the matrix?
    So my matrix would have 1600 rows and 26 columns, right?

  • @julianjnavasgonzalez1563
    @julianjnavasgonzalez1563 3 роки тому

    I was following ok until the part that started with writing the lambdas. I got lost there.
    Also, how is this and the nipals algorithm related?

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

    The following are measurements on the test scores (X, Y) of 6 candidates for two subject examinations:
    (50, 55), (62, 92), (80, 97), (65, 83), (64, 95), (73, 93)
    Determine the first principal components for the test scores, by using Hotelling's iterative procedure. Sir how to .....???

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

    very good, thanks a lot 😅

  • @rachh2750
    @rachh2750 3 роки тому +1

    How does he write in reverse?

  • @_Gianluca
    @_Gianluca 3 роки тому

    Thanks for this video! What's the difference between cumulative sum of sigma instead of lamba? (11:30)
    In "Principal Component Analysis (PCA) 2 [Python]" you do the cumulative sum of S (sigma elements).
    Thanks!

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

    Introduction is one thing, presentation is another.
    One who combines both gets all the attention!!

  • @ricosrealm
    @ricosrealm 2 роки тому +1

    I came to learn about PCA, but now I’m just focusing on how he can write backwards so clearly.

    • @jamesbra4410
      @jamesbra4410 2 роки тому

      It's a trickle on the optocordical neural network involving image inversion

  • @cathytang2558
    @cathytang2558 4 роки тому +2

    In the mean center part you are calculating row averages? As you described each row can be have "sex, age, demographics, and so on", these are not of the same category. Shouldn't it be column means?

    • @Eigensteve
      @Eigensteve  4 роки тому +1

      Great question. You can still compute the average age across all people. For other categorical data, you would usually break these columns into multiple columns and assign a "1" to the column corresponding to the correct category and "0"s for the other categories. This will make it possible to average the numerical values.

    • @effizienzlizenz
      @effizienzlizenz 4 роки тому +2

      @Cathy Tang @Steve Brunton.That puzzled me as well. But I think that the name "mean row" refers to a row that consists of the averages of each column. That way, if you think of the average x, it will just represent a vector of column averages. Hence, by having copies of that same vector in each row and applying matrix substraction, you will end up with (value - its respective column average) for every value in the matrix we started with.

  • @HenryYi
    @HenryYi 2 роки тому

    Can somebody explain to me why it's B'B not BB' since the data were stored row-wise.

  • @baseladams280
    @baseladams280 3 місяці тому

    How to film such kind of tutorial videos?

  • @pandu-kt3cz
    @pandu-kt3cz 4 роки тому

    this is more than Awesome!! i want to ask you one question and it is here
    a1=[1,23,4,51,62,7,8,43,1,29]
    a2=[5,45,32,51,60,7,8,35,10,31]
    a3=[13,3,64,35,36,37,48,3,31,1]
    a4=[3,3,1,5,6,3,8,3,1,3]
    a5=[0,3,0,5,0,0,8,0,0,1]
    how can i figure out important columns (features) with eigenvalues and eigenvectors?
    As we can see here , importance of a4 and a5 is negligible! but how can i find out with this concept?
    I have eigenvalues and eigenvectors of this but do not know how to use them in this context ?
    after finding eigenvalues and eigenvectors , i know how to find PC.Because i have seen your videos .
    As i have seen in the comment section someone already asked this question . But i was not able to understand the Ans!
    kindly help me out.

  • @ollieelmgreen7280
    @ollieelmgreen7280 3 роки тому +2

    Everyone: Great video
    Me: Wondering how he can write backwards

  • @nami1540
    @nami1540 2 роки тому

    Wouldn't we need to divide by N or N-1 for the covariance matrix? I know covariance as sij = 1/(N-1)* sum (n=>N) (v_in*v_jn)

  • @nurtenbakc2562
    @nurtenbakc2562 11 днів тому

    Dear Steve bu video da neden altyazılarda türkçe yok. Anlayamadim

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

    Thank so much. Please, can you make a video on Invariant coordinate selection (ICS) method ???
    It will be very helpful. Thank in advance.

  • @MaeLSTRoM1997
    @MaeLSTRoM1997 2 роки тому +1

    It took me a while to realize you are left handed and you just reflected the video so that what you write appears in the correct orientation for us.
    At first I was wondering if you managed to learn how to write backwards..

  • @notmomo4u
    @notmomo4u 3 роки тому

    You are an angel!!!!!!!!!!!!!