Skip to content →

flowingmotion Posts

3 steps of agile sense-making

This is a brief post to remind myself of ideas from “Agile Sense-Making in the Battlespace”.  So what relevance do weary soldiers have for those of us back home?

Getting started: the jargon

Agile

We spot some technical jargon immediately.  Computer people like “agile”.  What they mean is doing just as much as we can to be able to get some feedback.

Imagine it this way, when we begin a journey from London to Edinburgh, we ask the SatNav for a route and then we tend to assume the journey will then be pain free.  Often the journey is not and the real outcome involves looking for another route in a mild panic when the inevitable happens and we are diverted.

The alternative is a SatNav that works like this.

  • It finds the best route and first junction about 15-20 minutes away
  • As we reach that junction, it quietly rechecks the route taking into account any weather and traffic information that has arrived since then

Agile is simple getting on with the first task but allowing that the overall route to the destination may change.

Sense-making

Sense-making is best understood through the SIR COPE acronym of Karl Weick.

Sense is not about truth.  Sense is about piecing together whatever information we have so that there are no discrepancies and so that we are willing to ‘stay in the game’.

Sense-making is an ongoing process; it is a confusing process; and it is ultimately a social process because a key factor in our decision to stay or go is our judgement of the people around us and their loyalty and commitment.  In military terms, it is ‘morale’ – do I even want to belong to ‘this man’s army’?

What can we learn from weary soldiers managing the battlespace?

So jargon aside, what new does William Mitchell add in his description of thinking clearly in the battle space?  I will be using my words now because these are my notes.  I hope you find them useful but if you do, check back to the original article.

#1 Think imaginatively

Technically, we call imagination in “thinking about the systems of systems” or in Mitchell’s words “network philosophy”.

In practice, we think like this:  I want to attract more customers to my business.  They either don’t know I exist, or barely pay me any attention, and when they notice me, don’t trust me.  I want to win their trust.

Of course, I can woo them directly and sometimes I will.  But they already have relations among themselves.  So when I woo the fellows who, say, wear hats, the fellows who don’t wear hats don’t want to take part.  That second level effect is systems thinking.

When we are busy, or in goal mode, our systems thinking tends to get turned off.  Let’s go back to driving from London to Edinburgh.  When I set my SatNav and I head out onto the motorway, I know the trip will be boring, so I don’t want to know about all the wonderful places I could visit just 5 miles off the motorway, or I will not stick to my task.

But I also don’t know about the inter-schools football championship that is about to disgorge a flood of cars into the junction ahead of me.  That’s what management intelligence is for. To make a system that scans for the opportunities or threats that we aren’t scanning for, and should not be scanning for, because we are in executive-mode and concentrating on something else.

But the key takeaway is not that we have lookouts.  The key takeaway is that we have lookouts how understand second order effects what causes what.  And for there to be any point to having intelligent lookouts, we need managers who understand the messages from lookouts.  That’s why managers must be fluent in systems of systems thinking.  They must be able to follow the briefings and ask the right questions.

 #2 Write things down

Technically, we call this state “iterative modelling”. We write down what we think to build a bridge from our brainstorming to our action.

In practice, we log our interactions with potential customers and we see how well we are doing.   We calculate our open rates and click through rates and sales.  We use numbers to focus our attention on what must be done and to learn how to do what we do even better.

Very simply, when we drive from London to Edinburgh, part of the system is written down for us. The SatNav is doing the map calculations for us using a straightforward A* algorithm and some detailed information from maps.  Then it presents it on a map annotated with voice commands.

We do the rest. We look at our clock.  We note the time to destination on the SatNav.   And we note what time we ‘must’ arrive and make our decisions accordingly.  We can see immediately that SatNavs are going to become much, much better at learning.

There are several skills involved in modelling dynamic information.  We have to know what to model. We have to capture data.  We have to write programs of very many sorts.  We have to lay out information.  And we have to learn, a lot, about how to make the whole system better.

And in that morass of work, we might forget what all this is about: to bridge the dynamism of systems about systems thinking with action that has to be taken in some instances, in a split second.   This is what we are doing this for!

#3 Look at alternatives

Technically, the third stage is called “hypothesis generation and testing” or “scenario planning”.  Oh my, how we hate to do this when we are in the thick of action!  To be goal-oriented means to be confident of what we are doing.  And we resist any undermining of our confidence including thinking about what else might be a good idea!

But snap decisions are dangerous and unwise.  A good MI system delivers the correct information to make choice at the right time.  We slow down thinking to speed up work – or avoid false starts and over commitment to unwise courses of action.

Let’s imagine, for example, that we are very attracted to selling big ticket items to wealthy customers.  And that we are reasonably successful.   But that our smaller items fly off the shelves in our ‘outlet’ shop around the corner.   Now imagine we have a choice: spend the next hour serving the high value customer, or spend the next hour helping move the queue around the corner.  It’s helpful to have a display that shows our two choices and their consequences so we can make the choice in terms of what we will achieve and not simply our personal preference.

