Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  
Pages: 1 ... 108 109 [110] 111 112 ... 192

Author Topic: Dwarf Therapist (LATEST 0.6.12 5/23/12 see first post)  (Read 864351 times)

i2amroy

  • Bay Watcher
  • Cats, ruling the world one dwarf at a time
    • View Profile
Re: Dwarf Therapist (LATEST 0.6.12 3/23/12 see first post)
« Reply #1635 on: March 28, 2012, 03:22:56 pm »

Do we know how traits and attributes affect skilled labor? If a dwarf is matched to a role based on attributes, how does he differ from an opposite dwarf, unfit for the role, at the same task assuming equal skill levels. Does the one fit for the role work faster? produce higher quality items? skill up faster? none of the above?
Attribute data on the wiki
Agility makes everything better.
Logged
Quote from: PTTG
It would be brutally difficult and probably won't work. In other words, it's absolutely dwarven!
Cataclysm: Dark Days Ahead - A fun zombie survival rougelike that I'm dev-ing for.

thistleknot

  • Bay Watcher
  • Escaped Normalized Spreadsheet Berserker
    • View Profile
Re: Dwarf Therapist (LATEST 0.6.12 3/23/12 see first post)
« Reply #1636 on: March 28, 2012, 04:12:52 pm »

Do we know how traits and attributes affect skilled labor? If a dwarf is matched to a role based on attributes, how does he differ from an opposite dwarf, unfit for the role, at the same task assuming equal skill levels. Does the one fit for the role work faster? produce higher quality items? skill up faster? none of the above?

I don't know if this answers your question, but there is a skill wiki as well\
http://dwarffortresswiki.org/index.php/v0.31:Skill

I'm still uncertain as to what skills actually are, as in how they are trained up, but apparently they are based on attributes.

splinterz

  • Bay Watcher
    • View Profile
    • Dwarf Therapist Branch
Re: Dwarf Therapist (LATEST 0.6.12 3/23/12 see first post)
« Reply #1637 on: March 28, 2012, 04:24:02 pm »

Bugzors: changing the skill weighting down to 0.00 in the options, and then changing it back to 1.00(or any number actually) has zero effect. DT requires a restart for it to start working again. You can set it down to 0.01 and changing it still works.

And something must be wrong with how DT values a skill, 2 examples:
dorf1 with just 500xp in gem setting is listed as being 97.79% fit for the job, without any skill weighting he is 45.23% fit.

dorf2 with just 1500xp in gem setting is listed as being 100% fit for the job, without any skill weighting he is 43.89% fit.

I wouldn't be surprised to see that having just set 1 gem(from 0xp) would change dorf3's fitness for the role a fair amount, i'll try and test that today or tomorrow.

I would hope to expect a skill level of 7-10 to start to out weight attributes in the calculations.

Edit: Quick test i did with dorf3, odd results.

At 0.01 skill weight 1 gem set took him from 49.36% to 49.71%
At 1.00 skill weight 1 gem set took him from 43.80% to 43.84% O.o

This makes zero sense, a far far far lower skill weight = a far higher fitness% increase? O.o

what version are you using? are these tests with a role with only a skill, or are there traits and attributes as well? normally the farther from the mean an aspect gets, the more value it's considered to have. why would you only want to consider skills over 7?

i'll look into the zero issue with the global weights.

Spotty

  • Escaped Lunatic
    • View Profile
Re: Dwarf Therapist (LATEST 0.6.12 3/23/12 see first post)
« Reply #1638 on: March 28, 2012, 04:32:53 pm »

