Category Archives: Machine Learning

Phil 5.10.19

7:00 – 4:00 ASRC NASA GOES

  • Tensorflow Graphics? TF-Graphics
  • An End-to-End AutoML Solution for Tabular Data at KaggleDays
  • More dissertation writing. Added a bit on The Sorcerer’s Apprentice and finished my first pass at Moby-Dick
  • Add pickling to MatrixScalar – done!
    def save_class(the_class, filename:str):
        print("save_class")
        # Its important to use binary mode
        dbfile = open(filename, 'ab')
    
        # source, destination
        pickle.dump(the_class, dbfile)
        dbfile.close()
    
    
    def restore_class(filename:str) -> MatrixScalar:
        print("restore_class")
        # for reading also binary mode is important
        dbfile = open(filename, 'rb')
        db = pickle.load(dbfile)
        dbfile.close()
        return db
  • Added flag to allow unlimited input buffer cols. It automatically sizes to the max if no arg for input_size
  • NOTE: Add a “notes” dict that is added to the setup tab for run information

 

Phil 5.9.19

Finished Army of None. One of the deepest, thorough analysis of human-centered AI/ML I’ve ever read.

7:00 – 4:00 ASRC NASA GOES-R

  • Create spreadsheets for tasks and bugs
  • More dissertation. Add Axelrod
  • Add reading and saving of matrices
    • Well, I can write everything, but xlsxwriter won’t read in anything
    • Tomorrow add pickling
  • Price to win analytic?

4:30 – 7:00 ML Seminar

7:00 – 9:00 Meeting with Aaron M

  • Tried to get biber working, but it produces a blank bib file. Need to look into that
  • Got the AI paper uploaded to Aaron’s new account. Arxiv also has problems with biber
  • Spent the rest of the meeting figuring out the next steps. It’s potentially something along the lines of using ML to build an explainable model for different sorts of ML systems (e.g. Humans-on-the-loop <-> Forensic, post-hoc interaction)

Phil 5.8.19