Equally, when we are driving from London to Edinburgh and we are diverted, in the time we have to reroute, it would be helpful to have a display that shows the best 5 choices rather than requires us to step through them painfully – a task that cannot be done until we find somewhere to pull over.

Every MI system has assumptions built into them. And though we use the systems in a very trusting way on a day-to-day basis, we should know what those assumptions are and what information we are not seeing.  Yes, the data must come packaged ready for action. But we must have people in the background looking at alternatives and produces displays for those too.  Caveat emptor: If we rely on computer systems that we don’t understand and don’t insist on getting better and better, then we only have ourselves to blame.

The three steps of Agile Sense-Making

So this is it agile sense-making –

  • Think imaginatively (imagine the side-effects)
  • Write things down to bridge imagination to action (a computer program counts as writing things down)
  • Have alternative programs that bring together analyses in different ways (our methods must learn)

This is the new world of management consulting folks – data driven.  Now let’s find the clients to match!

CHECK OUT SIMILAR POSTS

One Comment

Rebuild eStore on WordPress in half-an-hour

In my current mood, I do not recommend the eStore plugin but if you must, pay your money and do this. I had to rebuild my store. Now I know how, it should take half-an-hour. It took my over 9 hours with back and forth to the vendors. Here’s some tips to help you understand what is involved.

So calm down, read carefully, and work carefully. 30 minutes should be ample especially with some preparation long before you get into trouble. So I will write as if you are building the eStore from the very beginning.

#1 License and commercial details

• Keep two pieces of paper – the email with the download link and the Paypal transaction.

• Keep the email address you used and the Paypal transaction number – they work as your permanent license. You need them to communicate with eStore.

• I have stored them in various places like my email, on the CD where a backup of the plugin is stored, in my diary in case I am away from my desk when it crashes – which it will it seems.

#2 Help and forum

Now sign up to the forum and change your password. Again you don’t want to do this when your shop is collapsing and you are under pressure.

#3 Supercache – not

Then download the plugin and use it. Don’t use Supercache even if your hosting service says to. And even though eStore says things like “if you are using Supercache”. They mean “please never use Supercache”.

If you are in Europe, don’t use Supercache. It stops people changing their details in your cart and shows the details to other customers. Without stopping to worry too much about it, it seems that this breaches Privacy laws horribly.

And don’t delete Supercache if you find you have it running with eStore because it eStore will break you WordPress dashboard.

You must deactivate, if not delete eStore, take down Supercache, and rebuild eStore. Horrible, huh?

#4 Rebuild eStore

Rebuilding eStore is much easier than eStore makes out. This is what you need to know.

Your WordPress site has two parts: the code is loaded up in one part which you can see using FTP. The content of your posts is loaded into a MySQL database which is accessed through phpmyAdmin.

When you back up your WordPress site, only the MySQL database is getting backed up. If you want to restore your database, you still need a skeleton WordPress site to house it. You can always rebuild a Worpress site from scratch and put back in them, and modications and plugins. So remember to back up any themes that you have bought, any child theme you have written, and to list the plugins you use and any licenses that you have like for your spam catcher. This is not stuff to leave till tomorrow. Always do it immediately.

So let’s assume you do have your MySQL backed up, and you do have the modifications to your WordPress theme backed up and notes of what is where on your website.

To rebuild eStore, you also need a good copy of their code. If you bought it recently, you have one. If it is a few months old, get the commercial details together and to their forum to hunt, and I mean hunt, for a link for automatic updates. Use the commercial details to get updated copies of the plugin.

Save the up-to-date plugins somewhere on your C drive (remembering to backup them up on CD later). Now what you are going to do is wipe out the offending plugins and write back the code for the plugins.

Use FTP or Filezilla to look at the WordPress PHP for your website and track to wp-content/plugins. Delege the wp-cart-for-digital-products and any offending caches. You can do that because only the code hangs in those foldders. The details of your shop have been stored in your MySQL database (which is backed up anyway, right?).

Now you can transfer the new plugin from your hard drive to the folder where the old eStore hung out. And all should be good.

The key is to be clear where everything lives and that the details of your shop are in MySQL and the code for the plugin is in what you see in FTP (your theme is also there). The only shop assets you can see in FTP are under wp-content/uploads. If you are selling digital goods, that’s where they are. All the tetchy little details of the shop and who bought what are in the MySQL database with your posts, comments, users etc.

I hope this helps. Rebuilding eStore should take about half-an-hour. It took me 9 hours. It needn’t.

CHECK OUT SIMILAR POSTS

Leave a Comment

Coding in schools? Take the splinter from our eye perhaps?

As I wait for FTP to download a website from a server onto my laptop, I thought I would write a bit.

I was up late last night, probably unwisely, as I tried to fix odd errors on my online shop. One error led to another.  I left a message for my US suppliers went to bed and got up in the morning to the usual geek-like rude reply – read this link.

Well my response is

a)      Why wasn’t that pointed out to me earlier

