In the meantime, the current obsession with systemic risk is understandable. After all, we came darn close to experiencing it, with every money-center bank, most secondary banks, and many tertiary banks verging on collapse only a few months ago. That close call handed politicians a gold-plated "opportunity to do things you couldn't do before."
One of those things is increasing regulatory oversight of the financial sector. In particular, the Obama Administration would like to give the Federal Reserve the authority to regulate any Tier 1 financial-holding company — a fuzzy category expected to include all commercial and investment banks, though likely to exclude private equity and hedge funds. The president's proposal includes an oversight council, to be chaired by the treasury secretary. This council would give a key role to the Federal Reserve chairman while marshalling the forces of six other discrete agencies, including the SEC, FDIC, CFTC, and Federal Housing Finance Agency.
But does it really matter? If history is any guide, and it should be, the new regulatory regime will likely suffer the same fecklessness as previous regimes, because of at least two intractable shortcomings: First, the President's proposed oversight council, despite being pitched as a cohesive unit, is composed of entities representing different constituencies. Therefore, it's automatically larded with representatives of different agendas, each of which will instinctively work against each other to protect his own turf when cooperation is needed most.
Second, government regulation simply doesn't work. Nobel Prize winning economist George Stigler, who garnered fame for developing the "Economic Theory of Regulation," better known as the "Theory of Regulatory Capture," postulated 50 years ago that interest groups and political representatives will use the regulatory powers of government to shape laws and regulations to their advantage. It's no coincidence that Treasury Department heads originate from Wall Street.
Historian and ardent anticapitalist Gabriel Kolko explicated the phenomenon of capture in his book the Triumph of Conservatism. Kolko was one of the first academics to criticize the Progressive Era — the period of reform that lasted from the 1890s to the 1920s. Kolko's research discovered that free enterprise and competition were vibrant and expanding during the first two decades of the 20th century, until businesses began petitioning government for regulation in order to stem competition. Indeed, the 1913 Federal Reserve Act was the product of a banking reform movement initiated by big banks seeking to insulate themselves from small-bank competition.
It's a recipe for disaster when you consider that the regulators are always outmaneuvered. Economist Hyman Minsky, in his "Financial Instability Hypothesis," noted that banks seek profits by financing activity and bankers. Like all entrepreneurs in a capitalist economy, bankers are aware that innovation enables profits; thus, bankers (Minsky uses the word generically for all financial intermediaries) strive to innovate in the assets they acquire and the liabilities they market.
It's a mismatch: an entrepreneurial mentality permeates private banking, and a stasis mentality permeates governments. Government employees lack incentives to go above and beyond their job descriptions, because government lacks the carrot of profit and the stick of bankruptcy. The only incentive government responds to is the opportunity to expand its presence into that which is already known; hence, $50 billion is forked over to a shopworn, dilapidated General Motors.
The Obama Administration's proposal is already as yesterday as General Motors. Yes, it strengthens firewalls between banks and their affiliates to prevent conflicts of interest; it imposes new risk-retention minimum standards — 5 percent — in the securitization market, and requires institutions to issue standardized contracts; and it strengthens the oversight of clearing and payment-settlement organizations. It also mandates a rapid resolution plan (whatever that means) in case these Tier 1 firms threaten the nation's economic health (but who determines that?).
Unfortunately, the next systemic risk will not emerge from Tier 1 financial firms any more than it will emerge from reckless savings and loan lending or overinvestment in dotcom businesses. But that fact fails to temper dreams that it will be otherwise.
In a July 26 New York Times op-ed, a popular Princeton economist (hint: not Paul Krugman) closed his eyes real tight and imagined what the world would have been like had the President's systemic-risk regulator existed in 2005. This economist imagined the regulator maintaining a vigilant eye on the growing mound of residential-backed collateralized debt securities.
He then imagined this same regulator questioning the legitimacy of all those easily parsed out triple-A bond ratings. This regulator even possessed sufficient wisdom to questioned American International Group's addiction to writing credit default swaps on all those collateralized debt obligations the banks were issuing.
Of course, this Princeton economist's omniscient regulator is the antithesis of the real-world heads of the SEC, who also ignored Boston investor Harry Makropoulos — the guy who mailed SEC investigators a 29-page tip sheet, explicating Bernie Madoff's secretive business practices, lack of oversight, and suspiciously high profits.
The year 2005 was unremarkable, but steady: in other words, a perfect year for writing as many credit default swaps as the computer could generate. It was also an interregnum from the Dow Jones Industrial Average's 3,000-point upswing over 2003 and 2004 and the additional 3,000-point upswing that occurred over 2006 and 2007. In short, the stock market of 2003 through 2007 was very good to many equity investors, and when times are very good, markets grow very risky (another salient point noted in Minsky's "Financial Instability Hypothesis").
I worry, frankly, that there's a tension here. The more people, in my judgment, exaggerate a threat of safety and soundness, the more people conjure up the possibility of serious financial losses to the Treasury, which I do not see. I think we see entities that are fundamentally sound financially and withstand some of the disaster scenarios.
What's a self-interested regulator to do?
The answer is easy to fathom, which is why we should jettison our fiat money system in favor of a gold or multicommodity-metal system (such as gold, platinum, silver, and copper). While we're at it, we should jettison fractional-reserve banking in favor of full-reserve banking. A full-reserve banking system would prevent both overextension of credit and loss of confidence in the financial system. Both actions would remove the financial system from the aegis of a constantly wrong regulatory hegemony and place it under the aegis of a mostly right free market.
But if you prefer the status quo and believe President Obama's latest proposal is the preferred option, because it puts all our regulators on the same page, I suggest glancing across the Atlantic to our close kin the British, and their putatively cohesive Financial Services Authority. Then ask yourself this: Did the FSA shield the United Kingdom from systemic risk any better than our current hodgepodge of regulatory agencies shielded us?