Regarding nicknames, I noticed something last night after my fortress died and I was having a look at in in LegendsViewer.  None of the nicknames I set in Therapist (I'm using splinterz version currently) show up in LegendsViewer, only the ones I set in-game.  I assume this has something to do with the workaround to the whole reveal-vampires-via-nicknaming thing?

Sorry if this has already been discussed, I know the vampire thing comes up pretty often but I haven't seen anyone mention Legends.
Logged

thistleknot

  • Bay Watcher
  • Escaped Normalized Spreadsheet Berserker
    • View Profile
Re: Dwarf Therapist (LATEST 0.6.12 3/23/12 see first post)
« Reply #1639 on: March 28, 2012, 04:58:32 pm »

Bugzors: changing the skill weighting down to 0.00 in the options, and then changing it back to 1.00(or any number actually) has zero effect. DT requires a restart for it to start working again. You can set it down to 0.01 and changing it still works.

And something must be wrong with how DT values a skill, 2 examples:
dorf1 with just 500xp in gem setting is listed as being 97.79% fit for the job, without any skill weighting he is 45.23% fit.

dorf2 with just 1500xp in gem setting is listed as being 100% fit for the job, without any skill weighting he is 43.89% fit.

If you took out skill weights, then it wouldn't matter who had higher lower skills, it would then base the role on attributes/traits.

Quote
I wouldn't be surprised to see that having just set 1 gem(from 0xp) would change dorf3's fitness for the role a fair amount, i'll try and test that today or tomorrow.

I would hope to expect a skill level of 7-10 to start to out weight attributes in the calculations.

you can't use these assumptions.  As it's based on what the average xp value is for all dwarf's (i.e. the mean), depending on what your min value is (most likely 0), and your max (whatever your max dwarf is at, say 1500), then deviations from the mean would start to throw %'s off, say your mean was 750.

Quote
Edit: Quick test i did with dorf3, odd results.

At 0.01 skill weight 1 gem set took him from 49.36% to 49.71%
At 1.00 skill weight 1 gem set took him from 43.80% to 43.84% O.o

This makes zero sense, a far far far lower skill weight = a far higher fitness% increase? O.o

I don't get this last part.  I get the weights, but what do you mean by 1 gem?  1 gem experience?  If it's 1 gem experience, then your deviation from mean barely changed, (ex, mean is 750, 1 exp vs 0 exp to 750 is nothing).  These numbers themselves would produce z-scores, and then these z-scores would be multiplied by either .01 or 1.

Example: A 1 gem (i.e. a 1 exp?... vs a mean somewhere around 750), would yield a deviation from mean of -749, converted to some negative z-score.  Which would be multiplied by the weight.  The .01 weight would minimize the z-score to .01 it's value, it also means the stdev of that dataset would also be reduced to .01 before being combined with the other standard deviations.  In the end, the .01 weight would mean that the deviation from mean would contribute very little to the overall %, meaning attributes and skills would have a higher weight.  The 1 weight would retain the same zscore, and standard deviation, contributing more to the overall %.  Which means skills would contribute more to the overall %.

It's hard to see without using a spreadsheet using the formula vs your results, and known mean's, sdev's (which could be done as v9 output's means and sdev's I believe when you hover the mouse over specific instances of attributes, skills, traits).

What I can do is use pastebin to paste the formula that Splinterz used as his basis if you want to follow along the calculations, but I'll have to do that later tonight...

Here you guys go!

http://pastebin.com/v71VrBfM

Update:
I am not able to spot check against a spreadsheet as the stdev' and mean's are no longer listed in (v9), they were in v8... oh well.  I was hoping to post a link to a mediafire spreadsheet showing the calculations...
« Last Edit: March 28, 2012, 09:26:23 pm by thistleknot »
Logged

Kaos

  • Bay Watcher
    • View Profile
Re: Dwarf Therapist (LATEST 0.6.12 3/23/12 see first post)
« Reply #1640 on: March 28, 2012, 10:31:45 pm »

ok I didn't know htere were multiple versions... I just have the one that's under the first page here. what's the link to the other one>?
this, I didn't know either until I saw some random posts in this thread, some of there have very interesting features.

I know these versions are like little tests for proof of concept of new features and will eventually get integrated into the main release, but meanwhile could we have all the links to these other versions on the first page along with what they do? Just so that people that want to try them at their own risk can get them easily without hunting posts through all the thread.
« Last Edit: March 28, 2012, 10:34:34 pm by Kaos »
Logged

thistleknot

  • Bay Watcher
  • Escaped Normalized Spreadsheet Berserker
    • View Profile
Re: Dwarf Therapist (LATEST 0.6.12 3/23/12 see first post)
« Reply #1641 on: March 28, 2012, 11:25:44 pm »

ok I didn't know htere were multiple versions... I just have the one that's under the first page here. what's the link to the other one>?
this, I didn't know either until I saw some random posts in this thread, some of there have very interesting features.

I know these versions are like little tests for proof of concept of new features and will eventually get integrated into the main release, but meanwhile could we have all the links to these other versions on the first page along with what they do? Just so that people that want to try them at their own risk can get them easily without hunting posts through all the thread.

That's a good point, maybe we should have a front page posts to the diff versions.  Would help a lot.  I know that depends on the original author of the post.

Intrinsic

  • Bay Watcher
    • View Profile
Re: Dwarf Therapist (LATEST 0.6.12 3/23/12 see first post)
« Reply #1642 on: March 29, 2012, 12:50:25 am »

Bugzors: changing the skill weighting down to 0.00 in the options, and then changing it back to 1.00(or any number actually) has zero effect. DT requires a restart for it to start working again. You can set it down to 0.01 and changing it still works.

And something must be wrong with how DT values a skill, 2 examples:
dorf1 with just 500xp in gem setting is listed as being 97.79% fit for the job, without any skill weighting he is 45.23% fit.

dorf2 with just 1500xp in gem setting is listed as being 100% fit for the job, without any skill weighting he is 43.89% fit.

I wouldn't be surprised to see that having just set 1 gem(from 0xp) would change dorf3's fitness for the role a fair amount, i'll try and test that today or tomorrow.

I would hope to expect a skill level of 7-10 to start to out weight attributes in the calculations.

Edit: Quick test i did with dorf3, odd results.

At 0.01 skill weight 1 gem set took him from 49.36% to 49.71%
At 1.00 skill weight 1 gem set took him from 43.80% to 43.84% O.o

This makes zero sense, a far far far lower skill weight = a far higher fitness% increase? O.o

what version are you using? are these tests with a role with only a skill, or are there traits and attributes as well? normally the farther from the mean an aspect gets, the more value it's considered to have. why would you only want to consider skills over 7?

i'll look into the zero issue with the global weights.

The very latest version you posted.

Attributes and traits left as 1.00. Only 1 skill...gem setting. The 2 dorfs had near identicle attribs(ie only a few points out in each attrib)
Code: [Select]
Creativity Kinesthetic Spatial
dorf1: 1250 1001 1498
dorf2: 1250 1004 1503

No traits listed as associated with this skill.

Not only counting a skill if it's over 7, but at skill over 7-10 it starts to balance out vs attribs, ie they become equally important, not that a skill level of 6 suddenly has zero value, i never said that. As it stands dorf1 with 0.017% total skill xp is being shown as being over 50% better than if DT doesn't take skill into account. Can you see how that sounds completely insane?

And i guess you missed the number after the decimal point above, but with a skill weighting of just 0.01 it sees a 30xp(ie 1 gem set) as being worth 0.35%. But on that same gem set if i set the skill weight to 1.00 then it sees it as being only worth 0.04%...again, i shouldn't need to explain how this is wrong ;p

It's almost like 1xp is equal to 1 in an attribute(or combo of all attribs associated with the skill) instead of it taking into account the range for a skill's exp level goes upto 29k.

Edit: i just wanted to add: with all weights being at 1.00, each should have equal importance, but currently that is not the case, it's not even slightly out of balance, it's lighyears off. When a dorf is rated at ~45% on his attributes alone, a measly 500xp(~0.017% of the maximum xp he can get in a skill) should not equate to him suddenly being ~97% fit for the job. And now i'm off fishing :)
« Last Edit: March 29, 2012, 01:19:02 am by Intrinsic »
Logged
Start Duelyst with a bonus 100gold, use referral code: Buttfungus
Enter during signup or ingame under Settings.

-A_Dwarven_Bard-

  • Bay Watcher
  • *plays a tune on Melbul Ottenshikes, a pine lute*
    • View Profile
Re: Dwarf Therapist (LATEST 0.6.12 3/23/12 see first post)
« Reply #1643 on: March 29, 2012, 12:52:27 am »

You're my HERO for including a mac option be default now. I do not miss the first time I tried to get it running using wine and realizing that I've overhauled my mac too far! :P
Logged
*-A_Dwarven_Bard-* has organized a party at your house!
Dwarf Fortress: Our evil things are f*@$ing adorable.
Adorable F@#$ing evil things: Target Practice

Intrinsic

  • Bay Watcher
    • View Profile
Re: Dwarf Therapist (LATEST 0.6.12 3/23/12 see first post)
« Reply #1644 on: March 29, 2012, 12:56:03 am »

Quote
Edit: Quick test i did with dorf3, odd results.

At 0.01 skill weight 1 gem set took him from 49.36% to 49.71%
At 1.00 skill weight 1 gem set took him from 43.80% to 43.84% O.o

This makes zero sense, a far far far lower skill weight = a far higher fitness% increase? O.o

I don't get this last part.  I get the weights, but what do you mean by 1 gem?  1 gem experience?  If it's 1 gem experience, then your deviation from mean barely changed, (ex, mean is 750, 1 exp vs 0 exp to 750 is nothing).  These numbers themselves would produce z-scores, and then these z-scores would be multiplied by either .01 or 1.

Example: A 1 gem (i.e. a 1 exp?... vs a mean somewhere around 750), would yield a deviation from mean of -749, converted to some negative z-score.  Which would be multiplied by the weight.  The .01 weight would minimize the z-score to .01 it's value, it also means the stdev of that dataset would also be reduced to .01 before being combined with the other standard deviations.  In the end, the .01 weight would mean that the deviation from mean would contribute very little to the overall %, meaning attributes and skills would have a higher weight.  The 1 weight would retain the same zscore, and standard deviation, contributing more to the overall %.  Which means skills would contribute more to the overall %.

"1 gem set" = Got the dorf to set 1 gem at the jewel shop, ie 30xp per set.
Logged
Start Duelyst with a bonus 100gold, use referral code: Buttfungus
Enter during signup or ingame under Settings.

i2amroy

  • Bay Watcher
  • Cats, ruling the world one dwarf at a time
    • View Profile
Re: Dwarf Therapist (LATEST 0.6.12 3/23/12 see first post)
« Reply #1645 on: March 29, 2012, 01:56:51 am »

You're my HERO for including a mac option be default now. I do not miss the first time I tried to get it running using wine and realizing that I've overhauled my mac too far! :P
Agreed. It would still be nice to get custom profession names to be able to be assigned through therapist though (right now it says it assigns them but doesn't change them in-game).
Logged
Quote from: PTTG
It would be brutally difficult and probably won't work. In other words, it's absolutely dwarven!
Cataclysm: Dark Days Ahead - A fun zombie survival rougelike that I'm dev-ing for.

splinterz

  • Bay Watcher
    • View Profile
    • Dwarf Therapist Branch
Re: Dwarf Therapist (LATEST 0.6.12 3/23/12 see first post)
« Reply #1646 on: March 29, 2012, 04:55:49 am »

Spoiler: previous messages (click to show/hide)

The very latest version you posted.

Attributes and traits left as 1.00. Only 1 skill...gem setting. The 2 dorfs had near identicle attribs(ie only a few points out in each attrib)
Code: [Select]
Creativity Kinesthetic Spatial
dorf1: 1250 1001 1498
dorf2: 1250 1004 1503

No traits listed as associated with this skill.

Not only counting a skill if it's over 7, but at skill over 7-10 it starts to balance out vs attribs, ie they become equally important, not that a skill level of 6 suddenly has zero value, i never said that. As it stands dorf1 with 0.017% total skill xp is being shown as being over 50% better than if DT doesn't take skill into account. Can you see how that sounds completely insane?

And i guess you missed the number after the decimal point above, but with a skill weighting of just 0.01 it sees a 30xp(ie 1 gem set) as being worth 0.35%. But on that same gem set if i set the skill weight to 1.00 then it sees it as being only worth 0.04%...again, i shouldn't need to explain how this is wrong ;p

It's almost like 1xp is equal to 1 in an attribute(or combo of all attribs associated with the skill) instead of it taking into account the range for a skill's exp level goes upto 29k.

Edit: i just wanted to add: with all weights being at 1.00, each should have equal importance, but currently that is not the case, it's not even slightly out of balance, it's lighyears off. When a dorf is rated at ~45% on his attributes alone, a measly 500xp(~0.017% of the maximum xp he can get in a skill) should not equate to him suddenly being ~97% fit for the job. And now i'm off fishing :)

i'll do more testing, but i'm very surprised that dwarf2 with 2/3 attributes lower was actually ranked higher than dwarf1, with the skills at 0 weight. same with 1.0 vs 0.01 for weights, i can't believe that 0.01 gives a higher rating that 1.0  ???

here's the problem with skills that i think you're missing: most dwarves don't have most skills. this drops the mean/stdev very low. 0.000x kind of low. so yes, 0.017% in a skill is actually lightyears ahead of most of the other dwarves. if you only have one dwarf with 500xp in a skill, and the rest have 0xp, and there is any weight at all on the skill, he's going to get a huge bonus because relative to the other dwarves, he's much, much better for the job having even a tiny bit of xp. to summarize, relative to other dwarves (ie plotted on a normal distribution) it's doing exactly what it should.

that said, perhaps this isn't the best method to apply to skills since the normal distribution is obviously skewed for those skills which only a few dwarves possess. ideally a model which could accommodate both a skewed distribution and those distributions where skills are spread more evenly (ie. all dwarves with some military training) would be best. if you've got an idea on how to accomplish that, i'm all ears.

dreiche2

  • Bay Watcher
    • View Profile
Re: Dwarf Therapist (LATEST 0.6.12 3/23/12 see first post)
« Reply #1647 on: March 29, 2012, 06:49:22 am »

Okay so I haven't followed the roles issue in detail so I might be misunderstanding things, but I think I know where the problem is.

If I understand correctly, then ultimately/intuitively you're doing something like this: say you have two skills/attributes/whatever A and B. Then for each skill you determine how good the dwarf is relative to the other dwarves (say, better than 99% of the rest in skill A, better than 60% in skill B). Then to get a final fitness value, call it F, you effectively combine those scores (z-scores, to be precise) in a non-linear fashion that will give the 99% a much higher impact than the 60% (I think).

The problem is as Intrinsic's example shows that this is not necessarily a sensible thing to do, because you can be in the top 1% for skill A while still only being marginally better than everyone else in absolute terms. If that's the only skill that matters than yes, you're in the top 1% in terms of final fitness. But if there's another relevant skill B where the absolute differences are much higher, then that's what should be important, whereas the tiny absolute differences in skill A should be irrelevant really. But because you rescale each skill with the population's standard deviation, you effectively give skill A a high importance.

I think what it boils down to is that you should compute a combined fitness score in absolute terms, and only compute a relative measure in the final step. E.g., compute the fitness score F as a linear combination of all skill/etc. values that matter, weighting individual values according to their importance... and rescaling them according to their units/range, however, that rescaling should be in fixed, absolute terms, not relative to the population. Only once you have the final F score should you look at things in relative terms.

Intuitively, how well a dwarf fits a role is an absolute measure, depending on a combination of their skills etc. They might be very well suited to be cheesemaker or completely incompetent. Only once you have that measure should you look at how it compares to the rest of the population.

Does that make sense or am I completely off?

As a final note, I guess there are two different quantities of interest: how well a dwarf fits a role, and how well he or she compares. Thus you could report both the absolute fitness measure and a relative quantity...
« Last Edit: March 29, 2012, 06:51:23 am by dreiche2 »
Logged

splinterz

  • Bay Watcher
    • View Profile
    • Dwarf Therapist Branch
Re: Dwarf Therapist (LATEST 0.6.12 3/23/12 see first post)
« Reply #1648 on: March 29, 2012, 08:03:51 am »

that's exactly the problem dreiche2, and after more testing today i came to a similar conclusion that we need to basically invert how we're calculating the ratings. now it's a matter of how to measure the absolute part of the calculation. using normal distribution was nice because we were able to give more value the farther from the mean an aspect was. if we use a static mean and static standard deviation it's not quite as precise since we'll have to estimate the standard deviation. on the other hand we could go back to using a weighted average of the aspects, after scaling them to a percentile of the absolute maximums. thoughts?

thistleknot

  • Bay Watcher
  • Escaped Normalized Spreadsheet Berserker
    • View Profile
Re: Dwarf Therapist (LATEST 0.6.12 3/23/12 see first post)
« Reply #1649 on: March 29, 2012, 08:41:34 am »

Today was a sad day for my formula.  In v8 we didn't standardize skills, traits, attr against each other until the final step.  In v9 we do it at both.

originally I wanted static values, but because some skills train attributes, it was hard to find a real average/standard deviation.  So he opted for a moving average based on the population, which works rather nice.  I actually like best fit approach...

However, I and he always noticed how the skills were skewed, but he thought and I eventually conceded that it wouldn't be an issue since say 50% of values r below mean and 50% above (npt necessarily dwarves).  I think if we could address how to do a skewed distribution, the formula would work a bit better.  I also do like best fit now, but I see why people might want an overall fit (maybe an option for the two?).

Update:
The reason we normalize twice is because of the weights that are applied at the attribute level, and then again at the global level.  Not normalizing before applying weights a 2nd time at the global level would mean that the weights set in the 1st round (i.e. attributes, skills, traits level) would have an effect on the global weighting.  So standardizing them fixes that.
« Last Edit: March 29, 2012, 09:27:26 am by thistleknot »
Logged
Pages: 1 ... 108 109 [110] 111 112 ... 192