b)      When I put that advice in plain words, your product does not work under the conditions you said it would work. You did warn us by saying “if you use  . . .”.  But the truth is that you should have said “We do not recommend using  . . . If you do use our product with this other product, here are the 5 things you must get right.”

Anyway, I deleted the 2nd product and guess what – their product now misses the 2nd product and has frozen my online shop.  Hence downloading a copy of what is left onto another compute for safekeeping before I fiddle any further.

So why is this important?

  1.  Don’t do your computing when you are tired and don’t try to read Geek-English when you are tired and stressed.  They do their computing and writing when they are tired and stressed and it shows.
  2. There is a big debate going on in UK about teaching coding in schools.  I scoff at this debate. It began with Eric Schmidt of Google, teasing the UK government about teaching word processing in schools (i.e., using Microsoft).  The geeks of UK have fallen for this line and now think we should teach the average teenager how to write the next package. Hmm. .  it will be as a bad as the one that I am using and why anyway should we trade in Microsoft for Google.  For all our frustrations with Office, it is much more stable than any Google product.
  3. But yes, we should all use computers a lot more. I bought some software because I thought my predilection for writing code from scratch was ill-served.  Get working ecommerce software and use it! Bad idea. Bad idea to rely on geeks. Much better to know every corner of your code yourself.

But of course we cannot know everything.  But yes.  Using other people’s code is like signing a document without reading it. We do it – often.  We shouldn’t.  We should streamline our lives to have two boxes:

 # Box 1 : Not very important to me

Things in this box are not important to me.  So I can afford to sign bits of paper or use other people’s code or eat food of unknown origin or sleep with someone who seems to sleep elsewhere too – you get my drift.

If it doesn’t matter, put it in this box.

# Box 2: Very important to me

In this box are the things I care about.  So I should tend to them carefully and learn about them deeply.

As I can’t do everything, I should be very selective about what goes in this box.

I have to be careful about leaving things out too which do impinge upon me or would enrich me enormously.  So what is important must go in and what goes in must be looked after.

What kids should learn at school

That’s what kids should learn at school. To do their work well.  Not to spend time on things they don’t care about.  And not to complain if things they ignored turned out to be important.

Of course, when they are small, they can’t understand this completely or understand enough about anything.  So we grow their world for them slowly, helping them to push back their horizons, bit by bit, as they can absorb more and attend to it with the same care as things already in their world.

To live in narrow world is not grown up. We might even argue that it is to be ‘not of sound mind’.  But to suggest we should code at school.  . . that’s as half-baked as the code I stupidly bought.

Teachers know a bit about helping kids to grow

Kids must go to school and expand slowly from the world they are in to a bigger world. Teachers have some idea of the average pace that kids can work at.   And they know quite a bit about managing an environment where kids can grow steadily in a safe environment.

How can we help schools?

If we think there is something in our world that teachers might like to see, then I think we should invite them in.

Hold bar camps for teachers to have a lovely relaxing weekend in their hols with good food and pizza and geeks with blazing eyes excited by their weekend challenge.

We can accept problems teachers identify with software and work on some improvements.

A splinter out of our own eye?

But it is not kids who need fixing. It is not schools who need fixing.

It is the geeky world of very bad software and very rude help desks. N’est-ce pas? And TG for Google Translate so I could check my spelling.

Getting with the program

Oh, btw, did you see National University of Singapore have built an iPhone app that translates Mandarin speech into spoken English.  . . might make me lazy about learning Mandarin.

Anyway, Stanford watch out.  Asia is hot on your vapour trail.

And where is UK . . . making key apps?  . . . making life better? . . . yes Eric Schmidt is right.  We are a nation of chatterers preferring to use a word processor than to build one.

We should build the companies and businesses that take on NUS and IIT – Kids will work that out fast enough and set that as their new horizon.  Something for kids to look forward to  . . . they don’t need to aspire to aping US entrepreneurs for 20 years ago or 40 years ago.

And if you don’t know what NUS or IIT stands for, of course Stanford’s former post-grad students can solve the puzzle for you.

So ends my self-entertainment – but my FTP download is still not done.  Is it stuck in a loop?  Dearie me. Do I have to understand it’s code too?  Well don’t be taken in by geeks.  The first thing I learned as a CS student is that code is arbitrary.  The problem is usually the comma you didn’t know was supposed to be there.  Now to search Google for ‘looping FTP’. Logic will not fix this. Nor common sense. Someone has seen it before – or not.

CHECK OUT SIMILAR POSTS

Leave a Comment

Down-to-earth principal components analysis in 5 steps

This post is a step-by-step, practical, guide to principal components analysis.  It’s very hands-on and “common sensical”.  If any experts out there spot an egregious error that would horribly mislead a beginner, please do let me know.

I’ll simply work through 4 steps and then sum up as 5 steps in a slightly different order.

#1 Data

I always like to start any data problem by thinking about my data rather concretely.

In a PCA problem, imagine a spreadsheet which has hundreds or even thousands of columns – far too many for comfort.

On each row of the spreadsheet is a case, or ‘training example’ in machine learning parlance.