7:00 – 5:00 ASRC NASA GOES-R

  • Create spreadsheets for tasks and bugs
  • More dissertation. Add Axelrod
  • Mission Drive today, no meeting with Wayne, I think
  • Good visualization tool finds this morning:
    • Altair: Declarative Visualization in Python
    • deck.gl is a WebGL-powered framework for visual exploratory data analysis of large datasets.
  • Matrix Class
    • Change test and train within the class to input and target
    • Create the test and train as an output with the rectangular matrix with masks included. This means that I have to re-assemble that matrix from the input and target matrices
    • I still like the idea of persisting these values as excel spreadsheets
    • And now a pile of numbers that makes me happy:
      MatrixScalar:
      	rows = 5
      	input_size = 5
      	target_size = 5
      	mask_value(hex) = -1
      	tmax_cols = 6
      	mat_min = 0.13042279608514273
      	mat_max = 9.566827711787509
      
      input_npmat = 
      [4.384998306058251, 6.006494724381491, 7.061283542583833, 7.817876758859971, 7.214499436254831]
      [0.15061642402352393, 2.818956354589415, 5.04113793598655, 6.31250083574919]
      [2.8702355283795837, 5.564035171373476, 7.81403258383623, 8.590265450278785, 9.566827711787509]
      [0.1359688602006689, 0.8005043254115471, 2.080391037187722, 1.9828746089685887, 2.4669996344853677]
      [0.33676501126574077]
      
      target_npmat = 
      [6.529725859535821, 4.8702784287160075, 3.677355933557321, 1.5184287945320327, -0.5429800453619322]
      [7.629655798004273, 8.043579124885415, 7.261429015491849, 7.137935661381686, 5.583232751491164]
      [8.997538924797388, 8.32502866049641, 6.5215023090524085, 4.725363596736856, 1.3761131232325439]
      [2.270623038824647, 2.430147101210101, 2.0903103552937132, 1.6846416494136842, 1.4289540998497225]
      [1.897999998722116, 1.9054555934093833, 2.883358420829866, 3.703791108487346, 4.011103843736698]
      
      scaled_input_npmat = 
      [0.5608937619909073, 0.7683025595887466, 0.9032226729055693, 0.9999999999999999, 0.9228208193584869]
      [0.023860024409113324, 0.44656728417761093, 0.798596002940291, 1.0]
      [0.30001956916639155, 0.5815966733171017, 0.8167840813322457, 0.8979220394754807, 1.0]
      [0.055115071076624986, 0.32448497933342324, 0.8432879389630332, 0.8037595876588889, 1.0]
      [1.0]
      
      scaled_target_npmat = 
      [0.8352300836842569, 0.6229668973991612, 0.47037783364770835, 0.1942252150254483, -0.06945364606145459]
      [1.2086581842168989, 1.2742301877146247, 1.1503252362944103, 1.1307619352630993, 0.88447239798718]
      [0.9404934630223677, 0.8701974062142825, 0.6816786614665502, 0.4939321308059752, 0.143842155904721]
      [0.9203986117729256, 0.9850618002693972, 0.847308741385268, 0.6828706522143898, 0.5792275279958895]
      [5.635977418165948, 5.658116281877606, 8.561929904750741, 10.998147030080538, 11.910690569251393]
      
      scaled, masked input = 
      [[ 0.56089376  0.76830256  0.90322267  1.          0.92282082]
       [-1.          0.02386002  0.44656728  0.798596    1.        ]
       [ 0.30001957  0.58159667  0.81678408  0.89792204  1.        ]
       [ 0.05511507  0.32448498  0.84328794  0.80375959  1.        ]
       [-1.         -1.         -1.         -1.          1.        ]]
      scaled target = 
      [0.8352300836842569, 0.6229668973991612, 0.47037783364770835, 0.1942252150254483, -0.06945364606145459]
      [1.2086581842168989, 1.2742301877146247, 1.1503252362944103, 1.1307619352630993, 0.88447239798718]
      [0.9404934630223677, 0.8701974062142825, 0.6816786614665502, 0.4939321308059752, 0.143842155904721]
      [0.9203986117729256, 0.9850618002693972, 0.847308741385268, 0.6828706522143898, 0.5792275279958895]
      [5.635977418165948, 5.658116281877606, 8.561929904750741, 10.998147030080538, 11.910690569251393]
      
      scaled = [ 6.52972586  4.87027843  3.67735593  1.51842879 -0.54298005], error = 0.0
      scaled = [7.6296558  8.04357912 7.26142902 7.13793566 5.58323275], error = 0.0
      scaled = [8.99753892 8.32502866 6.52150231 4.7253636  1.37611312], error = 0.0
      scaled = [2.27062304 2.4301471  2.09031036 1.68464165 1.4289541 ], error = 0.0
      scaled = [1.898      1.90545559 2.88335842 3.70379111 4.01110384], error = 0.0
      
      input_train = 
      [[ 0.05511507  0.32448498  0.84328794  0.80375959  1.        ]
       [-1.         -1.         -1.         -1.          1.        ]
       [ 0.30001957  0.58159667  0.81678408  0.89792204  1.        ]]
      
      input_test = 
      [[ 0.56089376  0.76830256  0.90322267  1.          0.92282082]
       [-1.          0.02386002  0.44656728  0.798596    1.        ]]
      
      target_train = 
      [[ 0.92039861  0.9850618   0.84730874  0.68287065  0.57922753]
       [ 5.63597742  5.65811628  8.5619299  10.99814703 11.91069057]
       [ 0.94049346  0.87019741  0.68167866  0.49393213  0.14384216]]
      
      target_test = 
      [[ 0.83523008  0.6229669   0.47037783  0.19422522 -0.06945365]
       [ 1.20865818  1.27423019  1.15032524  1.13076194  0.8844724 ]]

       

Phil 5.7.19