If anyone wants to witness a small sampling of what "tolerance" looks like for trans activists, survey the reaction of their movement to an essay published by The Atlantic in their July/August issue titled "When Children Say They're Trans." Keep in mind, as you scroll through the waves of vitriol currently spreading across Twitter, that this publication is not a conservative one—it is a very liberal one. In fact, the last time The Atlantic was at the forefront of any controversy, they had just hired and then promptly fired the brilliant columnist Kevin D. Williamson (who was kind enough to come onto my podcast and discuss his book The End Is Near and It's Going to Be Awesome some time ago) for controversial comments about abortion.
This, perhaps, is the source of their rage: A liberal publication daring to engage with trans ideology in a nuanced way, rather than simply spouting off a list of pre-approved talking points. Deviation from these talking points can attract a social media lynching almost immediately these days—even Kylie Jenner was viciously attacked for wishing her father Caitlyn Jenner a Happy Father's Day, and posting a picture of him from back when he was Bruce. But that sin was insignificant compared to the crimes of The Atlantic, which began an essay with the story of Claire and her parents—a cautionary tale about the dangers of heeding trans propaganda.
Some kids are dysphoric from a very young age, but in time become comfortable with their body. Some develop dysphoria around the same time they enter puberty, but their suffering is temporary. Others end up identifying as nonbinary—that is, neither male nor female.
I disagree with much of what Singal has to say, but I applaud the genuine courage it took in today's suffocating media culture to actually tell the stories of the detransitioners, who are much-maligned and consistently ignored. Singal has also exposed, once again, the intolerance of the trans activists: Regardless of the fact that he both accepts and defends the premises of the trans ideology and despite the fact that he also tells many stories of "happy endings" to transition, that's not good enough. He disobeyed the rule that trans activists have laid out for the media: If you can't say everything nice, don't say anything at all.


Two common household products pose a double-threat, as they're both toxic and a choking hazard. These include round, button-sized batteries used in watches, toys and electronics and single-use laundry or dishwasher detergent capsules that look like candy.
All batteries contain toxic materials, but the small ones are more likely to end up in a curious child's mouth. Keep them stored in a safe place. Make sure the battery access doors on toys and other items are closed securely.
Since single-use detergent packets hit the market, many children have swallowed them or otherwise been exposed to the highly concentrated detergent. Some have become quite ill and required hospitalization.
It's easy to see why children are attracted to them. They're colorful and squishy and could easily be mistaken for candy or a toy.
Store these capsules out of reach and out of sight of young children who may resort to climbing to get to them. Child-proof safety locks on cabinets provide added protection.


text:
Q: How to replace the elements of an RDD I have an RDD like so:
JavaPairRDD<SubspaceFlag, Iterable<Point>> flagPointPairs
Example value:
(01), [(5, 5), (6, 1), (7, 2), (9, 4)]
Point is an (x, y) point in a two-dimensional space
I need to remove some elements from the Iterable<Point> part of the Tuple2. For example I need to keep only the points that dominate the others (x1 <= x2 AND y1 < y2 OR y1 <= y2 AND x1 < x2).
In the end I am left with a temporary list [(5, 5), (6, 1)] which I want to convert back to JavaPairRDD<SubspaceFlag, Iterable<Point>> -> (01), [(5, 5), (6, 1)].
I know how to access the Iterable<Point>, I know how to make the smaller list that interests me from the Iterable<Point>, but I don't know how to make that list back to an RDD with it's accompanying SubspaceFlag.

A: RDDs are immutable structures, hence you don't replace elements in an RDD, you transform an RDD into another.
In this specific case, the rdd.map tranformation will allow you to apply a function to each element of the RDD, resulting in a new RDD.
Given
val flagPointPairsRdd:RDD[SubspaceFlag, Iterable[Point]] = ???

and a function:
def dominants(points: Iterable[Point]):Iterable[Point] = ??? //Your impl here

Then you can obtain the desired outcome by:
val dominatingPairsRdd = flagPointPairs.map{case (flag, points) => (flag, dominants(points))}

The equivalent Java code is fairly similar (only more verbose) and left as an exercise to the reader.

A: @maasg's answer is pretty much what I needed to know (that in order to return the same type of RDD back I should just map it) but since my question is in Java and the answer in Java is quite different I will post the answer in Java as well.
Having an RDD like so:
JavaPairRDD<SubspaceFlag, Iterable<Point>> flagPointPairs = ...
In order to return the same type of RDD but with different values first you need a method like so:
private Iterable<Point> localSkylines(Iterable<Point> pointIterable) {
        List<Point> localSkylines = new ArrayList<>();

        // find local skylines here

        return localSkylines;
    }

And then you can make the new RDD like so:
JavaPairRDD<PointFlag, Iterable<Point>> dominatingPairs = flagPointPairs.mapToPair(fp -> new Tuple2(fp._1, localSkylines(fp._2)));
The major key differences here are two:

*

*In Java in order to get back a JavaPairRDD you must use .mapToPair() and use new Tuple2(left, right)

*In order to return an Iterable<Point> you don't need to convert the List<Point> since it is an Iterable<Point> already.

redpajama_set_name: RedPajamaStackExchange


Over the course of two years, author James Rosemond, with the aid of a newfound dive buddy named Scotty, explores Carteret County, the bottom of the ocean, and himself. This book is a humorous recounting of their misadventures above and below the surface, diving and hunting for flounder, while mildly stretching the recreational dive rules. Transitioning through a self imposed mid life crisis by Hiding on the Bottom , the author realizes that life is more than work, adventure being just beyond the door step. Scotty, with his bizarre wisdom, helps him understand what is important, finding life's little pleasures and adventures along the way, always recognizing the humor in every situation.


text:
العربية MENU
About RA'AD
From our schedule
RA'AD finishes 3rd in the second season of the IAC2 Champions' League
8 August. 2021
After a long journey in Split 1, through the Country Qualifiers and the Competitors' League, RA'AD League of Legends team successfully qualified to the Champions' League for Season 2, a feat that no other team was able to accomplish during Season 1.
In their first match of the playoffs, RA'AD played against their rivals KnockOut Esports. KO placed 1st in the first season and they placed 1st in the regular season for the second season so they were very formidable opponents.
However, RA'AD still went into the match with the mentality of doing everything they can in order to win. RA'AD went into their first game of the match dominating the early game, but unfortunately they lost the game due to a mistake at the dragon pit which the enemy team capitalized on and lead to their first loss.
They then went on to win the second game in a very clean fashion, keeping themselves in the series and keeping the match competitive.
However, KnockOut, after losing their first game of the series, seemingly regained all their focus and went 100%, showing a significantly improved performance compared to their first two games in the series and ultimately defeated RA'AD 3-1. It was a heartbreaking defeat, but RA'AD had to move on quickly and start thinking of the 3rd/4th decider match.
Last but not least, RA'AD faced Sahara Warriors in the 3rd/4th decider match, after they (Sahara) suffered a crushing 3-0 defeat against Anubis Gaming in their respective semifinal match.
RA'AD went into the series with a relaxed mentality since they had nothing to lose at this point and they just wanted to play the game and to not think too much about the implications.
Due to this, they were able to win the series 3-1 and while it was not easy, as Sahara Warriors are a respectable opponent and no slouches, it's possible to say that the series was overall smooth and within expectations in terms of gameplay.
Thus, RA'AD finished their road in the second season of the IAC2 Champions' League in 3rd place.
Copyrights © 2021 All Rights Reserved by RA'AD

redpajama_set_name: RedPajamaCommonCrawl


Space is held for the uniqueness of you, your soul and family system. Helping you find balance, vibrancy, and health in your life. You'll get clarity, feel resourced and supported. Be guided into a new presence within you and work through the challenges of your life with ease and grace….
Viviana helps clients work through... Stress, anxiety, depression, trauma, life crisis, relationships and dating, change in career, creative projects, living life in a bigger way, coming into your full expression, letting go of habits not serving your health and well being.
Using NLP (neuro-linguistic programming), conversational hypnosis, mind-body techniques, and a bit of magic we'll unpack what is stopping you. Taking into consideration your personal history and family patterns, I'll guide you through powerful exercises that will rewire your experience of your experience of yourself and your life.
Viviana is a transformational mentor, counselor, life coach, workshop facilitator, and midwife of change. In 2016 she founded Heart Source, a beautiful workshop space in Berkeley, California. Heart Source is dedicated to providing high quality education for self growth and heart-centered leadership. Her passion is supporting your self care while holding space and presence for growth and change. She teaches how to move through the darker times in life, finding more resources, balance, and choice now. She weaves neuroscience and holistic body-mind wisdom to help you rewrite unwanted patterns and live in your full expression.


"Do not save what is left after spending, but spend what is left after saving." - Warren Buffet, American business magnate, investor and philanthropist; considered to be the most successful investor in the world.
Ready to take your first step towards a financially secure future? A good investment idea will only become a winning investment once it has been through a series of litmus tests to ensure that it is the RIGHT idea for you. Here is a quick checklist that will help you evaluate all your decisions and ensure that your investments are in line with your financial goals and risk appetite.
1. After how much time would you need this money back? Could you possibly need it before that time, in case of an emergency?
Even before you can make your first investment, you should have a basic financial plan in place. Among other things, the plan will help you decide if a particular investments is a good fit for your existing investment portfolio. Your choice also depends on when you need the money back, as different investments are suitable for different time horizons. A number of products also have a lock-in period and/or heavy penalties for withdrawing funds prematurely. You must be aware of when you could need these funds in the future and whether this product fits those requirements.
Create your own Financial Plan in five minutes.
2. How much risk are you willing to take with this money? Is this investment within your acceptable risk limit?
What happens if the investment doesn't perform as expected and you end up losing a part of your money? Do you need this money for some future financial liability? The answers to these questions also depend on your existing investment portfolio. It is important to view each investment as a subset of your larger portfolio, with the sole aim of maximizing long-term returns and minimizing your risk. At the same time, each investment must also fall within the risk limit acceptable to you.
Find out what your Investing Traits are.
3. What is your expected return from this investment? Has this product provided similar returns in the past 5-10 years?
Even though past performance is not a guarantee of future returns, you should always make sure that your expected returns are in line with how the investment has performed in the past. If the investment has performed exceptionally well in the last 6 months, it is unreasonable to assume that it will continue to do so in the future.
4. Do you know how much fees you will be charged upfront and on an ongoing basis?
New investors make the mistake of not taking fees and other charges into account when calculating expected returns from an investment. A lot of products look very attractive before deducting all the explicit and hidden fees and charges from the returns.
5. Do you know the tax implications of this investment? Have you considered the net returns after deducting tax?
Just like fees, taxes also play an important role in deciding whether an investment meets your requirements. You should carefully assess whether the investment is tax deductible, and whether the interest, dividends and final returns from the investment are taxable or not.


text:
Twitter Facebook Email To Pinterest
By Mick Peter
Talbot Rice Gallery, University of Edinburgh, UK
Untitled (It's a British Sound), 2008
The Talbot Rice Gallery demands a certain museological spirit from exhibitors. Possibly as a result of such thinking, a single glass table in the middle of the space displayed some papers that related to Alan Michael's work on the walls, prompting an uneasy circularity of possible readings. This large show co-opted numerous visual modes, from Photorealism to some deceptively thorough explorations of British Pop art, over two floors of new paintings and silk-screened canvases. Seen together, they went some way to revealing the complex strategies at the heart of Michael's practice.
A Xerox of a still from Armide (1987) by Jean-Luc Godard was one of the items on the table. It was less about the film's being a response to Jean-Baptiste Lully's 1686 opera of the same name than about Godard's amalgamation of it with a story about French bodybuilders. Michael included a short text next to the image, which elucidated Godard's 'heterosexual ambivalence' towards his homosexual subject matter. Ambivalence, either towards the subject matter itself or in terms of a contradictory history of the subject, is what Michael brought to the methodical surfaces of his paintings and silk-screened images. Another cutting was a magazine page with the legend 'Feel like a woman, wear a dress', accredited to Diane von Furstenberg (creator of current fashion for the wraparound dress). In an interview with the online Huffington Post this year Furstenberg described, somewhat gnomically, the paradox at the heart of what makes something a classic: 'Fashion is mysterious, as a rule. You just hit on something that happens to be timeless and right.' This surface offhandedness or perhaps studied diffidence is something Michael used to draw his references level.
Dragging a 'classic' through history can result in all kinds of incredible combinations. From the swinging original to the rather more sober and safety-conscious update, the Mini has undergone numerous restylings. One anecdote, for example, recalls the bizarre design process that landed the original car with giant door pockets; apparently they were based on the dimensions of the favoured gin of the car's designer, Alexander Issigonis. (As Peter Cook imagined during Derek and Clive Come Again in 1977: 'This officer says to me, your motor's weaving all over the road! I said, what do you expect – I'm pissed out of my head.') Several of Michael's colour text-based paintings, including Pink and White (2008) and Blue and White (2008), used the word 'Mini' as a repeat pattern. The classicism of the original 1960s' font was at odds with the cheeky BMW update of the design that appeared in a hyperreal painting of two parked cars in Cars and Houses (2008).
Contradictory themes were scrupulously pitted against one another in the arrangement of this show. There were so many canvases, demonstrating so many approaches, that their arrangement provided moments of conceptual disclosure as well as concerns of a more formal nature. Some of the most gleefully jarring were the screen-printed works that alternated with the Mini-related canvases on the gallery walls. These works, High Life (2008) and Touch Void (2008) being typical examples, inevitably recalled the work of Robert Rauschenberg, in that they used the silk screen's potential to make repeated images from photographs in monochromatic colours, although the palette for each was limited to co-ordinated 'colourways' and used images of architectural metal structures as repetitive elements. This hotel-room neutrality forced the viewer to dig deep for a point of reference.
The show's odd mixture of 'square' and culturally aware was an effective strategy, by turns disarming and insinuating; it reminded me of American talk-show host Dick Cavett. In one great episode in 1970 Cavett was in friendly joust mode with Marshall McLuhan; both seemed to be playing up their status as cultural observers as they discussed the medium that was transmitting them: television. McLuhan, encouraged by Cavett's faux innocence, concluded by saying, 'The image pours right off the tube into the nerves. It's an inner trip.' For good measure he added, 'The TV viewer is stoned.' A similar mangling of counterculture with the mainstream is what imbues Michael's work with its queasy flitting between dapper 'suit' and imagined suburban lowbrow.
This was a show of works that gently but firmly rebuffed your advances. It was necessary to recall that the Positiva house music label, while having made some good recordings and being the instigation for Michael's ongoing series of paintings on the subject (including It's Positive, from 2008, included here along with some smaller collaged paper versions of the logo on the aforementioned glass table), was also responsible for Reel 2 Real's inexplicable song 'I Like to Move It' (1994). This was another potential chink in the armour of cool source material. But, as with numerous other references, the glass table revealed Michael knew this already. Printed on a sheet of paper were a description and a discography of Positiva. Michael cunningly allows this kind of information to creep in to disrupt and confuse the semantic implacability of his works, steering them away from stylistic pastiche into a curious avenue of their own.
First published in Issue 115
Talbot Rice Gallery
George Segal's Timeless Allegory of Human Discord
Feliciano Centurión's Textiles Enact New Pleasures
The Artificial Skins of Ludovica Carbotta
Trisha Donnelly Sculpts in Four Dimensions
Phung-Tien Phan Unfolds the Many Roles We Play in Life
Gareth Long Revisits the Greatest Cinematic Con Job You've Never Heard Of
The Tender Refuge of Franklin Williams's Woven Self-Portraits
Nan Goldin Pays Homage to Lost Friends
The Coded Languages of Artists Larry Johnson and Asha Schechter
Artist Pat Steir Is Still Challenging the Postwar American Canon
A Strange Trick of Light
Non-Stop-Super-De-Lux: Charlie Godet Thomas at Vitrine
Paul B. Preciado's New Book Longs for a World that May Never Come
The Threat to Freedom of Expression in Japan
I Learned Enormous Things: Hans Ulrich Obrist Remembers Marisa Merz (1931-2019)
Editors' Picks: Our Favourite Art World Holiday Destinations
An Afrofuturism Show With No Black Artists: What Went Wrong at Berlin's Künstlerhaus Bethanien?
Pop Culture Is the Great Educator: An Interview with Peter Saville
'Learning How to Be Queer Again': Remembering Douglas Crimp (1944–2019)
Stories of Finnish Art
Ateneum Art Museum
'Conflicts and Adaptations. Estonian Art of the Soviet Era (1940–1991)'
Art Museum of Estonia
'Touch: Saastamoinen Foundation Art Collection'
EMMA - Espoo Museum of Modern Art
'Bryk & Wirkkala Visible Storage'
'I'm a Believer. Pop Art and Contemporary Art'
Lenbachhaus München
'The Collection'
'I'M NOT A NICE GIRL! Eleanor Antin, Lee Lozano, Adrian Piper, Mierle Laderman Ukeles'
'The Werner Coninx Collection - A Survey'
Aargauer Kunsthaus
Nathalie Djurberg & Hans Berg
Julia Stoschek Collection


"Murder" is a crime story set in an average Polish town in the last months of the 20th century. A policeman Ferenc investigates a murder of 12-years old Daniel, a classmate of his daughter Ania. A local junkie is framed as the killer and the case is officially over, but Ferenc's instinct makes him think he's been misled. He checks a suspect after a suspcet to resolve the case, only to discover something that will change his happy family forever.


text:
Girls Gymnastics Rules Changes Include Value-Adding Clarity, New Elements
By Cody Porter on January 20, 2016 nfhs news
The National Federation of State High School Associations (NFHS) Girls Gymnastics Rules Committee, at its recent meeting in Indianapolis, focused on adding clarity to the rules for a sport ever-adapting to new trends.
Among the new rules that will take effect for the 2016-17 season are ones that will refine scoring and identify how high school gymnasts can incorporate new elements into their routines. The recommended rules changes were subsequently approved by the NFHS Board of Directors.
Several options for series were eliminated to remove value adding from scoring.
"You're awarding extra credit for putting two elements together in a series and that extra credit really is a function of the bonus category, so that's why the committee eliminated a lot of the rule references to series," said Becky Oakes, NFHS director of sports and liaison to the Girls Gymnastics Rules Committee.
An example of this change in Rule 1 is the definition of an acro pass, which now consists of two, not three, "directly connected acro elements." Part of the rationale now also includes language that is tied into other events requiring elements of value.
"This change very concisely eliminates some inconsistency with the wording of value part credit as it currently exists," Oakes said.
Another change was made to Rule 8-3-3c, which impacts the Artistry category where gymnasts are not as likely to perform a routine featuring originality.
"Originality isn't going to be as prevalent in high school. Gymnasts do not need to come up with something unique as part of their exercise," Oakes said. "In revising the expectation for originality, [the committee] tried to make it more realistic for judging high school gymnasts – recognizing athleticism but also recognizing how originality can be better applied for the high school gymnast."
Oakes said the intent for the rule change is to reduce subjectivity in scoring. Rules 9-3-3c, 4-1-2C and 4-1-2D are each impacted by the change, in addition to scoresheets.
The committee introduced several elements in an effort to "keep up with the current trends and elements for high school gymnasts," including No. 6.503, a round-off, flic-flac with a 180-degree turn on – salto forward tucked off (Ivantcheva) 10.0, located in Rule 6-6-6.
Also added was a 0.3 deduction for routines performed on bars and beams that do not finish with a dismount. The new rule, 7-3-6a, counts a deduction when a gymnast intentionally terminates a routine, performs a valueless dismount, falls without starting a dismount, or performs a dismount that fails to result with the gymnast first landing on the bottom of her feet.
"The majority of rule changes were to add clarity to existing rules for more consistent application," Oakes said.
A complete listing of all rules changes will be available on the NFHS website at www.nfhs.org. Click on "Activities & Sports" at the top of the home page, and select "Gymnastics – Girls."
According to the 2014-15 NFHS High School Athletics Participation Survey, 1,550 schools offered girls gymnastics in 2014-15 and 18,557 girls participated nationwide.
Cody Porter
Cody Porter is a graphic arts/communications assistant in the NFHS Publications/Communications Department
NFHS Adopts New Logo as it Leads into Next 100 Years
New Course Available in NFHS Learning Center for Adapted Sports Coach.
"From Chicago to Indy – The First 100 Years" Commemorative Book Now A.
New NFHS Officers, Board Members Elected for 2019-20


text:
Q: sklearn GridSearchCV not using sample_weight in score function I have data with differing weights for each sample. In my application, it is important that these weights are accounted for in estimating the model and comparing alternative models.
I'm using sklearn to estimate models and to compare alternative hyperparameter choices. But this unit test shows that GridSearchCV does not apply sample_weights to estimate scores.
Is there a way to have sklearn use sample_weight to score the models?
Unit test:
from __future__ import division

import numpy as np
from sklearn.datasets import load_iris
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import log_loss
from sklearn.model_selection import GridSearchCV, RepeatedKFold

def grid_cv(X_in, y_in, w_in, cv, max_features_grid, use_weighting):
  out_results = dict()

  for k in max_features_grid:
    clf = RandomForestClassifier(n_estimators=256,
                                 criterion="entropy",
                                 warm_start=False,
                                 n_jobs=-1,
                                 random_state=RANDOM_STATE,
                                 max_features=k)
    for train_ndx, test_ndx in cv.split(X=X_in, y=y_in):
      X_train = X_in[train_ndx, :]
      y_train = y_in[train_ndx]
      w_train = w_in[train_ndx]
      y_test = y[test_ndx]

      clf.fit(X=X_train, y=y_train, sample_weight=w_train)

      y_hat = clf.predict_proba(X=X_in[test_ndx, :])
      if use_weighting:
        w_test = w_in[test_ndx]
        w_i_sum = w_test.sum()
        score = w_i_sum / w_in.sum() * log_loss(y_true=y_test, y_pred=y_hat, sample_weight=w_test)
      else:
        score = log_loss(y_true=y_test, y_pred=y_hat)

      results = out_results.get(k, [])
      results.append(score)
      out_results.update({k: results})

  for k, v in out_results.items():
    if use_weighting:
      mean_score = sum(v)
    else:
      mean_score = np.mean(v)
    out_results.update({k: mean_score})

  best_score = min(out_results.values())
  best_param = min(out_results, key=out_results.get)
  return best_score, best_param

if __name__ == "__main__":
  RANDOM_STATE = 1337
  X, y = load_iris(return_X_y=True)
  sample_weight = np.array([1 + 100 * (i % 25) for i in range(len(X))])
  # sample_weight = np.array([1 for _ in range(len(X))])

  inner_cv = RepeatedKFold(n_splits=3, n_repeats=1, random_state=RANDOM_STATE)

  outer_cv = RepeatedKFold(n_splits=3, n_repeats=1, random_state=RANDOM_STATE)

  rfc = RandomForestClassifier(n_estimators=256,
                               criterion="entropy",
                               warm_start=False,
                               n_jobs=-1,
                               random_state=RANDOM_STATE)
  search_params = {"max_features": [1, 2, 3, 4]}

  fit_params = {"sample_weight": sample_weight}
  my_scorer = make_scorer(log_loss,
               greater_is_better=False,
               needs_proba=True,
               needs_threshold=False)

  grid_clf = GridSearchCV(estimator=rfc,
                          scoring=my_scorer,
                          cv=inner_cv,
                          param_grid=search_params,
                          refit=True,
                          return_train_score=False,
                          iid=False)  # in this usage, the results are the same for `iid=True` and `iid=False`
  grid_clf.fit(X, y, **fit_params)
  print("This is the best out-of-sample score using GridSearchCV: %.6f." % -grid_clf.best_score_)

  msg = """This is the best out-of-sample score %s weighting using grid_cv: %.6f."""
  score_with_weights, param_with_weights = grid_cv(X_in=X,
                                                   y_in=y,
                                                   w_in=sample_weight,
                                                   cv=inner_cv,
                                                   max_features_grid=search_params.get(
                                                     "max_features"),
                                                   use_weighting=True)
  print(msg % ("WITH", score_with_weights))

  score_without_weights, param_without_weights = grid_cv(X_in=X,
                                                         y_in=y,
                                                         w_in=sample_weight,
                                                         cv=inner_cv,
                                                         max_features_grid=search_params.get(
                                                           "max_features"),
                                                         use_weighting=False)
  print(msg % ("WITHOUT", score_without_weights))

Which produces output:
This is the best out-of-sample score using GridSearchCV: 0.135692.
This is the best out-of-sample score WITH weighting using grid_cv: 0.099367.
This is the best out-of-sample score WITHOUT weighting using grid_cv: 0.135692.

Explanation: Since manually computing the loss without weighting produces the same scoring as GridSearchCV, we know that the sample weights are not being used.

A: Currently in sklearn, GridSearchCV(and any classes inherit BaseSearchCV) only allow sample_weight in **fit_params but not using it in scoring, which is not correct, since CV pick the "best estimator" via unweighted score. Notes, when you grid.fit(X, y, sample_weight=w) only use sample weights in fit, not score.
There are two ways to solve this problems:

*

*Handy method: add weight as the first columns in X. write your customized scoring function and transformer in your model.

from sklearn.base import BaseEstimator, TransformerMixin
# customized scorer
def weight_remover_scorer(estimator, X, y):
    y_pred = estimator.predict(X)
    w = X[:,0]
    return your_scorer(y, y_pred, sample_weight=w)

# customized transformer
class WeightRemover(TransformerMixin, BaseEstimator):
    def fit(self, X, y=None, **fit_params):
        return self

    def transform(self, X, y=None, **fit_params):
        return X[:,1:]

# in your main function
if __name__=='__main__':
    pipe = Pipeline([('remove_weight', WeightRemover()),('model',model)])
    params_grid = {'model__'+k:v for k,v in params_grid.items()}
    X = np.c_[train_w, X]
    X_test = np.c_[test_w, X_test]
    grid = GridSearchCV(pipe, params_grid, cv=5, scoring=weight_remover_scorer)
    grid.fit(X, y)

*add features in sklearn class (wait for new upgrade). Just add parameters sample_weight in BaseSearchCV (default is None), safer indexing them in the same way as fit_params = _check_fit_params(X, fit_params).

A: The GridSearchCV takes a scoring as input, which can be callable. You can see the details of how to change the scoring function, and also how to pass your own scoring function here. Here's the relevant piece of code from that page for the sake of completeness:

EDIT: The fit_params is passed only to the fit functions, and not the score functions. If there are parameters which are supposed to be passed to the scorer, they should be passed to the make_scorer. But that still doesn't solve the issue here, since that would mean that the whole sample_weight parameter would be passed to log_loss, whereas only the part which corresponds to y_test at the time of calculating the loss should be passed.
sklearn does NOT support such a thing, but you can hack your way through, using a padas.DataFrame. The good news is, sklearn understands a DataFrame, and keeps it that way. Which means you can exploit the index of a DataFrame as you see in the code here:
  # more code

  X, y = load_iris(return_X_y=True)
  index = ['r%d' % x for x in range(len(y))]
  y_frame = pd.DataFrame(y, index=index)
  sample_weight = np.array([1 + 100 * (i % 25) for i in range(len(X))])
  sample_weight_frame = pd.DataFrame(sample_weight, index=index)

  # more code

  def score_f(y_true, y_pred, sample_weight):
      return log_loss(y_true.values, y_pred,
                      sample_weight=sample_weight.loc[y_true.index.values].values.reshape(-1),
                      normalize=True)

  score_params = {"sample_weight": sample_weight_frame}
  my_scorer = make_scorer(score_f,
                          greater_is_better=False,
                          needs_proba=True,
                          needs_threshold=False,
                          **score_params)

  grid_clf = GridSearchCV(estimator=rfc,
                          scoring=my_scorer,
                          cv=inner_cv,
                          param_grid=search_params,
                          refit=True,
                          return_train_score=False,
                          iid=False)  # in this usage, the results are the same for `iid=True` and `iid=False`
  grid_clf.fit(X, y_frame)

  # more code

As you see, the score_f uses the index of y_true to find which parts of sample_weight to use. For the sake of completeness, here's the whole code:
from __future__ import division

import numpy as np
from sklearn.datasets import load_iris
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import log_loss
from sklearn.model_selection import GridSearchCV, RepeatedKFold
from sklearn.metrics import  make_scorer
import pandas as pd

def grid_cv(X_in, y_in, w_in, cv, max_features_grid, use_weighting):
  out_results = dict()

  for k in max_features_grid:
    clf = RandomForestClassifier(n_estimators=256,
                                 criterion="entropy",
                                 warm_start=False,
                                 n_jobs=1,
                                 random_state=RANDOM_STATE,
                                 max_features=k)
    for train_ndx, test_ndx in cv.split(X=X_in, y=y_in):
      X_train = X_in[train_ndx, :]
      y_train = y_in[train_ndx]
      w_train = w_in[train_ndx]
      y_test = y_in[test_ndx]

      clf.fit(X=X_train, y=y_train, sample_weight=w_train)

      y_hat = clf.predict_proba(X=X_in[test_ndx, :])
      if use_weighting:
        w_test = w_in[test_ndx]
        w_i_sum = w_test.sum()
        score = w_i_sum / w_in.sum() * log_loss(y_true=y_test, y_pred=y_hat, sample_weight=w_test)
      else:
        score = log_loss(y_true=y_test, y_pred=y_hat)

      results = out_results.get(k, [])
      results.append(score)
      out_results.update({k: results})

  for k, v in out_results.items():
    if use_weighting:
      mean_score = sum(v)
    else:
      mean_score = np.mean(v)
    out_results.update({k: mean_score})

  best_score = min(out_results.values())
  best_param = min(out_results, key=out_results.get)
  return best_score, best_param

#if __name__ == "__main__":
if True:
  RANDOM_STATE = 1337
  X, y = load_iris(return_X_y=True)
  index = ['r%d' % x for x in range(len(y))]
  y_frame = pd.DataFrame(y, index=index)
  sample_weight = np.array([1 + 100 * (i % 25) for i in range(len(X))])
  sample_weight_frame = pd.DataFrame(sample_weight, index=index)
  # sample_weight = np.array([1 for _ in range(len(X))])

  inner_cv = RepeatedKFold(n_splits=3, n_repeats=1, random_state=RANDOM_STATE)

  outer_cv = RepeatedKFold(n_splits=3, n_repeats=1, random_state=RANDOM_STATE)

  rfc = RandomForestClassifier(n_estimators=256,
                               criterion="entropy",
                               warm_start=False,
                               n_jobs=1,
                               random_state=RANDOM_STATE)
  search_params = {"max_features": [1, 2, 3, 4]}

  def score_f(y_true, y_pred, sample_weight):
      return log_loss(y_true.values, y_pred,
                      sample_weight=sample_weight.loc[y_true.index.values].values.reshape(-1),
                      normalize=True)

  score_params = {"sample_weight": sample_weight_frame}
  my_scorer = make_scorer(score_f,
                          greater_is_better=False,
                          needs_proba=True,
                          needs_threshold=False,
                          **score_params)

  grid_clf = GridSearchCV(estimator=rfc,
                          scoring=my_scorer,
                          cv=inner_cv,
                          param_grid=search_params,
                          refit=True,
                          return_train_score=False,
                          iid=False)  # in this usage, the results are the same for `iid=True` and `iid=False`
  grid_clf.fit(X, y_frame)
  print("This is the best out-of-sample score using GridSearchCV: %.6f." % -grid_clf.best_score_)

  msg = """This is the best out-of-sample score %s weighting using grid_cv: %.6f."""
  score_with_weights, param_with_weights = grid_cv(X_in=X,
                                                   y_in=y,
                                                   w_in=sample_weight,
                                                   cv=inner_cv,
                                                   max_features_grid=search_params.get(
                                                     "max_features"),
                                                   use_weighting=True)
  print(msg % ("WITH", score_with_weights))

  score_without_weights, param_without_weights = grid_cv(X_in=X,
                                                         y_in=y,
                                                         w_in=sample_weight,
                                                         cv=inner_cv,
                                                         max_features_grid=search_params.get(
                                                           "max_features"),
                                                         use_weighting=False)
  print(msg % ("WITHOUT", score_without_weights))

The output of the code is then:
This is the best out-of-sample score using GridSearchCV: 0.095439.
This is the best out-of-sample score WITH weighting using grid_cv: 0.099367.
This is the best out-of-sample score WITHOUT weighting using grid_cv: 0.135692.

EDIT 2: as the comment bellow says:

the difference in my score and the sklearn score using this solution
  originates in the way that I was computing a weighted average of
  scores. If you omit the weighted average portion of the code, the two
  outputs match to machine precision.

A: Just pointing out that there is an ongoing effort to support this important feature: https://github.com/scikit-learn/scikit-learn/pull/13432
But it seems that because of backward compatibility issues and the desire to tackle the more general problem of passing arbitrary sample related information it is taking a bit too long. The last attempt seems to be: https://github.com/scikit-learn/scikit-learn/pull/16079
Here is a good review of the issue: http://deaktator.github.io/2019/03/10/the-error-in-the-comparator/


Whenever NICE begins to develop a piece of guidance on whether or not a certain drug or other intervention should be provided by the NHS, a key part of the process is to invite stakeholders to have their say. These stakeholders include the manufacturers of the drug, patient groups, carer groups, professional groups, as well as the people who pay the bill – in this case the PCTs.
PCTs have a pre-defined budget to buy in all the health services that are needed for the population they serve – everything from basic quiting smoking programmes to very expensive high-tech intensive care. When NICE says that a drug must be funded, each PCT then has to find the money from within its existing budget- which usually means that it has to make knock-on reductions in services and drugs that NICE hasn't looked at or ruled on. So it's important that PCTs get around the table early on in the NICE process to discuss their population-level perspectives. After all, that's why PCTs exist – to purchase the right mix of drugs and services to meet their population's needs.
Up until now PCTs have not on the whole "taken up their seat" in this consultation process. It's understandable why - they have a lot on their plate and the NICE process can be quite demanding: to be heard in the NICE Guidance process, a PCT must submit certain inputs within very specific (and sometimes short) timelines, and, quite rightly, PCT responses must be precise and accurate. It was evident that PCTs needed support.
A collaboration between Bazian and Solutions for Public Health (an independent NHS agency hosted by NHS Milton Keynes) established the Commissioning Support Appraisals Service (CSAS) to help ensure that PCTs can be active and effective consultees to the NICE Technology Appraisal Guidance (TAG) process.
Bazian's role in the collaboration is to provide, within short time frames, a range of clearly understood and usable deliverables and templates that can be easily and appropriately be used by PCTs when responding to NICE consultation documents.
Draft scope critiques and rapid evidence reviews are two examples of the deliverables Bazian provide to PCTs at key steps in the consultation process. The support provided for PCTs ensures that they have an independent and understandable assessment of the evidence in order for them to better engage with NICE to encourage higher quality guidelines and ultimately better health outcomes for their populations.
Before CSAS, PCT consultation in the NICE appraisal process was, well, pretty much negligible (If we're being precise, PCTs consulted/engaged in the scoping stage in only 1 out of 90 technology appraisals published between October 2007 and April 2009). Since CSAS came on the scene, there has been an average response rate of 23%, with an increasing trend too – PCT consultees for the most recent "wave" of technology appraisals responded over 40% of the time. There's a way to go, but progress is good.


Totally a swanky, fashionable place with a conscience for style and whats trending. I like the layout of the store too, and the staff were so helpful and friendly... particularly a gregarious young lady named Jessica was a delight. Will definitely be returning (when I have the time)- also awesome location, right in southend off east Blvd!
Best boutique in Charlotte! Love Barone who is extra friendly and helpful. Great mens and womens clothing which is affordably priced. Cool gifts for your friends and family too!
Fantastic. Really great stuff! Great staff.
My wife and I do business with Revolution. We shop there and love it. Great buying experience and they will point you in the right direction when buying the best designer clothing and accessories. Barone and all the ladies that work there are great people. Definitely a place to check out if you live or are visiting Charlotte.


Mississippi River cruises will soon be available to North American who want something different than the usual Alaskan or Caribbean cruises. A European cruise company called Viking Cruises is planning to send passengers on their "long boats" from its U.S. home port in New Orleans by at least late 2017.
In a related report by the Inquisitr, it's fully possible to retire on a cruise ship and live your senior retirement years idling away in the warmth of the Caribbean sea. The interesting part is that a cruise ship retirement could potentially be less expensive than other options like assisted living and hospice care.
If you picture the idea of Mississippi River cruises involving long boats, the first thing that probably comes to mind is the rugged wooden boats used by the historical Vikings. The fact that these cruise ships are indeed long and narrow about ends the comparison with the ships of yore, since these 413-foot long boats will carry about 300 passengers on a luxury cruise up and down the Mississippi.
Depending on the season, Viking's Mississippi River cruises will feature stops in St. James, East Baton Rouge, and West Feliciana in Louisiana, only to continue upriver to Memphis, Tennessee, St. Louis, and St. Paul, Minnesota. According to USA Today, the first of Viking's Mississippi River cruises will set sail in 2017, but the company plans on constructing a total of six Mississippi cruise ships by the year 2020 at a cost of $90 to $100 million a piece.
Viking's Mississippi River cruises are also expected to benefit the local economies of any ports of call.
"What we've seen in other areas around the world, once a cruise line comes in like this, just the notoriety, the awareness, the enhancement image and popularity for a destination is elevated multi-times. So it's a great opportunity for our community," said Visit St. Paul President and CEO Terry Mattson, according to KTTC.
Executive Director of Red Wing Port Authority Randy Olson says it will be exciting times during the Mississippi cruise set for between July and October each year.
"We're just very, very excited about the opportunity to host them. We feel that our riverboat experience has always been positive and we're looking forward to serving a new set of customers," said Olson.
Would you try one of Viking's Mississippi River cruises over a Caribbean cruise if you had a choice?