What we want to do is to find the columns that matter.  Alternatively, we ask “which columns could we bundle together into computed columns so that we have a more manageable number?”

In short, this procedure will tell us which columns we can leave out and which one’s we should bundle together.  The bundles will be the principal components.  And the final answer will tell us how much precision we have lost by bundling scores rather than using original raw data.

So, we begin with data which is laid out in matrix X with m rows and n columns (m x n).

#2 Normalize the data

The data comes in all sizes – little numbers and big numbers, very spread out and bunched together.  First we smooth the data in the same way that tests are normed at college.  Simply, we convert each column to a mean of zero and a standard deviation of one.

To be very clear how this works, we take each cell and adjust the number in the cell depending on the other numbers in the column. If we were working with spreadsheets, we would open another spreadsheet of exactly the same number of rows and columns and add this formula to each cell. So for cell A1 we would have:

= (Sheet1!A1 – mean(ColumnA))/StdDev(ColA)

When we calculate the mean and stddev of the columns in the new spreadsheet, they will all be 0 and 1 respectively.

#3 Principal Component Analysis

Now we find the ‘bundles’ of columns.

In my old days of statistics packages, the program would return a table which listed all the columns down the page and then produced factor loadings or weights for a whole heap of factors (or bundles) in more columns.  The number and the sign would tell you the weight of the original data column in the new ‘bundle’.  The weights varied from -1 through 0 to +1.

In Octave, the free version of Matlab, there is a facility to do PCA in two steps:

Step #3 Part One

  • Compute what is called the covariance matrix.  Simple imagine taking  a copy of the spreadsheet (the second one), multiplying it cell to cell (A1 to A1) and taking the sum of those squares in the new column A, then A1 to B1 and taking the sum of the product in column B, then A1 to C1.. etc until we have new row with N columns each got by multiplying two columns and adding up the product. You’ll have to try it yourself.  I’ll have to get out pen and paper when I read this a year from now.
  • Then we do the same starting with Col B and Col A (that’s a repeat, I know.. stick it in), B to B, B to C  etc.
  • Until we have a new matrix with N columns and N rows.  (Yes – this is what computers are for).
  • And one more sub- step – divide every cell by the original number of cases or training examples (i.e., rows in the very first spreadsheet).

That’s the covariance matrix.  In Octave, which uses linear algebra, it is much easier.  You just tell the machine to multiply the transpose of the normalized data by the normalized data and divide by m – one line of code.

CovarianceMatrix = (X’ * X )/m

(That’s what computers are for!.. the explanation was just so you have a concrete idea of where the data came from and what happened to it).

Step #3 Part One

The second step in PCA is to find the bundles using a function that is built into Octave called the ‘singular value decomposition’ or SVD.

All you do is ask for it and it ‘returns’ three matrices, U, S and V and we are going to use U and S.

U gives us a matrix exactly the same size as the covariance matrix.  Each column now refers to a ‘bundle’. The rows still refer as before to the features (that is the original columns in the data matrix and the normalized data matrix. Have a quick check.  I’ll wait!).

Note we have as many bundles as we had columns right at the start but we don’t want to use all the unbundles (columns in the U matrix) otherwise we will have exactly the same number of columns as when we started – no point, hey?

So we will only use as many, starting from the left, as we need.  We will decide how many to use on the basis of the S matrix.

Let’s do that later and  consider further what U actually tells us.  As we read down column one, cell A1 tells us the loading of original column A, or the 1st feature, on the new bundle 1.  Cell A2 tells us the loading of original column B or the 2nd feature, on new bundle 1. And so on.  Got it?  Try it out.

So what can we do with this?  Two things –

  • We can see which of our original columns were the most important.  They are the ones with the biggest numbers in column on the left and subsequent columns as you move right.   A positive number means the higher the original number the higher would be the bundle score. A negative number in this new table means the higher the number in the original table, the lower would be the bundle score.  Good to know if two of our original columns pull in  the opposite directions. So that is the first use – to understand the original columns and how they hang together.
  • The second use is to create a simplified data set.  Ok, we hate it when bureaucrats create scores for us – like a credit rating. But imagine the rows are just pictures and the columns were the pixels or colors at 10 000 points on page – collapsing 10 000 columns into 1000 columns or 100 columns could be handy for data compression.  (We’ll work out later how much data is lost – or how much blur is added!)  So how do we recreate the scores?  We will come back to this – lets stick with understanding what those numbers in the U matrix mean. All we have to do to get a score for the bundle  is take the number in the U matrix for original column A (now in row 1) and multiple it by the score for the first case in column A  (do it on a bit of paper).  Do that for the whole row for the case times the whole column in U (row of original data times column in the U matrix), add it up, and we get a ‘bundle’ score for the first case.  That will go in cell A1 in a new table. The cell is the score for case 1 on bundle 1.
  • Then we can do the same for the second case, then the third.  And we will make a new column of bundled scores for the whole data set.
  • Then we do the same for the second bundle (it’s OK – that’s what computers are for).
  • Finally we have a matrix with as many rows as we have cases or training examples and as many columns as we have new bundles.  This can be useful when we need compressed data and we don’t mind a bit of blur in the data.

