[SER222] Empirical Analysis (7/8): Modeling Small Datasets

Ruben Acuna
25 Aug 201706:22

Summary

TLDREn este video se presenta una segunda forma de analizar las funciones de potencia y su modelado utilizando conjuntos de datos pequeños, específicamente con solo dos puntos de datos. A través de un ejemplo, el video muestra cómo es posible realizar un proceso de regresión y determinar una función polinómica utilizando solo dos pares de datos escalados. Utilizando la asunción de que el tamaño del conjunto de datos sigue un modelo de función de potencia, se demuestra cómo calcular el exponente 'b' usando álgebra y logaritmos, lo que simplifica considerablemente el análisis sin necesidad de múltiples ejecuciones.

Takeaways

  • 💡 Se presenta un método alternativo para analizar funciones de potencia cuando se tiene muy poca data.
  • 📊 Este enfoque se aplica específicamente cuando solo se tienen dos puntos de datos.
  • ⚙️ Se asume que la función que predice el tiempo de ejecución es una función de potencia.
  • 🔢 Utilizando solo dos puntos de datos (tamaño N y tamaño 2N), es posible realizar un análisis regresivo.
  • 📉 Aunque con dos puntos normalmente se obtiene una línea, aquí se puede hacer algo más preciso.
  • 🔍 Se emplea álgebra para simplificar la expresión y calcular el exponente de la función de potencia.
  • 🧮 Al dividir los tiempos de ejecución y simplificar, se obtiene una expresión logarítmica que permite calcular el valor de 'b'.
  • 📈 El valor de 'b' es crucial para determinar el comportamiento de la función que modela el tiempo de ejecución.
  • 📌 Si el modelo de función de potencia es correcto, el logaritmo de la razón de los tiempos debe ser constante.
  • 🔎 Si el valor logarítmico varía, es indicativo de que la función de potencia no es adecuada para el conjunto de datos.

Q & A

  • ¿Cuál es el enfoque principal del video?

    -El video se centra en cómo modelar una función de potencia y analizar un conjunto de datos cuando solo se tienen dos puntos de datos disponibles.

  • ¿Por qué es importante trabajar con un conjunto de datos pequeño?

    -Es importante porque en algunos casos, generar más pares de datos puede ser lento o costoso, por lo que se busca una forma de hacer la regresión con la menor cantidad de datos posible.

  • ¿Qué suposición adicional se hace para trabajar con solo dos puntos de datos?

    -Se asume que la función que predice el tiempo de ejecución del programa en función del tamaño del input es una función de potencia.

  • ¿Qué es T(N) en el contexto del video?

    -T(N) es la función que representa el tiempo que toma el programa en ejecutarse con un tamaño de entrada N.

  • ¿Cómo se utiliza la suposición de una función de potencia en los cálculos?

    -La suposición de que T(N) es una función de potencia permite realizar una serie de pasos algebraicos con solo dos valores de entrada (N y 2N) para determinar el exponente de la función de potencia.

  • ¿Qué pasa después de dividir las dos expresiones de T(N) y T(2N)?

    -Después de dividir T(2N) por T(N), se simplifican algunos términos, lo que lleva a una expresión más sencilla: T(2N)/T(N) = 2^b, donde 'b' es el exponente de la función de potencia.

  • ¿Qué se obtiene al tomar logaritmos en ambos lados de la ecuación?

    -Al tomar logaritmos en base 2 de ambos lados, se obtiene una expresión que permite resolver 'b', el exponente en la función T(N), utilizando solo dos puntos de datos.

  • ¿Por qué es útil este método con solo dos puntos de datos?

    -Este método es útil porque reduce significativamente la cantidad de información requerida para determinar la forma de la función que modela el tiempo de ejecución, lo que ahorra tiempo y esfuerzo.

  • ¿Qué indica si el valor de log(ratio) varía en diferentes líneas?

    -Si log(ratio) varía, esto indica que la suposición de que el modelo es una función de potencia puede ser incorrecta.

  • ¿Qué significa que log(ratio) permanezca constante en los datos?

    -Si log(ratio) permanece constante, como en el ejemplo del video, indica que la suposición de que el programa puede ser modelado por una función de potencia es correcta.

Outlines

00:00

🔢 Analizando funciones de potencia con datos limitados