7:00 – 8:00 ASRC NASA GOES-R

  • Via CSAIL: “The team’s approach isn’t particularly efficient now – they must train and “prune” the full network several times before finding the successful subnetwork. However, MIT professor Michael Carbin says that his team’s findings suggest that, if we can determine precisely which part of the original network is relevant to the final prediction, scientists might one day be able to skip this expensive process altogether. Such a revelation has the potential to save hours of work and make it easier for meaningful models to be created by individual programmers and not just huge tech companies.”
    • From the abstract of The Lottery Ticket Hypothesis: Finding Sparse, Trainable Neural Networks
      : We find that a standard pruning technique naturally uncovers subnetworks whose initializations made them capable of training effectively. Based on these results, we articulate the “lottery ticket hypothesis:” dense, randomly-initialized, feed-forward networks contain subnetworks (“winning tickets”) that – when trained in isolation – reach test accuracy comparable to the original network in a similar number of iterations. The winning tickets we find have won the initialization lottery: their connections have initial weights that make training particularly effective. 
    • Sounds like a good opportunity for evolutionary systems
  • Finished with text mods for IEEE letter
  • Added Kaufman and Olfati-Sabir to the discussion on Social Influence Horizon
  • Started the draft deck for the tech summit
  • More MatrixScalar
    • Core functions work
    • Change test and train within the class to input and target
    • Create a coordinating class that loads and creates test and train matrices
  • JuryRoom meeting
    • Progress is good enough to start tracking it. Going to create a set of Google sheets that keep track of tasks and bugs

Phil 5.6.19

7:00 – 5:00 ASRC GOES-R

  • Finished the AI/ML paper with Aaron M over the weekend. I need to have him ping me when it goes in. I think it turned out pretty well, even when cut down to 7 pages (with references!! Why, IEEE, why?)
    • Sent a copy to Wayne, and distributed around work. Need to put in on ArXiv on Thursday
  • Starting to pull parts from phifel.com to make the lit review for the dissertation. Those reviews may have had a reason after all!
    • And oddly (though satisfying), I wound up adding a section on Moby-Dick as a way of setting up the rest of the lit review
  • More Matrix scalar class. Basically a satisfying day of just writing code.
  • Need to fix IEEE letter and take a self-portrait. Need to charge up the good camera

Phil 5.3.19

8:00 – 5:00 ASRC AIMES

  • I may need to do something Star Wars-ish tomorrow
  • Didn’t get the Google AI for Social Good. Sigh
  • Working on the MatrixScalar class
    • use np.array as core type?
    • Good progress. I can build a scaled, square matrix
    • Need to add a log(x)/10X scale/rescale

Phil 5.2.19

7:00 – 9:00 ASRC NASA

  • Wrote up my notes from yesterday
  • Need to make an Akido Drone image, maybe even a sim in Zach’s environment?
  • Changed the title of the Dissertation
  • Need to commit the changes to LMN from the laptop – done
  • Need to create an instance of the JASSS paper in overleaf and make sure it runs
  • Put the jasss.bst file in the svn repo – done
  • Thinking about putting my dict find on stackoverflow, but did see this page on xpath for dict that is making me wonder if I just shouldn’t point there.
  • Did meaningless 2019 goal stuff
  • Adding ragged edge argument and generate a set of curves for eval
  • ML seminar 4:30
  • Meeting with Aaron M at 7:00
    • Spent a good deal of time discussing the structure of the paper and the arguments. Aaron wants the point made that the “arc to full autonomy” is really only the beginning, predictable part of the process. In this part, the humans own the “reflective part” of the process, either as a human in the loop, where they decide to pull the trigger, or in the full autonomy mode where they select the training data and evaluation criteria for the reflexive system that’s built. The next part of that sequence is when machines begin to develop reflective capabilities. When that happens, many of the common assumptions that sets of human adversaries make about conflict (OODA, for example), may well be disrupted by systems that do not share the common background and culture, but have been directed to perform the same mission.

Phil 5.1.19