#4 How many bundles do we need?

So now we come back to how many bundles do we need?  Well firstly, a lot fewer than the number of columns that we started with. That’s the whole idea of this exercise – to get that original spreadsheet a lot, lot smaller.

I mentioned before that we use the data for the second matrix, S, that is churned out by the SVD function in Octave, to work out how many bundles to keep.

This S matrix is also exactly the same size as the covariance matrix which was square with the same number of rows and columns as we had columns in the first, first, first data table.

This time, though, we only have data in the diagonal from top left to bottom right.  Every other cell is zero.  So that means there is a number for original row 1 and column A; row 2 and column B; etc.  Gee, couldn’t we have a column?  Yes we could. It’s laid out this way to do with the way machines do arithmetic. It is easier for the machine to pull out the matching diagonal from the U matrix for example.  But that’s not our problem right now.  We just want to know how to use these numbers to work out how many bundles to keep.

Well, these numbers represent how much variance is explained by the bundle.  The very first number (top left) tells us how much variance in the whole original data set is explained by the new bundle.  To work out what % of variance is accounted for by this bundle, we take all the numbers on the diagonal and add them up to give us a number representing all the variance in the whole data set.  Then we take the number for the first bundle (top left) and work it out as a percentage of the whole lot. If the percentage is less than 99% (.99), then we add another bundle (well we add the percentage of another bundle or we add the numbers of the two bundles and divide by sum for all the numbers).  We just keep going until we have enough bundles to account for 99% of the original variance.  (So in plain terms, we have allowed for 1% of blurring).

Oddly, only 1% of blurring might allow us to lose a lot of columns.  Or more precisely, when we compute new scores, one for each bundle in the final solution, we might have far fewer bundles than original number of columns, but still account for 99% of the original amount of detail.

 That’s it…that’s PCA.

#1 Get your data in a spread sheet (cases on rows, features in columns)

#2 Normalize the data so each column has a mean of 0 and an SD of 1

#3 Use a built-in function to return a matrix of eigenvectors (U) and variance (S)

#4 Decide how many ‘bundles’ of features to keep in (account for 99% of variance)

#5 Compute new scores – one score for each case for each bundle (now the columns)

And what do we do with this?

#1 We understand how columns hang together and what we can drop and only lose 1% of detail (or add 1% of blur)

#2 We can use the new scores to do other things like feed them into a prediction program or supervised learning program. The advantage is not to improve on prediction, btw,  but to cut down on computing costs.

That’s all!

CHECK OUT SIMILAR POSTS

3 Comments

10 questions to get ready for moving past the financial crisis

In my rough-and-ready barometer of where we are in dealing with the financial crisis, I note that #occupylsx has got people talking.  That’s great. Instead of mumbling into our beer, we are talking.  That’s a far cry from doing, of course.

Using the denial, anger, bargaining, depression, adjustment cycle, I reckon we are up to bargaining. We still believe we are going to make this go away.

When we do get around to adjusting and getting on with life, we are going to need to be well informed about what we can do and whom we can do it with.  If you intend to be around when we get round to sorting things out, these questions might help disentangle the issues.

What do you feel, and what do others feel about these issues?

#1 Are people in the UK angry?

#2 Are all people in the UK angry to the same degree?  And if not, who is more or less angry and what has led us to that opinion that our levels of anger differ?

#3 Is everyone who is angry, angry about the same things?  And with the same people?

#4 Who is angry with you and how do you feel that some people are angry with you?

#5 Who many people in the UK are of working age? How many people in the UK work in banks and the financial services?  How many people do you know who work in these industries?

#6 How much money does our government need each year to run the schools, the hospitals, the roads, the police, the fire service, the army, the navy, the airforce?

#7 How much money do the banks and financial services kick-in to the cost of running our government?

#8 What are the various things we could “do” to the banks?  Which three seem to be the most popular?

#9  When we “do” these things to the banks, what jobs will be created and which will be lost?  Who will be the winners and losers?

#10 When we “do” these things to the banks, what will be the amount they kick-in to the cost of running the government?  Will that be more or less and if it is less, how can we make up the shortfall?

CHECK OUT SIMILAR POSTS

Leave a Comment

10 steps to build a spam catcher

