Академический Документы
Профессиональный Документы
Культура Документы
11.8.17
Course evaluation
The question papers for PESIT and PESU students may even be different.
Different Sections will have different question papers.
Questions
1. What are the two important properties of
statistical distribution that is common across
all distributions?
2. The procedure to compute the mean and
standard deviation is different for different
distributions [T/F]
3. What is the relationship between standard
deviation and variance?
Questions
4. In case of a uniform distribution the
probability density function = 1 throughout
the range. When you add up probabilities
what happens?
5. How do you measure inter-quartile range
value?
6. How to find outliers in a distribution?
Questions
7. What statistical approach is generally used to do the
grading of students for a subject?
8. Can we use the concept of outliers to decide who should
get S grade and F grade? Try it out for any example
distribution of marks?
9. What is central limit theorem? Why is it important? What is
its significance?
10. What is the difference between exponential function and
exponential distribution?
11. What is coefficient of variation?
12. What is coefficient of determination?
13. What is a Variate when we talk about distributions?
Measure of variability
Range difference between min and max
Simplest measure of variability
Sensitive to changes at the extremes
Interquartile range
Difference between third quartile and first quartile
Range for the middle 50% of data
Overcomes sensitivity
53, 55, 70, 58, 64, 57, 53, 69, 57, 68, 53
= 68-53 = 15
Symbol Meaning
+ Addition
- Subtraction
* Multiplication
/ Division
Modulo (estimates remainder in a
%%
division)
^ Exponential
Numbers in R: NAN and NA
NAN (not a number)
NA (missing value)
Basic handling of missing values
>x
[1] 1 2 3 4 5 6 7 8 NA
> mean(x)
[1] NA
> mean(x,na.rm=TRUE)
[1] 4.5
Objects in R
Objects in R obtain values by assignment.
This is achieved by the gets arrow, <-, and not
the equal sign, =.
Objects can be of different kinds.
Built in Functions
R has many built in functions that compute
different statistical procedures.
Functions in R are followed by ( ).
Inside the parenthesis we write the object
(vector, matrix, array, dataframe) to which we
want to apply the function.
Vectors
Vectors are variables with one or more values
of the same type.
A variable with a single value is known as
scalar. In R a scalar is a vector of length 1.
There are at least three ways to create vectors
in R: (a) sequence, (b) concatenation function,
and (c) scan function.
Arrays
Arrays are numeric objects with dimension
attributes.
The difference between a matrix and an array
is that arrays have more than two dimensions.
Matrices
A matrix is a two dimensional array.
The command colnames
Factors
Category Values- For example blood group can
be A, B, AB, O,..
Data Frame
Data Frame
Specifically for datasets
Rows = observations (persons), instances
Columns = variables (age, name, )
Contain elements of different types
Elements in same column: same type
Data Frame
name age child
Anne 28 FALSE
Pete 30 TRUE
Frank 21 TRUE
Julia 39 FALSE
Cath 35 TRUE
> name <- c("Anne", "Pete", "Frank", "Julia", "Cath")
> age <- c(28, 30, 21, 39, 35)
> child <- c(FALSE, TRUE, TRUE, FALSE, TRUE)
> df <- data.frame(name, age, child)
data.frame()
> df
name age child
1 Anne 28 FALSE
2 Pete 30 TRUE
3 Frank 21 TRUE
4 Julia 39 FALSE
5 Cath 35 TRUE
column names match variable names
Plots
str(countries)
'data.frame': 194 obs. of 5 variables:
$ name : chr "Afghanistan" "Albania" "Algeria" ...
$ continent : Factor w/ 6 levels "Africa","Asia", ...
$ area : int 648 29 2388 0 0 1247 0 0 2777 2777
...
$ population: int 16 3 20 0 0 7 0 0 28 28 ...
$ religion : Factor w/ 6 levels
"Buddhist","Catholic" ...
Plots
Categorical Religion
Numerical Population or Area
2x Numerical look at both Population and
Area
2x Categorical look at religion and continent
at the same time
String Characters
In R, string variables are defined by double
quotation marks.
> letters
[1] "a" "b" "c"
Subscripts and Indices
Select only one or some of the elements in a
vector, a matrix or an array.
We can do this by using subscripts in square
brackets [ ].
In matrices or dataframes the first subscript
refers to the row and the second to the
column.
Dataframe
Researchers work mostly with dataframes .
With previous knowledge you can built
dataframes in R
Also, import dataframes into R.
Summaries
Statistics -> Summaries
Mean & Standard Deviation
Mean Everybody knows
If
the values x1...xn are a random sample chosen from the population, then
the sample Standard Deviation is calculated with same formula,
except that (n-1) is used as the denominator.
Median & Mode
Arithmetic, Statistics. the middle number in a
given sequence of numbers, taken as the
average of the two middle numbers when the
sequence has an even number of numbers:4 is
the median of 1, 3, 4, 8, 9.
Mode is the value of the variate at which a
relative or absolute maximum occurs in the
frequency distribution of the variate
Why divide by (n 1) instead of by n when we are calculating
the sample standard deviation?
Population
Mean, median, mode
Standard deviation, variance
Skew and kurtosis
Missing data
Outliers
Sampling data and the CLT
Normalization
Population
A collection of people, items or events about
which you want to make an inference
Expectation a belief that something is going
to happen
Weighted average of all the possible values a
random variable x can take
E(x) =
Moments in statistics
nth moment of a real valued continuous function f(x) of
a real variable x about c
Interquartile range
Difference between third quartile and first quartile
Range for the middle 50% of data
Overcomes sensitivity
53, 55, 70, 58, 64, 57, 53, 69, 57, 68, 53
= 68-53 = 15
https://en.wikipedia.org/wiki/Gaussian_function
Bivariate Gaussian
https://en.wikipedia.org/wiki
/Gaussian_function
Sections of a Bivariate Gaussian
http://www.byclb.com/TR/Tutorials/neural_networks/ch4_1.htm
Covariance matrix for the Bivariate
Correlation coefficient
= cov(x,y)/x y
= x y /x y
Mixtools
package in R
http://exploringdatablog.blogspot.in/2011/08/fitting-mixture-distributions-with-r.html
Otsu method
http://groveslab.cchem.berkeley.edu/programming/20140310_imagej2/
Separating mixtures or
decision boundaries
https://www.cs.ubc.ca/~murphyk/Teaching/CS340-Fall07/gaussClassif.pdf
Boundaries in higher dimensions
http://www.cs.toronto.edu/~urtasun/courses/CSC411/09_naive_bayes.pdf
Bivariate Gaussians not equiprobable
Indistinguishable mixture
http://cacm.acm.org/magazines/2012/2/145412-disentangling-gaussians/abstract
Tests for bimodality
Necessary condition:
Kurtosis (skewness)2 1 (Pearsons criterion)
Equality holds in the extreme case of two diracs
http://www.jerrydallal.com/lhsp/corr.htm
Sampling a population
It is not always convenient to or possible to
examine every member of an entire population
Bruises on every apple picked in an orchard
vs
Bruises on a subset of apples picked in an orchard
Sampling = selecting a subset of data from a
population about which we can make an
inference
Sampling
Systematic sampling pick every kth sample
Simple random sampling without replacement
Simple random sampling with replacement
Cluster sample
Stratified sampling
CSR example
Software engineers divided into strata by age
Samples more likely to be representative
Sampling in DSP (reconstruction of a signal)
Downsampling vs upsampling
Sampling
Sampling is the process of selecting a subset of a population to
represent the whole, during analysis and modeling. In the current
era of big datasets, some people argue that computational power
and modern algorithms let us analyze the entire large dataset
without the need to sample.
We can certainly analyze larger datasets than we could before, but
sampling is a necessary task for other reasons. When youre in the
middle of developing or refining a modeling procedure, its easier to
test and debug the code on small subsamples before training the
model on the entire dataset. Visualization can be easier with a
subsample of the data; ggplot runs faster on smaller datasets, and
too much data will often obscure the patterns in a graph.And often
its not feasible to use your entire customer base to train a model
Sampling
Its important that the dataset that you do use is an accurate representation
of your population as a whole. For example, your customers might come
from all over the United States. When you collect your custdata dataset, it
might be tempting to use all the customers from one state, say
Connecticut, to train the model. But if you plan to use the model to make
predictions about customers all over the country idea to pick customers
randomly from all the states, because, its a good what predicts health
insurance coverage for Texas customers might be different from what
predicts health insurance coverage in Connecticut. This might not always
be possible (perhaps only your Connecticut and Massachusetts branches
currently collect the customer health insurance information), but the
shortcomings of using a nonrepresentative dataset should be kept in mind.
More on Sampling
Sampling can be used as a data reduction technique
because it allows a large data set to be represented by a
much smaller random data sample (or subset). Suppose
that a large data set, D, contains N tuples. Lets look at the
most common ways that we could sample D for data
reduction
Simple random sample without replacement (SRSWOR) of size
s: This is created by drawing s of the N tuples from D (s < N),
where the probability of drawing any tuple in D is 1/N, that is, all
tuples are equally likely to be sampled.
Simple random sample with replacement (SRSWR) of size s: This
is similar to SRSWOR, except that each time a tuple is drawn
from D, it is recorded and then replaced. That is, after a tuple is
drawn, it is placed back in D so that it may be drawn again.
Test and Training Samples
When youre building a model to make
predictions, like our model to predict the
probability of health insurance coverage, you
need data to build the model. You also need
data to test whether the model makes correct
predictions on new data. The first set is called
the training set, and the second set is called
the test (or hold-out) set.
Sampling
Cluster sample: If the tuples in D are grouped into M
mutually disjoint clusters, then an SRS(Simple
random sample) of s clusters can be obtained, where s
< M. For example, tuples in a database are usually
retrieved a page at a time, so that each page can be
considered a cluster. A reduced data representation
can be obtained by applying, say, SRSWOR to the
pages, resulting in a cluster sample of the tuples. Other
clustering criteria conveying rich semantics can also be
explored. For example, in a spatial database, we may
choose to define clusters geographically based on how
closely different areas are located.
Sampling
Startified Sampling
Stratified sample: If D is divided into mutually
disjoint parts called strata, a stratified sample of D
is generated by obtaining an SRS at each stratum.
This helps ensure a representative sample,
especially when the data are skewed. For
example, a stratified sample may be obtained
from customer data, where a stratum is created
for each customer age group. In this way, the age
group having the smallest number of customers
will be sure to be represented.
Stratified Sampling
The training set is the data that you feed to the
model-building algorithmregression,
decision trees, and so onso that the
algorithm can set the correct parameters to
best predict the outcome variable. The test set
is the data that you feed into the resulting
model, to verify that the models predictions
are accurate.
Systematic sampling
Systematic sampling is a statistical method
involving the selection of elements from an
ordered sampling frame. The most common
form of systematic sampling is an equal-
probability method. In this approach,
progression through the list is treated
circularly, with a return to the top once the
end of the list is passed
Systematic Sampling
Example: We have a population of 5 units (A to E). We
want to give unit A a 20% probability of selection, unit
B a 40% probability, and so on up to unit E (100%).
Assuming we maintain alphabetical order, we allocate
each unit to the following interval:
A: 0 to 0.2 B: 0.2 to 0.6 (= 0.2 + 0.4) C: 0.6 to 1.2 (= 0.6
+ 0.6) D: 1.2 to 2.0 (= 1.2 + 0.8) E: 2.0 to 3.0 (= 2.0 +
1.0) If our random start was 0.156, we would first
select the unit whose interval contains this number
(i.e. A). Next, we would select the interval containing
1.156 (element C), then 2.156 (element E). If instead
our random start was 0.350, we would select from
points 0.350 (B), 1.350 (D), and 2.350 (E).
Sampling
An advantage of sampling for data reduction is
that the cost of obtaining a sample is
proportional to the size of the sample, s, as
opposed to N, the data set size. Hence, sampling
complexity is potentially sublinear to the size of
the data. Other data reduction techniques can
require at least one complete pass through D. For
a fixed sample size, sampling complexity
increases only linearly as the number of data
dimensions, n, increases, whereas techniques
using histograms, for example, increase
exponentially in n.
Sampling
When applied to data reduction, sampling is most
commonly used to estimate the answer to an
aggregate query. It is possible (using the central
limit theorem) to determine a sufficient sample
size for estimating a given function within a
specified degree of error. This sample size, s, may
be extremely small in comparison to N. Sampling
is a natural choice for the progressive refinement
of a reduced data set. Such a set can be further
refined by simply increasing the sample size
Central Limit Theorem
In probability theory, the central limit theorem (CLT) states that, given certain
conditions, the arithmetic mean of a sufficiently large number of iterates
of independent random variables, each with a well-defined (finite) expected
value and finite variance, will be approximately normally distributed, regardless of
the underlying distribution.[1][2] To illustrate what this means, suppose that
a sample is obtained containing a large number of observations, each observation
being randomly generated in a way that does not depend on the values of the
other observations, and that the arithmetic average of the observed values is
computed. If this procedure is performed many times, the central limit theorem
says that the computed values of the average will be distributed according to
the normal distribution(commonly known as a "bell curve"). A simple example of
this is that if one flips a coin many times, the probability of getting a given number
of heads should follow a normal curve, with mean equal to half the total number
of flips.
The central limit theorem has a number of variants. In its common form, the
random variables must be identically distributed. In variants, convergence of the
mean to the normal distribution also occurs for non-identical distributions or for
non-independent observations, given that they comply with certain conditions.
IID variables
Lot of machine learning algorithms assume IID
distribution.
Independent, Identically distributed.
Otherwise if you learn from one sample, it
may have no bearing to rest of the population.
Contingency Table & Correlation
A table showing the distribution of one variable in rows
and another in columns, used to study the correlation
between the two variables.
Handed-
ness Right handed Left handed Total
Gender
Male 43 9 52
Female 44 4 48
Total 87 13 100
The term contingency table was first used by Karl Pearson in "On the Theory of
Contingency and Its Relation to Association and Normal Correlation in 1904.
Little bit of R
Loading data into R
Will accept a variety of files such as csv.
Tabular forms refered to as structured values.
Car data viewed as a table
Reading UCI data
uciCar <- read.table(
'http://www.win-
vector.com/dfiles/car.data.csv',
sep=',',
header=T
)
Examining the Car data
class()Tells you what type of R object you
have. In our case, class(uciCar) tells us the
object uciCar is of class data.frame.
help()Gives you the documentation for a
class. In particular try help (class(uciCar)) or
help("data.frame").
summary()Gives you a summary of almost
any R object. summary(uciCar) shows us a lot
about the distribution of the UCI car data.
Summary gives out distribution of
different variables in the data-set
summary(uciCar)
buying maint doors
high :432 high :432 2 :432
low :432 low :432 3 :432
med :432 med :432 4 :432
vhigh:432 vhigh:432 5more:432
persons lug_boot safety
2 :576 big :576 high:576
4 :576 med :576 low :576
more:576 small:576 med :576
rating
acc : 384
good : 69
unacc:1210
vgood: 65
Other data formats
XLS/XLSXhttp://cran.r-project.org/doc/manuals/
R-data.html#Reading-Excel-spreadsheets
JSONhttp://cran.r-
project.org/web/packages/rjson/index.html
XMLhttp://cran.r-
project.org/web/packages/XML/index.html
MongoDBhttp://cran.r-
project.org/web/packages/rmongodb/index.html
SQLhttp://cran.r-
project.org/web/packages/DBI/index.html
Transforming data in R First Load the
data
d <-
read.table(paste('http://archive.ics.uci.edu/ml
/',
'machine-learning-
databases/statlog/german/german.data',sep='
'),
stringsAsFactors=F,header=F)
print(d[1:3,])
Setting Column Names
colnames(d) <- c('Status.of.existing.checking.account',
'Duration.in.month', 'Credit.history', 'Purpose',
'Credit.amount', 'Savings account/bonds',
'Present.employment.since',
'Installment.rate.in.percentage.of.disposable.income',
'Personal.status.and.sex', 'Other.debtors/guarantors',
'Present.residence.since', 'Property', 'Age.in.years',
'Other.installment.plans', 'Housing',
'Number.of.existing.credits.at.this.bank', 'Job',
'Number.of.people.being.liable.to.provide.maintenance.for',
'Telephone', 'foreign.worker', 'Good.Loan')
d$Good.Loan <- as.factor(ifelse(d$Good.Loan==1,'GoodLoan','BadLoan'))
print(d[1:3,]
Mapping Loan Codes
mapping <- list(
'A40'='car (new)',
'A41'='car (used)',
'A42'='furniture/equipment',
'A43'='radio/television',
'A44'='domestic appliances',
)
Transforming data in R
for(i in 1:(dim(d))[2]) {
if(class(d[,i])=='character') {
d[,i] <- as.factor(as.character(mapping[d[,i]]))
}
}
Data
You can also work with relational databases and load data into R.
options( java.parameters = "-Xmx2g" )
library(RJDBC)
drv <- JDBC("org.h2.Driver",
"h2-1.3.170.jar",
identifier.quote="'")
options<-";LOG=0;CACHE_SIZE=65536;LOCK_MODE=0;UNDO_LOG=0"
conn <- dbConnect(drv,paste("jdbc:h2:H2DB",options,sep=''),"u","u")
dhus <- dbGetQuery(conn,"SELECT * FROM hus WHERE ORIGRANDGROUP<=1")
dpus <- dbGetQuery(conn,"SELECT pus.* FROM pus WHERE pus.SERIALNO IN \
(SELECT DISTINCT hus.SERIALNO FROM hus \
WHERE hus.ORIGRANDGROUP<=1)")
dbDisconnect(conn)
save(dhus,dpus,file='phsample.RData')
Key take aways
Data frames are your friend.
Use read_table() to load small, structured
datasets into R.
You can use a package like RJDBC to load
data into R from relational databases, and to
transform or aggregate the data before
loading using SQL.
Always document data provenance
Exploring Data
Suppose your goal is to build a model to predict which
of your customers dont have health insurance;
perhaps you want to market inexpensive health
insurance packages to them. Youve collected a dataset
of customers whose health insurance status you know.
Youve also identified some customer properties that
you believe help predict the probability of insurance
coverage: age, employment status, income,
information about residence and vehicles, and so on.
Youve put all your data into a single data frame called
custdata that youve input into R.1 Now youre
ready to start building the model to identify the
customers youre interested in.
Missing Values
Typical problems revealed by data summaries
missing values, invalid values and outliers,
and data ranges that are too wide or too
narrow..
Missing Values
A few missing values may not really be a
problem, but if a particular data field is largely
unpopulated, it shouldnt be used as an input
without some repair.
Rows could be dropped
Unpopulated fields could be dropped.
Missing Values
The variable is.employed is missing for about a third of
the data. Why?
Is employment status unknown? Did the company start
collecting employment data only recently? Does NA
mean not in the active workforce (for example,
students or stay-at-home parents)
is.employed
Mode :logical
FALSE:73
TRUE :599
NA's :328
Missing Values
The variables housing.type, recent.move, and
num.vehicles are only missing a few values.
Its probably safe to just drop the rows that
are missing values especially if the missing
values are all the same 56 rows.
Homeowner free and clear :157
Homeowner with mortgage/loan:412
Occupied with no rent : 11
Rented :364
NA's : 56
Both variables have 56 rows with
missing data
recent.move num.vehicles
Mode :logical Min. :0.000
FALSE:820 1st Qu.:1.000
TRUE :124 Median :2.000
NA's :56 Mean :1.916
3rd Qu.:2.000
Max. :6.000
NA's :56
Invalid values and Outliers
Even when a column or variable isnt missing any
values, you still want to check that
the values that you do have make sense. Do you
have any invalid values or outliers?
Examples of invalid values include negative values
in what should be a non-negative
numeric data field (like age or income), or text
where you expect numbers. Outliers
are data points that fall well out of the range of
where you expect the data to be.
Negative Values
Negative values for income could indicate
bad data. They might also have a special
meaning, like amount of debt.
Either way, you should check how prevalent
the issue is, and decide what to do: Do you
drop the data with negative income? Do
you convert negative values to zero?
Outliers
Customers of age zero, or customers of an age
greater than about 110 are outliers. They fall
out of the range of expected customer values.
Outliers could be data input errors. They
could be special sentinel values: zero might
mean age unknown or refuse to state.
And some of your customers might be
especially long-lived.
Often, invalid values are simply bad data input.
Negative numbers in a field like age, however,
could be a sentinel value to designate
unknown. Outliers might also be data errors
or sentinel values. Or they might be valid but
unusual data pointspeople do
occasionally live past 100.
As with missing values, you must decide the
most appropriate action: drop the data field,
drop the data points where this field is bad, or
convert the bad data to a useful value. Even if
you feel certain outliers are valid data, you
might still want to omit them from model
construction (and also collar allowed
prediction range), since the usual achievable
goal of modelling is to predict the typical case
correctly.
Data Range
Income ranges from zero to over half a million dollars; a
very wide range.
summary(custdata$income)
Min. 1st Qu. Median Mean 3rd Qu.
-8700 14600 35000 53500 67000
Max.
615000
You also want to pay attention to how much the values in
the data vary. If you believe that age or income helps to
predict the probability of health insurance coverage, you
should make sure there is enough variation in the age and
income of your customers for you to see the relationships.
Is the data range wide? Is it narrow?
Data Range
Data can be too narrow, too. Suppose all your
customers are between the ages of
50 and 55. Its a good bet that age range
wouldnt be a very good predictor of the
probability of health insurance coverage for that
population, since it doesnt vary
much at all.
Data Range
How narrow is too narrow a data range?
Of course, the term narrow is relative. If we were predicting
the ability to read for children between the ages of 5 and
10, then age probably is a useful variable as-is.
For data including adult ages, you may want to transform or
bin ages in some way, as you dont expect a significant
change in reading ability between ages 40 and 50. You
should rely on information about the problem domain to
judge if the data range is narrow, but a rough rule of thumb
is the ratio of the standard deviation to the mean. If that
ratio is very small, then the data isnt varying much.
Unit of measurement
Checking units can prevent inaccurate results
hourly wage, annual wage or monthly wage
Key Takeaways
Take the time to examine your data before diving into
the modelling.
The summary command helps you spot issues with
data range, units, data type, and missing or invalid
values.
Visualization additionally gives you a sense of data
distribution and relationships among variables.
Visualization is an iterative process and helps answer
questions about the data. Time spent here is time not
wasted during the modeling process.
Managing Data
Cleaning Data
Treating Missing Values
To Drop or not to Drop
Remember that we have a dataset of 1,000 customers; 56 missing values
represents about 6% of the data. Thats not trivial, but its not huge,
either. The fact that three variables are all missing exactly 56 values
suggests that its the same 56 customers in each case. Thats easy enough
to check.
is.employed value is missing...
...assign the value "missing". Otherwise...
...if is.employed==TRUE,
assign the value "employed"...
...or the value "not employed".
When values are missing randomly
> meanIncome <- mean(custdata$Income, na.rm=T)
> Income.fix <- ifelse(is.na(custdata$Income),
meanIncome,
custdata$Income)
> summary(Income.fix)
Min. 1st Qu. Median Mean 3rd Qu. Max.
0 35000 66200 66200 66200 615000
Dont forget the argument "na.rm=T"! Otherwise, the
mean() function will include the NAs by default, and
meanIncome will be NA.
Assuming that the customers with missing income are distributed
the same way as the others, this estimate will be correct on
average, and youll be about as likely to have overestimated
customer income as underestimated it. Its also an easy fix to
implement.
This estimate can be improved when you remember that income is
related to other variables in your datafor instance, you know
from your data exploration in the previous chapter that theres a
relationship between age and income. There might be a
relationship between state of residence or marital status and
income, as well. If you
have this information, you can use it.
Note that the method of imputing a missing value of an input
variable can be used even for categorical data
Missing values
Its important to remember that replacing missing values by
the mean, as well as many more sophisticated methods for
imputing missing values, assumes that the customers with
missing income are in some sense random (the faulty
sensor situation).
Its possible that the customers with missing income data
are systematically different from the others. For instance, it
could be the case that the customers with missing income
information truly have no incomebecause theyre not in
the active workforce.
If this is so, then filling in their income information by
using one of the preceding methods is the wrong thing to
do. In this situation, there are two transformations you can
try.
Transformations
Method Math Operation Good for: Bad for:
2
Square x Left skewed data Negative values
1/3
Cube root x Right skewed data Not as effective at
Negative values normalizing as log transform
http://blog.fliptop.com/blog/2015/03/02/bias-variance-and-overfitting-machine-learning-
overview/
Curse of dimensionality
When dimensionality increases, data becomes
increasingly sparse in the space that it
occupies
Definitions of density and distance
between points, which is critical for clustering
and outlier detection, become less meaningful
Some approaches
Too many missing values in one or more attributes
Drop columns
What is meant here is that, for each of the obtained dimensions, values (scores)
are produced that combine several attributes. These can be used for further
analyses.
PC1 = 0.521*z1-0.269*z2+0.580*z3+0.564*z4
PC2 = -0.377*z1-0.923*z2-0.024*z3-0.066*z4
And so on.
Here Z1,Z2, Z3 and Z4 are standardized versions of attributes i.e with mean = 0 and standard
deviation =1.
Square of the loadings sum to 1. (Vertically sum squares)
Importance of components
http://www.cs.otago.ac.nz/cosc453/student_tutorials/principal_components.pdf
Principal component analysis
Get data
Subtract mean
Compute the covariance matrix
Find Eigen values and Eigen vectors
Select principal Eigen vectors (PCA)
Project data onto selected Eigen vectors
Plot data
Covariance, Eigen analysis
http://www.cs.otago.ac.nz/cosc453/student_tutorials/principal_components.pdf
Choosing an appropriate axis
http://www.cs.otago.ac.nz/cosc453/student_tutorials/principal_components.pdf
A new representation
http://www.cs.otago.ac.nz/cosc453/student_tutorials/principal_components.pdf
Other preprocessing
Categorical data - alphabetical ordering, regular
expressions to identify typographical errors -
reassigning id's, etc., will not make a difference to
the information
Numerical data
quantization (binning) ; real to discrete, ranges
binarization or thresholding (loss of information)