7:00 – 7:00 ASRC NASA AIMS

  • Added lit review section to the dissertation, and put the seven steps of sectarianism in.
  • Spent most of yesterday helping Aaron with TimeSeriesML. Currently working on a JSON util that will get a value on a provided path
  • Had to set up python at the module and not project level, which was odd. Here’s how: www.jetbrains.com/help/idea/2016.1/configuring-global-project-and-module-sdks.html#module_sdk
  • Done!
        def lfind(self, query_list:List, target_list:List, targ_str:str = "???"):
            for tval in target_list:
                if isinstance(tval, dict):
                    return self.dfind(query_list[0], tval, targ_str)
                elif tval == query_list[0]:
                    return tval
    
        def dfind(self, query_dict:Dict, target_dict:Dict, targ_str:str = "???"):
            for key, qval in query_dict.items():
                # print("key = {}, qval = {}".format(key, qval))
                tval = target_dict[key]
                if isinstance(qval, dict):
                    return self.dfind(qval, tval, targ_str)
                elif isinstance(qval, list):
                    return self.lfind(qval, tval, targ_str)
                else:
                    if qval == targ_str:
                        return tval
                    if qval != tval:
                        return None
    
        def find(self, query_dict:Dict):
            # pprint.pprint(query_dict)
            result = self.dfind(query_dict, self.json_dict)
            return result
    
    
  • It’s called like this:
    ju = JsonUtils("../../data/output_data/lstm_structure.json")
    # ju.pprint()
    result = ju.find({"config":[{"class_name":"Masking", "config":{"batch_input_shape": "???"}}]})
    print("result 1 = {}".format(result))
    result = ju.find({"config":[{"class_name":"Masking", "config":{"mask_value": "???"}}]})
    print("result 2 = {}".format(result))
  • Here’s the results:
    result 1 = [None, 12, 1]
    result 2 = 666.0
  • Got Aaron’s code running!
  • Meeting with Joel
    • A quicker demo that I was expecting, though I was able to walk through how to create and use Corpus Manager and LMN. Also, we got a bug where the column index for the eigenvector didn’t exist. Fixed that in JavaUtils.math.Labeled2DMatrix.java
  • Meeting with Wayne
    • Walked through the JASSS paper. Need to make sure that the lit review is connected and in the proper order
    • Changed the title of the dissertation to
      • Stampede Theory: Mapping Dangerous Misinformation at Scale
    • Solidifying defense over the winter break, with diploma in the Spring
    • Mentioned the “aikido with drones” concept. Need to make an image. Actually, I wonder if there is a way for that model to be used for actually getting a grant to explore weaponized AI in a way that isn’t directly mappable to weapons systems, but is close enough to reality that people will get the point.
    • Also discussed the concept of managing runaway AI with the Sanhedrin-17a concept, where unanimous agreement to convict means acquittal.  Cities had Sanhedrin of 23 Judges and the Great Sanhedrin had 71 Judges en.wikipedia.org/wiki/Sanhedrin
      • Rav Kahana says: In a Sanhedrin where all the judges saw fit to convict the defendant in a case of capital law, they acquit him. The Gemara asks: What is the reasoning for this halakha? It is since it is learned as a tradition that suspension of the trial overnight is necessary in order to create a possibility of acquittal. The halakha is that they may not issue the guilty verdict on the same day the evidence was heard, as perhaps over the course of the night one of the judges will think of a reason to acquit the defendant. And as those judges all saw fit to convict him they will not see any further possibility to acquit him, because there will not be anyone arguing for such a verdict. Consequently, he cannot be convicted.

 

Phil 4.29.19

7:00 – 3:30 ASRC TL

  • Register for Tech Summit – done
  • Ask for a week of time to prep for talk – done
  • Panos read the paper and has some suggestions. Need to implement
  • This might be important: Neural Logic Machines
    • We propose the Neural Logic Machine (NLM), a neural-symbolic architecture for both inductive learning and logic reasoning. NLMs exploit the power of both neural networks—as function approximators, and logic programming—as a symbolic processor for objects with properties, relations, logic connectives, and quantifiers. After being trained on small-scale tasks (such as sorting short arrays), NLMs can recover lifted rules, and generalize to large-scale tasks (such as sorting longer arrays). In our experiments, NLMs achieve perfect generalization in a number of tasks, from relational reasoning tasks on the family tree and general graphs, to decision making tasks including sorting arrays, finding shortest paths, and playing the blocks world. Most of these tasks are hard to accomplish for neural networks or inductive logic programming alone.
  • Need to read the Nature “Behavior” paper. Notes probably go straight into the dissertation lit review – done
  • Continuing to read Army of None, which is ridiculously good. This figure has been making me think: AoN This implies that the idea that a set of diverse ML systems all agreeing is a warning condition is worth exploring.
  • Finished read through of Tao’s paper
  • Need to find a cardiologist for Arpita

Phil 4.20.19

I think that we might be getting close-ish to a workable AI dungeon master(thisstorydoesnotexist.com). The trick might be to let people know that it was AI, and that it would behave… oddly:

My prompt: you enter a room with an orc and a goblin