Here are the ten broad steps to build a spam catcher

  1. Get a sample of emails that are known to be spam or not spam. Split the sample 60:20:20 to provide a “training” set, a “cross-validation” set and a “test” set.
  2. Turn each email into a list of words by
    • Stripping out headers (if not part of the spam test) and other redundancies
    • Running NLP software to record the stem of a word only (for example, record city and cities as cit)
  3. Count the number of times each unique word appears in the sample and order the list so that we can use the top 100 or 10 000 or 50 000 (whatever) to check for spam.  Remember to use stemmed words!
  4. Convert the list of words in each email into a list of look-up numbers by substituting the row number of the word from the dictionary we made in Step 3.
  5. For each email, make another list where row 1 is 1 if the first word in the dictionary is present in the email, where row 2 is the 1 if the second word in the dictionary is present in the email. If the word is not present, leave the value for that row as zero. You should now have as many lists are you have emails each with as many rows as you have words in your spam dictionary.
  6. Run a SVM algorithm to predict whether each email is spam (1) or not spam (0).  The input is the list of 1s and 0s indicating which words are present in the email.
  7. Compare the predictions with the know values and compute the percentage correct.
  8. Compute the predictions on the cross-validation set and tweak the algorithm depending on whether the cross-validation accuracy is too similar to the training accuracy (suggesting the model could be stronger) or too dissimilar (suggesting the model is too strong).
  9. Find the words most associated with spam.
  10. Repeat as required.

CHECK OUT SIMILAR POSTS

Leave a Comment

See the financial crisis as a chess game with 4 pieces

Since the Northern Rock crash, when was it, 2007? I’ve been using the Kubler Ross Grief Cycle to track where we are in dealing with the financial crisis.

Kubler Ross Grief Cycle and the Financial Crisis

  • Denial took a looooong time. We got Lehman’s  in 2008.  I think people have got it now.  We know we are trouble.
  • Anger started kicking in when? At first we were vaguely angry with Lehmans. Then we muttered when our own incomes were affected.  And possibly we took our anger on targets as various as local corner shop and politicians.
  • Bargaining is next . . . if I do this, then . . . then the problem is going to go away.  A well-educated experienced American knowledge entrepreneur over here in UK looking for backing put the mind-set well.  “Promises were made”.  “The middle-class were promised . . .”  That is what bargaining means. We think we can still make the problem go away and with very little effort at that.
  • Depression should follow in this rough order of psychological states.  We might have thought that Western countries have been depressed for a long time with most people “sleep walking” through life, nursing a hangover and waiting for early retirement.   So I am not looking forward to seeing what that looks like in a more severe form.  At the rate we are going, next year maybe?
  • Adjustment  . .  and eventually we get sick of being depressed so we get out of bed one morning and decide to get on with it.

Being positive in the face of the worst financial crisis

Being an impatient soul, I’ve kept an eye out for simple models that can help people Act, Do, & Get On With It.

On Al Jazeera today, there is a blog by Mohamed A. El-Erian is CEO and co-CIO of PIMCO, and author of When Markets Collide.

El-Erian finishes his article reassuring us that we

need not be paralysed by uncertainty and anxiety. Instead, we can use this simple framework to monitor developments, learn from them, and adapt. Yes, there will still be volatility, unusual strains, and historically odd outcomes. But, remember, a global paradigm shift implies a significant change in opportunities, and not just risks.

A framework for understanding how the financial crisis will unfold

So what is the framework?  El-Erian suggests that each country, or large community, will decide for itself what it will do about four things.  Each community will make a move. Then we will watch  how it goes (and what everyone else does).  And then we will make another move.

We don’t know the outcome of our collective actions in advance but we can think of this as a game of chess with four pieces each (instead of 6) and many many players (not just 2).

The four pieces at each community’s disposal

Deleveraging

We have overspent and “borrowed from the future”.  Whatever we cannot pay to the future, the future must write-off as a bad debt.  That’s the stark situation that we are in.

In a large community, we are going to divide up the bad debt between us.  The question is who should pay more and who should pay less.

Countries squabble at home about the formula for dividing up the debt, and the formula is important, but this squabble goes under a separate heading below.

First, the country as a whole must deleverage.  If we don’t take responsibility for our overspending (sins of the fathers visited on the sons etc), then our creditors will take charge of our assets.  This is called getting a bailout from the IMF.  If you have ever seen this in play, you don’t want to go there. Believe me.

Economic growth

OK, we got into debt because we were partying and spending more than we earn.  How are we going to earn more?

Sometimes the problem is structural. It is hard for me to get off my proverbial backside because I am locked into a system.  So what is locking down the energy in a country?  That is the question we ask.

Sadly sometimes, lack of growth is not economic. It is psychological. A tweet went the rounds this morning:  nothing will happen while we hope to become members of the billionaire club.  When the easy life is the focus, we ain’t going to be growing.  If our goal is early retirement – enough said?

So let’s hear from the economists. And while they have their arguments, the rest of us can focus relentlessly on what can be done and work with people who want to work.  And I mean focus relentlessly.  It is so easy to get distracted.

Social justice

Now the biggie.  Social justice has declined in the west. And there we were selling democracy to whoever would buy. So the Occupy movement use as their catch phrase: we are the 99%.

The real issue is still economic.  In my naïve economic take, the issue is how do we accumulate capital and what do we use it for?

When a government makes good free schooling available for a child from year 5 to year 16, we are investing our savings in that child.  And we expect a return. When they are older, not only will they join in sophisticated businesses that already exist, they will invent new businesses and keep the show on the road when we are old and are slowing down.  Education is just capital accumulation one person at a time.