En este video se presenta una segunda manera de analizar el modelado de funciones de potencia cuando se tiene una cantidad muy limitada de datos, específicamente cuando solo se cuentan con dos puntos de datos. A diferencia del ejemplo anterior, donde se usaron ocho pares de datos, aquí se trata de hacer una regresión con la menor cantidad de datos posible. El enfoque consiste en deducir una función polinómica a partir de solo dos puntos, lo cual, aunque parece complicado, es factible bajo ciertas suposiciones. Se asume que la función T(N), que predice el tiempo de ejecución de un programa, es una función de potencia.

05:01

🧮 Simplificación algebraica para obtener la función

El análisis se basa en suponer que T(N) es una función de potencia, lo que permite realizar simplificaciones algebraicas. A partir de dos puntos de datos, N y 2N, se dividen las expresiones correspondientes de T(N) y T(2N) para simplificar el problema. Este proceso lleva a la ecuación T(2N) / T(N) = 2^b, donde b es el exponente de la función de potencia. Luego, al aplicar logaritmos en base 2, se puede resolver para b. Esto permite obtener información clave sin necesidad de múltiples puntos de datos.

Mindmap

Keywords

💡Función de potencia

Una función de potencia es una función matemática que tiene la forma T(N) = A * N^b, donde N es el tamaño de la entrada y A y b son constantes. En el video, se utiliza esta función para modelar el tiempo que tarda un programa en ejecutarse en función del tamaño de la entrada. Este concepto es clave para entender cómo se puede hacer una regresión con solo dos puntos de datos, bajo la suposición de que el tiempo de ejecución sigue una función de potencia.

💡Datos limitados

En el video se destaca la situación en la que solo se tienen dos puntos de datos para realizar un análisis. Esto es importante porque a menudo en situaciones reales no se dispone de muchos datos, y el video muestra cómo con solo dos puntos se puede deducir información útil, como el valor de b en una función de potencia.

💡T(N)

T(N) es la notación utilizada en el video para representar el tiempo de ejecución de un programa en función del tamaño de la entrada N. Este valor es clave en el análisis de la complejidad temporal de un algoritmo, y se supone que sigue una función de potencia. En el video, se trabaja con dos valores de T, uno para el tamaño N y otro para el tamaño 2N.

💡Regresión

La regresión es el proceso de ajustar un modelo matemático a un conjunto de datos. En este caso, el video explica cómo se puede realizar una regresión para determinar los parámetros de una función de potencia utilizando solo dos puntos de datos. Este es un enfoque útil cuando el conjunto de datos es pequeño, como se menciona en el video.

💡División de expresiones

La división de expresiones es un paso clave en el análisis algebraico presentado en el video. Para encontrar el valor de b en la función de potencia, el video sugiere dividir las expresiones de T(2N) y T(N), lo que lleva a simplificaciones algebraicas que permiten aislar b.

💡Logaritmo en base 2

El logaritmo en base 2 es una operación matemática utilizada en el video para resolver la ecuación resultante de dividir las expresiones de T(2N) y T(N). Se utiliza para calcular el valor de b, el exponente en la función de potencia. El video menciona que 'lg' es la notación que indica logaritmo en base 2.

💡Asunción

En el video, la asunción principal es que el tiempo de ejecución T(N) sigue una función de potencia. Esta suposición permite realizar el análisis con solo dos puntos de datos. También se asume que uno de los puntos de datos es para el tamaño N y el otro para el tamaño 2N, lo que simplifica el proceso.

💡Polinomio

El video explica cómo, a partir de solo dos puntos de datos, se puede deducir un polinomio que modele el tiempo de ejecución de un programa. Aunque normalmente se necesitan más datos para hacer una regresión precisa, la asunción de que el modelo sigue una función de potencia permite obtener un polinomio con solo dos puntos.

💡Cancelación de términos

La cancelación de términos es un paso en el proceso algebraico que se utiliza para simplificar la ecuación resultante de dividir T(2N) por T(N). Al cancelar términos comunes en ambos lados de la ecuación, se llega a una forma más simple que permite calcular el valor de b.

💡Variación en la tabla

El video menciona que si el modelo asumido (una función de potencia) no es correcto, esto se reflejará en la variación de los valores en la tabla de logaritmos de la razón. Si los valores no son constantes, indica que la función de potencia no es un buen ajuste para el conjunto de datos. Esta observación es crucial para validar la suposición inicial del modelo.

Highlights

Introduction to analyzing power function modeling with very limited data, specifically with only two data points.