The generated text:
The door swung open to a dark room, with no sign of a decoration or decoration for a simple wooden table and a table with no apparent decoration. As my eyes adjusted to the darkness, a pair of eyes I recognized well. He was shorter than the average goblin, even in his long robes, but his build was reminiscent of the ancient orc warrior. He looked at the two on a simple wooden stool, and then looked at me.

There was an air of calm in his tone.

The voice, it sounded like it was coming from inside the dungeon, but that was all I heard. It was a sound so foreign, the only sound I heard was the crackling of fire.
The light was blinding, blinding so much pain that I had to force my eyes open to avoid it. The light was bright enough to completely illuminate the floor of the room, but dim and the brightness did not cause me to see. The eyes of the orc were staring at me, but my mind was racing with questions.

What would make this place like it was?

Who are we, what will make this land like it is?

It’s been a couple millennia, we’re the third tribe in a short time, and were not going to leave until they had seen us. The people of our tribe were not aggressive, and their weapons were not strong, they were not strong enough to be dangerous on their own.

What makes the people of this land so dangerous?


I am the Second of the Glimmering Council. It is my duty to inform the other tribes of our future, and warn those tribes that their tribe will not stand

Phil 4.17.19

7:00 – 5:00 ASRC TL

  • Continuing to read Army of None. Really solid analysis
  • Working on JASS paper
  • The buzz on Twitter about the possible change to topic-based (e.g. Reddit?) rather than person-based, makes me wonder if there should be the ability to follow people in JuryRoom. I’d follow Cricket, for example
    • “Cricket sits down in front of the Troll doing her best to appear completely relaxed and smiles, “come and lay down again while I sing.” Gesturing in front of her she gives a smile, “and if I can just look at the pretty box for a little bit maybe right here in front of me? It will stay really close so you can grab it up once you fall asleep.” At this point Cricket hadn’t actually lied, she currently had no intention of taking the box but if it opened as she suspected she fully intended to open it and hopefully take the contents.”
  • More Grokking MNIST. Here’s a pix of the neurons. The difference about halfway through is the switch from training to testing data: mnist
  • MorphNet: Towards Faster and Smaller Neural Networks
    • Here we describe MorphNet, a sophisticated technique for neural network model refinement, which takes the latter approach. Originally presented in our paper, “MorphNet: Fast & Simple Resource-Constrained Structure Learning of Deep Networks”, MorphNet takes an existing neural network as input and produces a new neural network that is smaller, faster, and yields better performance tailored to a new problem. We’ve applied the technique to Google-scale problems to design production-serving networks that are both smaller and more accurate, and now we have open sourced the TensorFlow implementation of MorphNet to the community so that you can use it to make your models more efficient.
  • Had one of the stupidest, brain-damaged meetings I have ever had. Just destructive for destruction’s sake, as near as I can tell.
  • Updated IntelliJ, which was painful this time, requiring finding Java and Python SDKs that were clearly visible in the settings. I guess it’s that kind of day.

Phil 3.22.19