Much of the problem in the west is that money has gone into partying at all levels.   Money accumulates were it isn’t doing the work of capital – by which I mean taking from the present to invest in the future.  We’ve been doing it backwards.  Leaving money doing very little while we borrow from the future to pay for today’s party.

The talk  is presently of who gets what. That is still partying.  We must put our shared capital where it can make a difference.  Education and health are no brainers.  We also have to look at all our assumptions about where we invest and why.  Simply, if you underpay a parent,  you are stripping them of capital. So don’t talk in the next breath talk about investing in early childhood education. You are frankly talking nonsense. Why not create the problem in the first place?  Personally, I’d look at all the laws that help keep workers insufficiently paid.  The simple test is could you run a household on the same income.  Could you?  If not you are running down the capital base of the country.

But the problem seems to be large and the real key seems to be to start to move forward somewhere.  The #occupy movement is people beginning to unravel the mess.  As El-Erain says, watch them. And don’t feel powerless. Make your choices.  Where ever Occupy ends, it is part of this piece on the board: Social Justice.

Leadership

The fourth piece that we have to play with is leadership.  We complain endlessly about our politicians. El-Erain doesn’t say much in his blog. Maybe he talks about them more in his book.

Personally, is suspect that our leaders are not the piece. It is our attitude to leaders that is the piece.  I believe our leaders reflect us. Maybe when people become more accustomed to being politically active, then we will get better leaders.  OK. You tell me.

So if you are impatient waiting for people to move through the grief cycle, try seeing the world as chequer board with 4 pieces and many many players.  Track the apparent confusion and perhaps we can see what is happening, what is going to happen and what we can help make happen.

2 Comments

An organization: a place where we progressively learn to take responsibility for the whole

Not the cry, but the flight of a wild duck, leads the flock to fly and follow.

Chinese Proverb

I don’t know the provenance of this quote. I got it from @mr_gadget on Twitter. But I like it.

We follow when

  • We see someone move in a way that is not easily reversed.
  • When others copy.

Our reasoning, if we could call it that, goes something like this.

  • Whatever they have noticed must be really important – well really dangerous.
  • So I had better run too.

The ‘reasoning’ sucks. This is what is happening.

  • We are startled and our startle response unleashes a wave of adrenalin or noradrenalin and we have an overwhelming impulse to run.
  • And so we run.

When we think about what we have just done, we justify our actions by saying that there might have been danger. Well, we justify our actions by what Daniel Kahneman calls anticipating our future remembering selves. We don’t want to look back and say we didn’t move when we should have done. And of we are wrong, we can easily justify ourselves to ourselves because other people were alarmed too.  So running when other people run checks the boxes for the future remembering self.

Reacting in panic is a bad idea; keeping cover is a good idea

But really, some people are volatile rather than observant. They might react in alarm to just about anything and run straight into the jaws of a lion.

Basic military training is geared-up to teaching us not to start running every time we get a fright. We can learn something from the foot soldier. Our job is not to scamper about wildly in all directions but to remain under cover where we won’t get shot at.

My more exuberant character chaffes as the idea of taking cover. It smacks of fear and deprives me of what I like – wide open spaces with distant horizons. So let me develop that idea.

I am able to walk freely and joyfully in my wide open spaces, not because they are there – though that certainly helps.

I can walk in my fields because at a collective level we have institutions that keep us ‘under cover’. We have gun control (this is the UK not the US). We are relatively prosperous and you don’t get mugged (much) in the countryside. We have time (contrary to all the grumbling).

We have safe spaces and though we take them for granted, we keep them safe through collective action.

But can we be too safe?

Of course, people who have never lived in unsafe conditions might never develop any awareness of danger. They might even become rather silly and use their biological flight response for entertainment.  How can we design spaces so that we each have to do our fair share of being the proverbial sentry?  Can each of us ask “What lions and marauders do we look out for on behalf of the greater community?”

I think that is why children are given responsibilities early, in like: to take out the trash, to feed the dog. Thinking ahead and thinking broadly – well thinking – is what they are practising. When they have to take out the trash because we are too lazy to do it – that is different – we are using them as servants and not developing them at all.

Create environments where people increasingly take responsibility for the group

Yup, I think I got it. We will react like birds given half a chance. Many of us are bored so we are fascinated by the idea of mobilizing people with as little effort as a cry or an irreversible action. This cannot be our goal. This is what relatively mindless birds do.

Our goal, or at least my goal, is to create environments where people share the responsibility for creating a safe space and we start taking on responsibility in an age-related way – taking full responsibility for an important task to that we learn to think and not simply react like an impulsive creature.  So we start to take out the trash and start to think about the business of keep a place hygienic. And we move on and up, learning to weave many responsibilities together.

Good quote but a different conclusion! When the birds take off, I’ll sit tight. Rapid, panicky reactions are not what it is all about.

Leave a Comment

What is it like to study at uni and work with a famous Professor?

There are all sorts of jobs in this world that I call invisible jobs. You can walk along the High Street and not see them.  And indeed, sometimes you can see some a  job but not see what people do in the job.  When I come across good interviews or descriptions of hidden work, I grab them.