Explaining a previous example that involved eight data pairs but introduces the issue of time-consuming program execution.

Goal: Perform regression with the smallest dataset possible and minimize the time spent on data generation.

Key insight: It's possible to perform regression and determine a polynomial function with only two data pairs.

Challenge: With only two points, typically, it leads to a linear function, but using additional assumptions allows more complex models.

Assumption: The program’s runtime (T(N)) follows a power function, enabling the use of algebra to solve for unknowns.

Process: Using two data points (N and 2N), divide the two expressions for runtime, simplifying the algebraic equation.

Result: Simplifying the expression leads to T(2N) / T(N) = 2^b, which helps to extract the value of b.

Taking the logarithm of both sides allows isolating b, which represents the exponent in the power function model.

Important note: The logarithm used here is base 2, as indicated by the symbol 'lg' in the equations.

Key takeaway: By measuring the runtime for inputs of size N and 2N, the power (b) in the function can be recovered with only two data points.

Advantages: This method saves time by avoiding multiple data runs and still provides a valid model for the program’s runtime.

Demonstration: A chart showing how ratios of runtimes (T(2N) / T(N)) are used to calculate the power b using logarithms.

Verification: If the ratio’s logarithms are consistent across different data points, the power function assumption holds true.

Potential issue: If the logarithms vary between runs, the assumption of a power function might be incorrect, signaling a different model is needed.

Transcripts

play00:05

- In this video I want to give

play00:06

a second way to analyze what is the power function modeling

play00:09

and dataset for the special case

play00:11

when you have very, very little data.

play00:13

Specifically, when you have only two pieces of data, right?

play00:17

Or two data points.

play00:18

So in the previous example we talked about for threesome,

play00:21

we had a chart that had like eight different pairs,

play00:24

so that's great.

play00:25

The problem is, one of them has a program

play00:27

that's really slow.

play00:27

Maybe takes me along time to generate

play00:30

those pairs of data, right?

play00:31

The problem size paired with how long it takes.

play00:33

And I want to avoid, you know,

play00:35

basically spending all of that time.

play00:37

I wanna do my regression in as few pieces

play00:39

with a small dataset as I possibly can.

play00:42

Right?

play00:43

So what could I do?

play00:45

So it's actually gonna be possible

play00:47

for us to do this kind of regression process, right,

play00:49

and figure out a polynomial

play00:51

from just two, from just two pairs of data.

play00:54

Which may be, if you think back to,

play00:56

to basic algebra, is a little bit iffy,

play00:58

because if you only have two points,

play00:59

generally what happens is, you have to end up

play01:01

with something that looks like a line, right?

play01:03

Well we can actually do a little bit better

play01:05

than that though.

play01:06

By using an additional assumption

play01:07

by how the dataset size changes.

play01:11

So let's take a look at what that is.

play01:13

So we're going to stick with the assumption

play01:15

that our T(N), right,

play01:16

is basically a power function, right?

play01:18

The function that predicts how much time

play01:19

my program takes to round a given input

play01:21

is a power function.

play01:22

And so the equation for it looks something like this.

play01:28

Okay, so that shouldn't be too surprising there, right?

play01:31

There's an assumption, right, that looks like nested loops,

play01:33

but that's fine.

play01:34

It's very typical.

play01:36

And then we're gonna do some algebra here.

play01:37

And let's work down the slide.

play01:39

So basically you can imagine,

play01:40

we have maybe, our benchmark results

play01:43

on a size N input, and in a size 2N input.

play01:49

And you can imagine we have those two expressions.

play01:51

Well, then given we have those two expressions,

play01:53

we could divide them.

play01:54

That's what this first part here is doing, right?

play01:56

So we have kind of two value expressions,

play01:59

the really, T(N) and one for basically normal size N

play02:02

and one for two times size N.

play02:05

And we just divide them, right? So that's all legit there,

play02:07

and that gives us this expression here.

play02:11

And then we're going to basically carry through the algebra,

play02:13

and we'll talk about the result here at the end.

play02:15

So if we have the algebra right,

play02:16

you can imagine we do some cancellations here, right?

play02:18

Cancel A, cancel A, B, right, gets distributed.

play02:25

So I can basically just cancel that out,

play02:27

on N over here, right?

play02:29

N over here.

play02:30

And now I'm basically just left with that right hand side

play02:32

being 2 to the b.

play02:34

So I jump down to my next step,

play02:36