7:00 – 5:30 ASRC PhD

  • Morning thought – primordial movement is navigation at a more generalized level. At this level, only broad features are visible, so it’s only easy to jump to a large, common feature like fear-of-the-other. For humans, I think there are very few accessible features at this level.
  • Adversarial attacks on medical machine learning
    • With public and academic attention increasingly focused on the new role of machine learning in the health information economy, an unusual and no-longer-esoteric category of vulnerabilities in machine-learning systems could prove important. These vulnerabilities allow a small, carefully designed change in how inputs are presented to a system to completely alter its output, causing it to confidently arrive at manifestly wrong conclusions. These advanced techniques to subvert otherwise-reliable machine-learning systems—so-called adversarial attacks—have, to date, been of interest primarily to computer science researchers (1). However, the landscape of often-competing interests within health care, and billions of dollars at stake in systems’ outputs, implies considerable problems. We outline motivations that various players in the health care system may have to use adversarial attacks and begin a discussion of what to do about them. Far from discouraging continued innovation with medical machine learning, we call for active engagement of medical, technical, legal, and ethical experts in pursuit of efficient, broadly available, and effective health care that machine learning will enable.
  • Jumping straight into coding
    • Moved the menu bars around
      • Added a “Chains” menu that runs sequences of analytics
      • Added an NLP menu for BOW and TF-IDF
      • Working on parsing the selected listings to add to the various lists
      • Added a “search” button to search for neighbors of terms in the spaces and places text areas
      • Ran into a problem when I was calculating TF-IDF From here, but the way to get the data is here, spoilers – it uses Dataframes. Anyway, artifacts from Slack and PHPBB we interfering with the analytics. Things like [i:3fsgwhpz]. So I added a lot of preprocessing. First, more regexes:
        punctuation_regex = re.compile(r"[\",\-\_\.\d+?!*;“”]")
        bracket_regex = re.compile(r"\[.*?\]")
        amper_semicolon_regex = re.compile(r"\&.*?\;")

        And then some word-by-word testing and more regexing:

        def cleanup_text(self, raw: str) -> str:
            raw = self.bracket_regex.sub("",raw)
            raw = self.amper_semicolon_regex.sub("",raw)
            words = raw.split(" ")
            s = ""
            for word in words:
                if len(word) < 20:
                    word = self.punctuation_regex.sub("",word)
                    word = word.strip()
                    word = word.lower()
                    s += " {}".format(word)
                else:
                    print("Threw out {}".format(word))
            return s
      • Anyway, the results are pretty good now with TF-IDF. Here’s the top few terms for each player’s runs
        ----------------------
        FuguRoulette-player:
        post TF-IDF
        	javelin: 1.3235824005932413
        	orc: 1.2596337832554234
        	don: 1.2329356851106978
        	mindy: 1.1935877563453061
        	dragon: 1.180695872064165
        	room: 1.16758789676671
        	goblin: 1.1244271157713812
        	gate: 1.0518778198496626
        	muttered: 0.9602704217082824
        	orb: 0.7818369426232508
        	vines: 0.7682713289173773
        	around: 0.7650741399517217
        	believe: 0.7181160263645541
        	set: 0.6960723252519683
        ----------------------
        Kaeritha-player:
        post TF-IDF
        	troll: 1.8877816896391235
        	room: 1.6145159552006425
        	spell: 1.19387373804735
        	orb: 1.031131725198719
        	hand: 1.0226191383574903
        	halfling: 0.882770501608177
        	feather: 0.8321564150194518
        	chest: 0.7956715550842
        	need: 0.7833254070966856
        	without: 0.7774257667568547
        	thought: 0.7698168337310007
        	wasn: 0.7681132279117597
        	grogg: 0.7397095370527041
        	nodded: 0.7283692418929164
        	cricket: 0.7152753845274986
        ----------------------
        Ashleyder-player:
        post TF-IDF
        	room: 1.37664885493529
        	halfling: 1.3095258648568422
        	orb: 1.1635393833341
        	arrow: 1.0958743699311024
        	bow: 1.0833323871838676
        	woman: 0.905661830111989
        	sword: 0.8274886204621582
        	side: 0.8159855961191507
        	door: 0.8030328480633289
        	weapons: 0.8023256227742956
        	bit: 0.7654054685520582
        	armor: 0.6925203949859854
        	compatriots: 0.6877982251257945
        	moment: 0.666106887452693
        	ready: 0.6591955622573524
        	wasn: 0.6407825783880001
        	group: 0.6181005287618395
        	words: 0.6162132133458346
        	statues: 0.6129058701485565
        ----------------------
        dungeon_master1-player:
        post TF-IDF
        	grogg: 5.334199523123002
        	room: 3.811509447108922
        	gate: 3.258183021914178
        	orb: 2.618164708893951
        	troll: 2.613186928575063
        	arrow: 2.324879853387413
        	looking: 2.0945608918805405
        	dragon: 2.0386853821484214
        	statues: 2.0307941282615394
        	halfling: 1.9946267677568987
        	goblin: 1.9479046173471883
        	eyes: 1.9250729565572604
        	large: 1.8740265406115013
        	hand: 1.8621985701316857
        	ooc: 1.854167610118333
        	orc: 1.8453651951258079
        ----------------------
        Aaron Buchanan-player:
        post TF-IDF
        	smile: 5.028089150947501
        	troll: 4.349229589605341
        	linda: 4.01623419920215
        	damage: 3.5816072459387898
        	let: 3.145522725372224
        	know: 3.0568701804539486
        	jenni: 3.0150241755107605
        	need: 2.9865597817204916
        	don: 2.89736685000583
        	fire: 2.8533063572331154
        	hit: 2.750325190292788
        	elf: 2.61638151392588
        	nothing: 2.5832965974665827
        	rope: 2.5651899037822403
        	want: 2.5516172618521207
        	room: 2.5234046485126127
        	hand: 2.408589994530533
        	key: 2.400913929253641
        	halfling: 2.300372097141645
        	grogg: 2.2976898742276277
        ----------------------
        Jenni-player:
        post TF-IDF
        	insight: 3.5333368131417924
        	troll: 3.4738014944618905
        	help: 2.629726435567097
        	grogg: 2.396996336469604
        	need: 2.358944535917952
        	room: 2.25768912386651
        	healing: 2.2382624097615995
        	rolls: 2.2229326490531314
        	gate: 2.195439698041948
        	around: 2.161868029714761
        	flame: 2.132641891485049
        	perception: 2.1149040159363293
        	floor: 2.1054598538974045
        	hands: 1.9310855224062018
        	light: 1.8784320905937355
        	uses: 1.850257078968512
        	catch: 1.793277658871867
        ----------------------
        Bjorn Hasseler-player:
        post TF-IDF
        	flame: 2.315315586844817
        	sacred: 2.315315586844817
        	stonecunning: 2.1557147060826947
        	rolls: 2.132883047459771
        	grogg: 1.9660626127710805
        	don: 1.9424906312537291
        	steps: 1.935482241603244
        	bridge: 1.7092785394164918
        	rope: 1.5744166673302291
        	torches: 1.551554596214274
        	stairs: 1.4732750153279608
        	platform: 1.3689503773093064
        	vines: 1.3351891642736244
        	light: 1.3217202403569526
        ----------------------
        randomexile-player:
        post TF-IDF
        	troll: 5.780387270246775
        	grogg: 4.59954530049338
        	need: 4.379175783748707
        	attack: 3.7429397050152247
        	don: 3.564218421074024
        	open: 3.503242156009218
        	gate: 3.3068573706012985
        	stealth: 3.1899559813180645
        	traps: 2.965951521209904
        	chest: 2.9426150667239175
        	side: 2.8272991421295277
        	room: 2.8187225708944883
        	dragon: 2.7919898167411095
        	party: 2.784297298562819
        	know: 2.698287503059542
        ----------------------
        Linda-player:
        post TF-IDF
        	grogg: 10.15480371661793
        	damage: 6.745957190399183
        	gate: 4.595526542550383
        	turn: 4.47763106887882
        	side: 4.220054751334396
        	room: 4.0759304935283875
        	troll: 3.6496283755351433
        	persuasion: 3.427787051079431
        	stairs: 3.2452878097049718
        	open: 3.0691978408049714
        	appears: 2.9662151644031236
        	barrier: 2.9526976397873197
        	hit: 2.882801312489094
        	please: 2.756473252393314
        	feet: 2.7553337830423685
        ----------------------
        Grymm-player:
        post TF-IDF
        	rope: 2.5925740290266477
        	troll: 2.149767946611558
        	grogg: 2.1373623910153023
        	close: 2.093606121380299
        	goes: 1.9114083131138986
        	thing: 1.879425660287383
        	gate: 1.8498993377390152
        	behind: 1.7759591324283694
        	around: 1.7739744768952832
        	eyes: 1.6015525983573213
        	along: 1.565130385605012
        	face: 1.5465277621378841
        	merric: 1.531838768719999
        	goblin: 1.5017357357398398
        	chest: 1.4793322265307385
        ----------------------
        AllTheLolz-player:
        post TF-IDF
        	rope: 2.5574727497157186
        	bit: 2.334695846271241
        	halfling: 2.2917865866720875
        	turn: 2.2913671375617244
        	help: 2.263326099701241
        	want: 2.255517431033907
        	let: 2.2248419816867973
        	hand: 2.05823145874274
        	thing: 2.0252535914010243
        	need: 2.017853031957051
        	trying: 1.9392838304479607
        	won: 1.9074029011042937
        	lever: 1.8940047810992084
        	motions: 1.8791666280630153
        	grogg: 1.8512620533629853
        	know: 1.8460073095362568
        ----------------------
        brkuhlman-player:
        post TF-IDF
        	joy: 2.2090099096592093
        	bow: 1.4708821850714477
        	comrades: 1.3450198066079633
        	agreed: 1.2909672047219294
        	shit: 1.2511351948636689
        	hand: 1.1939893091569087
        	simply: 1.0754065506075219
        	alongside: 1.03095098597318
        	ready: 1.030909228527731
        	moves: 1.0217451884953292
        	follows: 1.019308558744064
        	esvele: 1.0031051305561383
        	eyes: 1.0031051305561383
        	alrighty: 1.0
        	sounds: 1.0
        	wow: 1.0
        	armor: 0.9675296552629622
        	goblin: 0.9675296552629622
        	arrow: 0.959551586099932
        ----------------------
        Poe-player:
        post TF-IDF
        	grogg: 9.574956839446978
        	room: 7.7929146794417985
        	gate: 7.769157727681967
        	open: 5.161416388301517
        	side: 4.9552473292407315
        	hand: 4.920538249739186
        	something: 4.862660052617354
        	troll: 4.756897094197843
        	damage: 4.698981284560832
        	phoenix: 4.506875041306749
        	group: 4.4419312361884575
        	stealth: 4.347602688687722
        	bee: 4.337563548710324
        	stairs: 4.272837824041584
        	perception: 4.240823300482532
        	investigation: 4.214126267526979
        	bit: 4.2116435909201435
        	goblin: 4.16370490562877
        ----------------------
        Keiri'to-player:
        post TF-IDF
        	gate: 3.813331273921538
        	course: 3.3238613690720182
        	light: 3.2357123635315
        	yenadar: 3.206131400462222
        	move: 3.0410330090181983
        	orc: 2.920652421803098
        	dragon: 2.91393405622444
        	casts: 2.910174915050543
        	shelton: 2.781316206653326
        	turn: 2.7696197904765247
        	close: 2.7395876537286137
        	history: 2.7290686528241705
        	rope: 2.533647571484718
        	toss: 2.488833414797614
        ----------------------
        Lorelai-player:
        post TF-IDF
        	rope: 7.346484814122864
        	mage: 5.1901641703849695
        	hand: 5.169823617707603
        	something: 4.052962289815423
        	room: 3.7977359903069874
        	spell: 3.733564719352958
        	feet: 3.629297463463484
        	gate: 3.4221850444525543
        	need: 3.313446574887807
        	hands: 3.306280386619182
        	casts: 3.239250407373651
        	arrows: 3.094136824719543
        	hahaha: 3.0
        	lorelai: 2.8832894462350955
        	troll: 2.879950620848435
        ----------------------
        Bren'Dralagon-player:
        post TF-IDF
        	javelin: 5.50125987652874
        	sigh: 4.0
        	hmm: 3.534360458898429
        	room: 3.5148283185111264
        	yup: 3.5117826563035313
        	axe: 3.114116974088525
        	wait: 3.0448104923325108
        	course: 2.7955498582374037
        	chest: 2.7578668995086213
        	kk: 2.68753920352695
        	rope: 2.491724054450192
        	hand: 2.409513756019609
        	attack: 2.380401354039185
        	side: 2.2585165820164
        	ft: 2.2506235321034813
        	lead: 2.229579193706388
        	better: 2.2144928823627117
        	move: 2.159570674311593
        	troll: 2.149851721830461
        ----------------------
        Shelton Herrington-player:
        post TF-IDF
        	hehe: 12.124909531389427
        	don: 11.505547928323026
        	guess: 10.67778790195941
        	nice: 9.170367618719803
        	rope: 8.698156248650768
        	orb: 8.567297721201122
        	hey: 8.3986603737825
        	hmm: 8.284208790999351
        	guys: 8.195019661596476
        	want: 7.965528793382409
        	door: 7.900199902653034
        	know: 7.817490225187236
        	can: 6.476312939358579
        	maybe: 6.393688899561484
        	around: 6.370346146839613
        
        

Phil 3.12.19

7:00 – 4:00 ASRC PhD

TFK

d1dpqqlxgaansuo

Phil 3.11.19

7:00 – 10:00 ASRC PhD. Fun, long day.