A few days ago, I came across this interview of Jennifer Widom, the head of computer science at Stanford  . .  to use British parlance. In American, Professor Widom is chair of the computer science department at  Stanford.

This interview is valuable in many respects.

  • The Professor is candid, without being forthright, about her career and her work-life balance.
  • She speaks with evident respect and affection for everyone around her, including students.
  • She describes the tacit knowledge (the how-to) of being a successful professor.
  • She is clear about the difference between a career in a university and a career in industry.
  • She nonetheless understands the connection between the two and how value moves from universities into industry and the working life of a nation.

I have written recently about the essence of university life. If you are thinking of going to universty, you should read this article.  You will be going to learn from people like this, because they are like this.  Professor Widom’s description will help you understand what studying at a university is like and why you want active researchers as your teacher.

It’s an easy to read interview and valuable for people trying to write up what is a mostly invisible job.  Above all, we read the story of a Professor who is warm, generous and down to earth.

CHECK OUT SIMILAR POSTS

Leave a Comment

Learning curves and modelling in machine learning

In this post, I am going to describe what I have just learned from Andrew Ng at Stanford about “learning curves”.  To computer scientist, a learning curve is what you might expect but describes how well data has been modeled.

I write this as a classically trained psychologist and it is clear that if we are to understand machine learning, we have to watch out for where the thinking of computer scientists differs radically from our own.  This is my commonsensical comparison of the two approaches.  I am writing it down to make sure I have followed what I heard.  It is rough and ready but may help you understand the differences between the two disciplines.

A learning curve in CS

Simply, the CStists take random samples of data where the first sample is very small, let’s say 1 because that is helpful to understanding the logic, and the last sample will be large, let’s say a few thousand.  This is random samples from the same large data set.

Generally, with a sample of 1 up to 3, we can model perfectly.  However, when we try the same model with another sample of the same size, the model will not predict well at all. The amounts of error for the experimental sample and the comparison sample will be hugely different.  So far so good. That’s what we all learned at uni.  Modelling on a small sample is the equivalent of an ‘anecodote’.  Whatever we observed may or may not transfer to other situations.

As we increase our sample size, paradoxically the amount of error in our model increases but the amount of error in our comparison situation decreases.  And ultimately, the error we are making in the two situations converges.  We also know this from uni.

Much of our training goes into getting us to do this and to increasing the sample size so that the error in the hypothetical model goes up, and the error in the comparison model goes down.  Plot this on a piece of paper with error on the y axis and sample size on the x axis.

When the two error rates converge, that is we can explain the future as well as we can explain the present, then we stop and say, “Hey, I have found a scientific law!”

I would say that our willingness to tolerate a more general description of a particular situation so that we can generalize at the same level of accuracy (and inaccuracy) to another situation is one of the hallmarks of uni training. This is so counter-intuitive that many people resist so it takes uni training to get us to do it.

What the computer scientists implicitly point out is that the converse is also true. We are now able to explain the future as badly as we explain the present!  They call this underfitting and suggest that we try another model to see if we can do a better job of explaining the present.  So we will stop increasing the sample size and start playing with the model. We can vary the form of the model, typically moving from a linear to a non-linear model (that is adding more features) and increasing the weights of the parameters (go from a loose floppy kind of model to a stiffer model, if you like).

They do this until the model overfits. That is, until our explanation of the present is very good but the same explanation produces errors in comparison situations.  When they reach this point, they backtrack to a less complicated model (fewer non-linear terms) and decrease the weights of the parameters (take note of a feature but not put too much emphasis on it.)

Once they have found this happy middle ground with a more complicated model, but without the expense of collecting more data, they will try it out on a completely new set of data.

Break with common practice in psychology

For any psychologists reading this

  • This kind of thinking provides us with a possibility of getting away from models that have been stagnant for decades.  Many of these models predict the present so-so and the future so-so.  Here is the opportunity to break away.
  • Note that machine learning specialists use procedures that look like statistics but abandon the central idea of statistics.  They aren’t promising that their original sample was randomly chosen and they aren’t directly interested in the assertion that “if and only if our original sample was random, then what we found in the sample generalizes to other samples that have also been chosen randomly”.  Though they do something similar (taking lots of randomly chosen slices of data from the data they have), they aren’t in the business of asserting the world will never change again.  They have high speed computers to crunch more data when it becomes clear that the world has changed (or that our model of the world is slightly off).
  • Many of the rules-of-thumb that we were once taught fall away. Specifically, get a large sample, keep the number of features below the size of the sample, keep the model simple – these prescriptions are not relevant once we change our starting point.  All we want to find is the model that can generalize from one situation to another with the least error and high speed computers allow us both to use more complicated models and recomputed them when the world they described changes.

I am still to see good working examples outside marketing on the one hand and robotics on the other, but it seemed worth while trying to describe the mental shift that a classically trained psychologist will go through.  Hope this helps

CHECK OUT SIMILAR POSTS

Leave a Comment