I have T(2N) over T(N) equal 2 to the b.

play02:41

Okay, so thinks cleaned up a lot.

play02:43

Then I can imagine taking logs of both sides,

play02:45

maybe to rearrange a little bit more.

play02:47

Gets me this over here.

play02:49

Log of T(2N) over T(N) equal b.

play02:53

Little note here, when you have, when I have,

play02:55

whenever I draw this,

play02:57

this lg, what that is meaning is that I am doing

play03:00

a log in base 2

play03:04

right, so this is log base 2 of something.

play03:09

All right, so just a little F.Y.I. foundation.

play03:11

So basically what this is saying is the following,

play03:13

I can recover b, right?

play03:15

That power in my assumed T(N),

play03:18

by taking the log of T(2N) divided by T(N).

play03:21

The key there, I only am touching two pieces of data, right?

play03:24

I need to know the run times for the dataset,

play03:27

for the program on a dataset, of size N,

play03:29

and then the dataset, then the running time

play03:31

on a dataset of size 2N.

play03:33

So I don't need six or seven or eight

play03:35

different pieces of data I can feed the regression program

play03:38

in order to figure out, you know, what is the function,

play03:41

right, linear, quadratic, whatever, that fits this data.

play03:43

Given that I just have two pairs of data, right?

play03:46

And they are appropriately scaled, right?

play03:48

So one is basically a size N, the other one is a size 2N,

play03:50

well extra assumption, right,

play03:52

the assumption that one is double the size of the other,

play03:54

means that I can algebraically basically write

play03:57

an expression for b in terms of those two pieces of data.

play04:01

So this is basically a lot nicer to work with, right?

play04:03

Because we don't need as much information about the program.

play04:06

We don't need to run it as many times.

play04:07

We just need to run it twice,

play04:08

and then we can figure out what that power is.

play04:11

So on the right I have the chart that has our program size,

play04:14

our problem size and the times.

play04:16

And then the, basically, the results of trying

play04:18

to do this sort of analysis on that data.

play04:22

So N and T(N) should be familiar,

play04:25

the first new column here is called ratio.

play04:35

And ratio is being computed as a division

play04:38

of basically the T(N) column.

play04:39

So this eight over here is being computed by this

play04:42

point one and point eight.

play04:43

Right? It's dividing them out, ratio that is eight.

play04:46

That doesn't really mean anything,

play04:48

in the picture over here our ratio

play04:49

is going to be that T(2N) over T(N).

play04:53

Right? So this stuff over here,

play04:57

ties to this column.

play05:00

Then I have there on the right hand side,

play05:01

where my other column there is log(ratio), right,

play05:04

which is just the base 2 log of it,

play05:06

so base 2 log of eight is three.

play05:09

So that is basically my entire function,

play05:13

my entire left hand side of this expression.

play05:15

Right, ends up being this column over here,

play05:18

so really that's gonna be my b value,

play05:20

or the power in that assumed function, right?

play05:23

That models our running time.

play05:25

So gives me the b over here, right,

play05:27

in this thing, right, the b is over here.

play05:29

Gives me that.

play05:31

So there you have it, if you have two pairs of data,

play05:32

you can still manage to recover a polynomial from it.

play05:36

And if you want to, right, you can solve for a as well,

play05:38

although there may be a little bit of an inaccuracy there.

play05:41

As a quick question, if we were wrong about our assumption

play05:44

that our program could modeled by a polynomial,

play05:46

how will that show up in the table?

play05:50

Well, basically that last line there, right,

play05:52

that log(ratio) will very.

play05:54

So here in OS it's always the same,

play05:55

it's always three three three,

play05:57

basically to represent that if I have

play05:58

a larger dataset around checking that ratio a couple times,

play06:01

well, every time I check it, right,

play06:03

it should basically have the same power there, right,

play06:05

the power on the function that models the running time

play06:08

for this program shouldn't change, right,

play06:10

it should stay the same.

play06:11

So if it started to vary there, either a three four five,

play06:14

then we have an issue.

play06:16

Here it's all the same, that means that

play06:18

we are correct in assuming that a power functioning model

play06:20

is this dataset.

Rate This

5.0 / 5 (0 votes)

Related Tags
modelado de datosfunción de potenciaregresiónpequeños datasetsanálisis de datosalgoritmostiempo de ejecuciónciencia de datosoptimizaciónmatemáticas aplicadas
Do you need a summary in English?