We know that colon cancer is a condition that can be prevented, and if we systematically and effectively screen for these pre-cancerous polyps, removing them, we can prevent colon cancer. TR is the singular exceptional driving force behind our success. Colorado cancer is the second leading cause of cancer death among men and women, both nationally and within Kaiser Permanente. Before we started, the screening program consisted of flexible sigmoidoscopy, primarily by referral from primary care doctors. TR's challenge was to try to figure out a way to reach all our members as quickly as possible with a screening modality that worked for everybody. In 2004, he was named the clinical lead for screening for colon cancer and looked around and realized in England they were starting a program of home screening. So we had kind of a framework for how to do the work. The laboratory medicine people got wind of this very early and said we absolutely need a test that's automated that can be run on large volumes, you know, repeatedly and reliably. And then we worked with the vendor and we had to do a lot of improvement on that. There was the outreach effort, which was the mailings and trying to reach as many members as we could that were initially at the age of 60 to 69 and then we broadened it to 50 to 75. We gradually expanded the population. In 2007, we were mailing out to the entire region. People are scared of screening. They don't want to have to come in. And with the FitKid, it's mail to your house. It's easy to do. It's not intimidating. We leveraged the electronic record. That's how we identify who's due every year for screening. We leverage our integrated model. So primary care and specialty care and laboratory services, we're all working together. Quality and operation support is providing oversight. Technology group has built Prompt, which has been a huge plus for us in terms of letting everyone know where people are on the screening. In addition to being sent the kits, they receive a series of reminders. The reminders are done by mail, by telephone. With a reminder to please return your FitKid that screens for colon cancer. When they go to the doctor's office, their medical assistant or the physician themselves will remind them, do your kit. We mail out about 15,000 FitKids every week. The lab process is between 3,000 and 5,000 FitKids a day. We moved our screening rates from 35% to almost 80%. What's most astounding with respect to this work is that we've reduced the incidence of colon cancer by about 25%. So as physicians, we're lucky if we can say we've saved a life here, a life there. I think equally and can accurately say that Dr. Levin has saved hundreds, if not thousands of lives, by diagnosing colon cancer early. I was coming to Kaiser Permanente on October of 2016 to get my flu shot. The lady that was behind the counter, she noticed that I just turned 50, so she offered me to do the fit test because it would be an easy thing to do at home. I got the FitKid on the mail and I did the test and it was very simple to do it and I mailed it out to Kaiser Permanente. The test was positive and I had to call in and go in for a colonoscopy. And that's when I met Dr. Levin because he was the one who performed the colonoscopy. You know, within a couple of seconds of starting his procedure, lo and behold there was a cancer right in the lower part of his colon. It's truly groundbreaking and fits with our mission of preventative care at Kaiser Permanente. And I'm glad that something so simple can make such a big difference in somebody's life. I'm hopeful he's going to do the same thing for more people. Thanks to Dr. Levin and Kaiser Permanente, we can attack the problem before it becomes uncurable. Thanks to the test, I'm doing great. I'm living a normal life with my wife, my kids, and I'm going to be able to grow all with my wife and see my kids grow. I owe my life to the test.


What are your views on Fixed Odds betting terminals? The Scottish Parliament's Local Government and Regeneration Committee is carrying out an inquiry into proposals which would decide how many of these machines, also known as touchscreen roulette machines, are allowed on new betting premises. Fixed Odds betting terminals are one of the proposed devolved areas coming through the Smith Commission and the Scotland Bill 2015. As such it's incumbent that we get as much information from stakeholders as to how this may affect the Scottish situation. What we do know is that there has been suggestions that what was suggested in Smith doesn't go far enough. The Scottish Government have come up with some alternative proposals that may come through following the full devolved powers. What's important is that the Committee examine this proposal and get as much information from the stakeholders as possible to ensure that we have the best way forward for Scotland. The Committee would like to know have you played Fixed Odds betting terminals or do you work in a place which has them? Tell us about your experience. How would you like to see Fixed Odds betting terminals controlled in your community? For example, should machines on other premises such as dog tracks be controlled? Should control also apply to existing premises? You can find out more about the inquiry online and you can contact the Local Government and Regeneration Committee with your views by email or by post. Submissions must be received by 5 o'clock on Friday, August the 28th.


everyone okay so next talk is machine learning technique for building a large scale production ready prediction system using Python by Arthi and Arthi is a senior architect in in the CTO office of Wipro technologies she has a be from UVC OE Bangalore and MBA from IM Bangalore just to give a brief basically I think he's just covered it I think I've it was six months back so I think since of then I moved to a new group which is the cognitive automation team of at Wipro and yeah basically in areas of interest machine learning semantics natural language processing automation and likes coding in Python so what's the agenda for today the talk basically at the end of this talk I hope basically that whoever comes here like maybe for somebody who's very advanced it could be a repeat but at the end of this session I would like everybody to go and be able to create a classifier on their own using Python that would be the at least my objective and people have achieved that that would be I would be happy what are we trying to do so we just step one step back when we say classifier what are we trying to do so basically today in today's world we are actually there's a lot of data coming up from all sources you have you know Twitter feeds you have you know news articles your Facebook everything just keeping on coming how do I actually be able to only see what is relevant to me actually so in the such a big world when you know there is so much happening it's very difficult for me to actually scan all that and say okay this is relevant you know I will read it but is there a way which you know the machine can automatically tell me really this what was relevant to you it would find out and then send those things to me so specifically the focus here would be you know where you know things which are there in the free unstructured text so that is the context here where we're talking about there's a lot of text coming on and for example the one example could be the news articles itself where in there is so much news how do I actually be able to tell that you know when there's so much news which of this news is relevant for me actually that would be one scenario where this could be applied the other scenario basically is that in fact this this scenario is more closer because this is something which we have actually implemented in our company wherein wherein there is a problems people are facing a lot of problems and traditionally when people have problems they used to actually go through this huge menu-driven interface actually so when I say problems I'm talking about you know in an enterprise kind of scenario where people could face you know ample coming of problems it could be just a problem with my laptop it could be an infra problem wherein you know I mean I'm just feeling too cold or you know the restrooms are not clean or it could be a problem with my payroll so we're talking about so many different kinds of problems so many different kinds of you know separate functions which are actually organized you know going to actually solve this problem for me so typically while solving such problems what at least we used to do about a year and a half back is that people have to go to the system figure out okay where in this huge set of you know lot of drop-downs it should be like you know at least 10 to 20 levels over there and they had to figure out where in those levels is the right category for them they would go select that category enter the problem statement and basically the system will actually then go and assign to some agent which is there in that particular team the issue with this kind of approach was basically people did not really know where who against which group they had to actually raise this problem because most people are not aware looking up in a you know a restroom problem has to be you know probably you know done by group a while you know another problem payroll is by a group B so what used to happen is that these kind of problems used to each of these problems used to go and log on to different buckets actually so before actually it finally reached the right resolver it has to go through multiple circuits wherein there was a lot of you know delay and a lot of worry for the end user because they had to be a lot you know answering calls from multiple agents and each time they'll say okay sorry but I can't solve a problem and they would reassign to some other team so at the end of this thing is that we could can we develop a system wherein a person just states his problem you know a single you know line English saying that okay this is my problem and you know the system just automatically goes and assigns it to the right person in the right category so this is what we could do assuming that we could build such a system so basically that summarizing what we said we are trying to do an automatic classification of text and you know just we just talked about few examples where this you know this kind of thing would be helpful for us so now that we know what we're trying to solve what do we do where do you start from to build such a system the first step is the availability of lot of historical data you know when you say the term corpus is nothing but you know for people who are not familiar it is a huge list of data wherein every data line item would be rightly classified to a right bucket so for example if it was a news articles each news article could be correctly tagged you know is it a baseball article or hockey article or if it's a problem ticket then that particular problem ticket would be tied to you know is it an you know is it a payroll issue or is it a facilities issue what kind of issues this so this is the base premise wherein if I have to build such a system I need to have a large corpora wherein I have a lot of these kind of problem prior problem statements which are correctly tied so this would be my first premise fortunately for us you know even to experiment there are also such data already available and there's a very popular 20 news group set I think many people might have already seen this wherein you could actually go to such a thing and you could download it and you know quickly go and implement such a system so this 20 news groups the data just to quickly show you how it would look it's once you download it basically you would actually see that basically there it's automatically split into around 20 teams like you have hockey you have baseball you have you know hardware softwares there's so many categories actually and if you see each of these directories have actually a list of articles and in our case each article would be a training item for us and the directory name would be the training category for this so this is your one sample set and just to see how it would look we could actually see one sample one sample article how it could possibly look actually so this is one article so you could see that there is some sort of large text over there which is a news article on that particular category so this is how the data was looking for that particular case so now coming back to our presentation so so as I said now we're trying to classify text and we actually have this huge corpus as a prerequisite and we actually are talking about the 20 news groups as a possible sample set now we come assuming that now we have the data next is the actual solution itself to build such a solution basically you need these major blocks actually the first basically the first first block is the preprocessing block when a lot of data and you know data kind of activity data cleansing and you know all the data related activities would happen preprocessing followed by the natural language processing wherein you would process this text in a way that the system would understand then would be the actual model building and once a modern is built your training model is ready then you could actually start using the system in real real use and in real real thing when you start using in real time the same the process is similar a person would enter this problem statement it would be processed through the nlp process proc and then the predictor would actually predict that particular thing into the right category so if you see these are the high level block diagram of of such a system so how what is the prerequisite to build such a system to build such a system there is the sklearn the sklearn is a well ski kit learn of python is a very good library and you could actually potentially it has like a host of algorithms and complete support to build such a system within the sklearn library itself so this is what we used and now going into each of the steps in detail so as i said the first is the preprocessing wherein there is a lot of data related challenges in building such a system again this is a very intense activity in its own so i'm not going to go too much in detail we need to actually go separate lecture to understand each how that could be handled but i'll just touch up on this section wherein the typical data challenges which you could phase are you know the data is the uncle very unclean when i say unclean what i mean to say is that the data itself the text would have a lot of a non non value added terms so for example there could be names there could be phone numbers which as such does not add any meaning to that particular thing so the same name could appear in you know all the different classes so such terms would pull down the quality of the classifier the accuracy of the classifier so we need to do you know things like the named entity recognition to you know identify such things and remove tag those items and remove all these non non value added kind terms so that would be the unclean data the second basically is the wrongly labeled data here what i'm saying is that there could be a ticket which actually belongs to say category a but it's tied to something else for example i could have a payroll ticket which is you know probably classified as you know for all you know maybe a you know facility ticket for some reason because the agent was just too lazy to close it in the right category or some system error so if i have such data then again the system is going to wrongly learn because all it knows is you know what it sees so these kind of wrongly labeled data is going to cause a lot of issues in the accuracy of the classification the third kind of problem would be would be the unbalanced data so when i say the unbalanced data typically when you have huge set of classes there could be certain classes which have you know lot of you know training items like there could be thousands of training samples for certain classes and then there could be certain classes with maybe only five or ten classes ten items how do you handle with you know this kind of thing because typically in this kind of case the those classes with very large number of data set would typically totally you know take over the smaller classes so you know smaller classes would never get predicted so this is a very acute problem in the real life which we faced and the fourth was the large number of classes wherein there are so many classes you know like in our case i think it was like more than 4,000 to 5,000 classes were there how do you actually you know handle with so many so many classes so these could be the typical data related challenges which we could face in a real life while building such a system so how do you you know think so again i said this is each of these is a separate topic on its own but i'll just touch upon it the first is eliminating the less informative records so can i find out by some automated techniques saying which are which are the tickets or which are the records which add value and which are the training records which don't add value so if i do that kind of thing i could figure out you know things which don't add any value to i could automatically drop it so this is one way where i could you know eliminate the less informative records the second is i could use active learning when what i could say is i will take a very small corpus which i would manually you know ensure that it is very clean and i will use that corpus for every class probably i'll take 25 or 50 tickets as the 50 year records as the base and from that basically i would use a technique like a k nearest neighbor to expand into the other training records to see whichever are new to a particular class i would add it to that class so i could use this kind of active learning technique to actually you know increase my training data set the third would be the random oversampling this of course did not work that well for us but it could be tried wherein for the ticket for the classes which have very less data can i randomly over sample it and you know try to duplicate certain records so this could be one possible way to you know ensure that more tickets or more records are available for the classes with less data and finally merging of similar classes so there were a lot of as i said when there are too many classes many of these classes may not have may not even make sense standing in isolation so is there a way i can automatically find out which are those classes nearest to and merge similar classes so this is something we could do to reduce the number of classes from the original size so now that assuming that we have done the complete cleanup and we have a comparatively cleaner day set the next big thing is that now we get the we have to greed this data into our system so for this basically you could use basically things i'll just quickly show you the ipython notebook so which for this so what you hear you're seeing is the first of course is the import all the dependent libraries are imported and in the second section we are actually doing the task of reading the data so in our case already there was a pre-existing library for reading in for the 20 news group article itself which is the fetch 20 news groups which we use to read in these data sets into the into the python code and of course we could do it for any other thing so just to show how if you have your own data how you could do it i'll just show you a small snippet of code of how it could be done for your own data set so all you do is assuming that you have a csv file wherein your one your description would be your training set and then your classes would be the category to which it is classified i could just read use the csv dick reader to read this training data into my code and at the end of it basically you will have you know two lists basically so all you need is a set of two lists wherein one list would hold you with your entire set of the training data itself and the second list would actually hold the the classes corresponding to the the data so that is all which is required so this is how it looks like at the end of this once you read it you will see a list of each each item in that list is basically a training set and each thing in the other second list is basically the class which that particular training set belongs to so this is just to show how you could read your own data into the into your python environment so once this is done the next step is basically you have ingested the data now and also as you ingest you would split the data into training and test sets so typically it would be something like in the 70 30 or an 80 20 split wherein you could actually take 80 percent of your records to for your training and probably your 20 percent goes for your testing and you could actually if you're using the csv dick reader method you could do something like a random shuffling to ensure that you know the records are don't follow any pattern and then you actually do the split so this is the interesting data step so now actually we have cleaned the data now ingested the data and the next major step is the natural language processing so for the code to understand your thing it you know it has to actually come come in a format which you know it can understand so for that we need to do something called the vectorization which is we would apply the tfidf vectorization which is the term frequency in inverse document frequency vectorization so basically this is nothing the term looks you know it looks big but it's nothing but it actually weights every if there are like you know every unique token or every unique word it would actually weight how many times actually appears in a particular document and divided by how many times it appears across all documents so this will actually give a weight so at the end of this tfidf process what you would have it's like you know just for your visualization of course it shows it in a different sparse matrix format but for your visualization you could actually have a very huge you know an umpire kind of thing wherein all your columns would be your different words and your rows would be your each training sample so for every training sample it would actually get what was that weight for that particular word so this would be the output of this tfidf step and as i said it would be a if you see in that thing it would be very huge because typically your number of unique terms in a document especially if your copy you know if your training set is very large it would be very huge actually and so forth and then also it'll be very sparse because even though there are so many terms across those documents for a particular document or for a particular training item there will be only some of those tokens which appear so only some of them would be actually having weights and most of them would be zeros actually so to ensure that thing we have to use a sparse matrix kind of format to store that data so that is the vectorization part of it and so again here nothing to worry the entire thing is available all you have to do is call the tfidf vectorizer which is available in sklearn and it again has a lot of very good parameters to play around with and i'll just touch up on few of the parameters which you could play around with with you know the tfidf vectorizer so one basically is that how do you handle decode errors so you could actually tell you know you could actually say that you know you can ignore it or you could replace it or you know you're very strict about it so you could set that you know so if there are any special characters appearing in your in your training set you could actually automatically handle it using this flag the second is the n gram range so this is to ensure that term see when i was talking about terms so you don't have to only look at single terms you can also look at biograms trigrams you know four grams just to give an example a term like a big and a data you know could be in isolation but it also has a lot of meaning together where you know people are nowadays talking about big data you know or people are talking about i don't know barak obama so these things are actually coming together so it makes more sense to take these as grams you know connected together and so basically you could set what are the grams you're interested in so you could actually tell the gram range from you know a min gram you know to a maximum saying that probably i'm interested from one to five or you know one to seven so this is something which could be configured as part of the tfidf initialization process the third is the stock words parameter if you set this parameter it will automatically remove all these noise words or the stock words of english from that system so that is the stock words parameter if there's one more called the lower case wherein you if you set it basically it will automatically convert the entire thing into lower case so that if two tokens are just you know varying by case they would still be considered as one so again these are just few of the parameters if you actually check the tfidf api itself you know i think there are like host of other very useful parameters which could you could use to you know clear on with the api so once you've done the vectorization now as i said this is a very huge matrix which you're getting out there so can i do something to compress it so there is a there is a one thing called the select k best which using which you could compress it the select k best api itself accepts a lot of different kind of functions and we specifically use the chi-square the chi-2 which is nothing but the chi-square test and what that would do is it will ensure that you know it will only retain those features which are rarely correlated for that class so all the features which are not that correlated would be dropped off and this would ensure a good compression of the feature set so this is something which we actually applied so coming back to the the code itself how this would look now we could actually have a quick look at the code actually so now as you said now we have we have done the cleaning we have read the data into the into your python code and then this is where actually do your actual vectorization when the first step in vectorization is initialize the vectorizer itself with the parameters which you are interested in followed by basically you do the fit transform so this is when basically you would fit that particular vectorizer to the particular training set and the output would be sparse the sparse array which I was talking about and this would be followed by the actually the you know the you do the same process for the both the training and the testing so you transform the testing also and then you would actually do the compression using the cellet k best this is the piece of code which you see here over there and if you see just for our interest like no and also actually done something like no to an inverse printing of the terms just for our understanding I just took one any one sample in to figure out what is actually getting stored in that and if you see basically the extrane is nothing but an array which actually is talking about 11,314 training records and it's it has got one one lakh 1,320 you know unique tokens in that and also when you do an inverse transform these are the kind of terms which were there is part of a particular you know record in that transform so this is how it would look as part of the as post your actually vectorization and your tf idf transformation which has been applied so once so once you've done basically the compression you know vectorization now comes to the core which is the classifier so now you can actually get in the core of building the classifier so here again skeket learn is has a huge set of algorithms which you could choose from and you know and we did a lot of experimentation across different kind of things and in the end we actually stuck with rich classifier because we found that of all the thing that gave us the best performance and what I understand by reading it is rich classifier works more better than the high dimensional spaces because the way it actually does the separation planes ensures that it doesn't overfit the data so this is what we understood and that is we felt okay that is why it probably it's doing much better compared to the other algorithms so so so the next step as I said is you shortlist which classifier interested in you would again follow the same step of initializing the classifier with you know the parameters for the classifier and then you fit the classifier to the particular training data so this is basically how it is and if you go back to the code quickly go back to the code and see how it looks so it's very simple as simple as you know the classifier you know initializing it to you know with the specific terms and again it this classifier in turn has a lot of good parameters you can actually set you know different weights for different classes and there are a lot of things you could do and then you can actually you know vary the solver use so those flexibility is available and the only difference between changing so if I want to go to some other algorithm all I have to do is just change that one line of code so I just replace rich classifier with probably you know whatever I want SVM or which were native base whichever I feel I just have to replace that one line and the rest of the code which still work you know with the same workflow so all I do I create the first classifier and then I would fit that classifier to my particular train training data so here if you see this is the processed x-train which is opposite vectorization as well as the compression and the y-train would be the labels associated with each of those training sets so this at the end of this basically you would have a trained classifier so once you've actually completed the training process the next step is the actual prediction process which again very simple because it's just one line you use the same classifier which has been previously trained and then you would just run a predict on the transformed test set so this is what you do and what the output the pred output actually would be the list of class labels predicted for each of those items on your training on your test list so that was what pred would be and so basically now what we have done is we have actually created the you know trained the classifier and then and then we have completed the prediction and now comes to the very heart of the system which is evaluating the system because just by training and predicting okay we are happy but how do we know it has done well enough so again we don't have to do much here because there are very well established APIs here so if you see typically there is something called the precision and recall and then there's a combination of both which is called the f score so if I can actually get the f score of the system and I have a benchmark of my f score so supposing I say I'm happy with say 75 percent and above f score that is my benchmark all I have to do is run this particular thing and figure out what is the f score of this system and if it tells it's good enough then I'm I'm good to go actually so just coming back to the code for this piece of thing so if you see here all you have to do this is a matrix called f1 score and you just give basically what is the actual value in your test set and what is the predicted value corresponding to that if you actually pass these two lists to that f score it will actually tell how good it has actually and if you see in this case it's around 69 percent of course we have not done any cleaning just you know raw we have just done applied what is available and there is also one more very wonderful thing called the classification report so beyond the f score the classification report what is that is basically is that it gives for every class level what is what is the f score so what is advantage here is that there could be certain classes which are not doing so well and certain classes which are doing well so this would give me a trigger saying that okay for a class like you know the first one which is that alt alt tsm it is doing unit 56 percent so I need to put a lot of effort on that you know to clean it and you know focus on that but whereas a class like you know say comp windows x which is that 82 percent precision okay seems comparatively okay to me so if I run this classification report it will tell me to which classes I need to put more effort I need to do some cleaning preprocessing or probably even eliminate it if it is very bad and this will actually give me that kind of control so basically now as you have seen we have actually done we have actually come to the end of the step and we have completed the evaluation of the training the training set the the complete system so so what do we do next actually the whole idea is that once you evaluate the system you actually start this is when actually you do your iterations so what this means is that you keep on iterating till you reach your f score your precision and recall like so for example when we first built our system we were actually not even at 60 or 65 percent and a lot of effort actually went and fine tuning the you know the parameters and you know cleaning the data eliminating the classes maybe asking for more data all that effort so basically coming up here is just you know not even one you know 20 percent of a job after this the hard work starts wherein you get into the data and you start tuning it and you know doing whatever is in your thing like you know maybe parameter you know you actually value you know vary the parameter or you know do all those four different data cleansing techniques which we did so at each level we actually try the maybe even vary the algorithms so in fact here we have talked about only a single thing but what we did in practice was an ensembling of algorithms so we didn't use one but we used a combination of three or four different algorithms combined it together and then actually you know got the final output but that is not something which we talked about here but so these are the things which you would actually try and keep on iterating till you reach that f score of you know which is you know comfortable enough for you so as you know everything is good you'll have a very good classifier then comes the actual the challenge of how do you do the deployment so also basically things are working fine everything is running but here you're actually talking about a very single system but how do you do a large-scale deployment so for this basically what we did was we used basically you know these are like a horizontally scalable system so we used multiple instances of the same the python what endpoint we developed and horizontally scaled this out and used a load balancer so what this ensured is that when a new request comes so basically for our live deployment we had about more than thousands of requests in parallel because this was for our entire organization which I think more than lack of people across the globe and we used a load balancing system and that actually ensured that basically that at a no point of time any particular system was you know overloaded and even if some system is down automatically the request request will not be directed to that so this ensured the large-scale horizontal scalability for us and of course sizing the instances to ensure that you know the number of parallel instances are in a sufficient and then you know with enough backup so just as I you know initially told we have used it in our internal system for building a single line interface for entire raising all the problems tickets in our organization and where the system would automatically classify it and what did we see we saw almost a very good performance 50 percent reassignment index improvement and 100 percent months we saved in effort because the lack because of this this entire thing of redirecting was actually reduced and this saved almost 100 percent months of effort in just three months and we actually managed to make a first complete production release in under three months actually so this is something which was like something really good and basically what we have concluded is that I think python has got very excellent libraries for handling machine learning problems and it can be considered for live production use so this is a very this is something which is in production right now and we are able to achieve the needed scalability and performance required using python and the language itself as all of you know you know is it is very easy to learn and you know we can write maintainable code so with that actually I come to my end of the clock thank you all for all your time and of course thank you for python you know the wonderful community itself you know for giving such wonderful libraries so that everybody could work on it so we can start with the question on session is it what is the frequency of getting the updation of those three if any yes so right now basically it is a trained models we are not actually doing the automatic learning back that is something which is in progress right now where we're trying to do the automatic learn back at regular intervals to automatically build those models next question hi this is Shashank here I have two questions actually one is how do you smartly choose the f score threshold and the other one is how do you iterate smartly so that you know you're just not doing anything randomly right so I think the f score is something based on your tolerance like for example when when we did the POC itself as soon as this problem came to us first we did the person we told up front that okay this is something we're seeing only 60 percent how much ever we do we will not see more than you know 75 to 80 percent you know in the in the short timelines you'll see and that is something the you know the entire group as a collective collectively said that yes this makes sense because even at 80 percent accuracy this is at a much better but much better thing than rather manual wherein we're actually facing you know much lower accuracy levels so it's some call which is a business decision could you explain a bit more what exactly 60 percent f score mean yes so basically there is two things such as the precision and the recall so the precision is basically how accurate whatever it is like if something is very accurate so there are two parameters one is that how accurate it is and second is assuming that there is something in the data set right how well it is able to pick it out so these are the two things actually so it's actually a combination of your false positives and true positives so this is a combination and if you actually of course it's a well defined algorithm basically so when you use the combination of these two and do the logarithmic combination of these precision and recall you would be able to get the score for evaluating of these systems so we have actually just used this this matrix itself wherein like we've just seen the score beyond that how we evaluated the system was basically on the performance itself because it's something which is live so we actually had a problem in fact we actually used an ensemble of almost four or five algorithms and then there was a problem of you know it was taking like more than a threshold of almost a minute or something then we had to go and drop a certain of these items in the ensemble so for us the response time was very important and of course the accuracy was very important so this is how we evaluated but I think there might be other more standards which we have not looked into it yet hello ma'am I have a question so basically we also did the production deployment of with the same APIs the one of the major issues like you know the what we face is you know if we want to if our training site is pretty huge then you know making the system live will take a lot of time so to save that what are the things that you are doing what we did is like you know take like do the computation and put it in the RPC and whenever we change the algorithms or any API changes we just you know the same API RPC calls have been used so that you know the re-running the system getting live is in few milliseconds rather than you know taking it minutes or something so what kind of things that you did in your system one good thing for us is basically we already have a running model so this is not something like life or death so all we did was we had to actually build this only in the off-peak hours so there was already running and we just had to once the model is built as such you know deployment takes very less time so the model building takes in a different thing and we could just push the deployed model and the downtime is very less for us so that was one thing as such for the running itself in live we had a phase the problem you could do something like a batch learning which again SK the skeet get learned supports wherein you could actually do a batch wise and you know iteratively learn the model itself so is there any performance degradation on the batch learning because i see there is a performance degradation from for our case but is it happened to you i we have not faced that actually we have not faced that okay cool yeah thanks hello uh mike how do you iterate smartly you did not answer that one uh iterate sorry can you do the whole context yeah so you said that most of your time goes into how do you trace money is that so again that again see you go through all the things and then you figure out as i said the business business call wherein you are at 80 percent are you happy so what is that number you are happy with and comfortable to go live so till you reach that comfort number you have to keep on iterating and where do you put your efforts on as i said that uh the detail class wise thing will be where you put your effort on because you know which classes are doing badly so as you know you can actually directly go to those classes do your cleanup do your merging and more effort can be spent on those classes itself and that could be one thing and of course you can actually play around with the algorithm itself so wherein you can actually change can you change some other you know use some other algorithm is something you could play around with hello ma'am ma'am uh ma where are you hello my question is uh whenever you retrain your training corpus retain your classifier so uh do you retrain your classifier means how you deploy that means uh whenever you uh there is a classifier uh in the in prod and we want to retrain it so how do you do that right so basically our training system is completely different we have a training training you know training infra which is separate and then we have something called the one click deployment so basically what we do is that the training once it is done we use a one click deployment interface which would push all these models across all those different uh VMs which we have so that so that is how it would actually work out actually actually retrain your classifier again or it's it's just uh just update the uh previous previous training right now basically it's a complete retrain we're not doing an incremental training but that's how the ski cutler works easily that way actually so we're not done an incremental training yeah you talked about uh iterating till you get the required uh f score and so on can there be a situation where uh instead of converging to a ideal score it starts diverging and going away there is in which case what what could be very possible because for that basically we actually do the entire iteration process it has to be properly like using you know common techniques like your version control techniques so you don't randomly change it because then you can't you know go back to your previous step so basically you be very clear document each of your steps and at any time something goes wrong in us you know every step you measure it so you don't just blindly do hundreds of changes and then measure it you measure all those changes and then anything goes wrong you can immediately pull back those changes right and you also talked about dealing with a large number of classes where you said one wave could be to merge some classes similar classes but uh in real life that may not work because if you're to for example the ticket problem you can't route it to one department which is similar to another department it has to go to the exact department so then what you do do you do a hierarchical thing where you first uh get the category of similar and then within that you do one more very true so basically we do a clustering within that particular function actually so so for example for facility we had like set 25 groups in the end of this process which was we recorded 8 because most of that even it was very wonderful because even after we examined it then they also said oh yeah these are actually doing the same they I don't know why we have 20 classes so it was very good actually so it might lead to real immediate feedback into the actual business process okay great thanks yeah yeah so uh my question is that do you try any other libraries apart from skykit uh an LTK or text blob uh kind of and what were the deficiency if at all you found out in those libraries so in fact what we did was which we actually initially we had an ensemble which included some java libraries also so we were actually using that and in just before deployment we had a lot of problem because of the performance and then we actually completely had to drop the java part of it so we actually assembled across both java and python so then we completely dropped that uh the java but because it was taking too much time an LTK is like in python itself yes yes no so we haven't used we did not use NLTK because we did try so in fact NLTK I had a one interest you know it's not related to this but the same problem we were using NLTK for the named entity recognition and we found that it miserably failed actually because Indian names are something it is not doesn't work properly so what we had to do then we actually used to work on so we actually took a list of names luckily because it's our own company we have a list of known names we used that for tagging and then eliminated that so we used more like a stop word removal so NLTK such named entity did not work for the Indian names in our beta so you prefer skykit rather than NLTK yes skykit at least worked NLTK was actually in fact we did some of the machine learning initially in NLTK and it's extremely slow also so one you should be benchmarked on that and it didn't work actually it takes too much time and how about the polarity of any content if at all we say like a content whether it's a negative or positive how do we gauge whether this statement whatever is like if I want to see only the positive feeds and I don't want to see any negative feeds and how can I gauge it from the textual yes content so what did you do on the basis of polarity right so basically we for this as just what you're asking is the sentiment analysis so we have built a sentiment analysis separate thing in fact we did a six class six level sentiment analysis but that is something not you know related to this but that was a different requirement wherein something came you know it's of course it's again a incident ticket and we wanted to find out how you know is the person who raised a ticket happy sad angry so we did a six level thing and they're actually the techniques are a bit different because you need to bring in things rules like you know if somebody says I'm happy but you know it's actually done not happy so actually just because I was happy I cannot give a high school so I need to consider those kind of things which would change the polarity so the kind of techniques used are slightly different but that we've done it but not for this problem it was a different problem thank you you talked about using a lot of ensemble algorithms in combining them here could you talk a little bit about how you did it and what are the other things that you combined it and how was the scoring done for them right right so actually what we did was we did not go for any fancy scoring mechanism what we did actually was the majority voting so that is very simple is assuming I have four algorithms in my ensemble if some if two of them say that you know there is it's class A and you know another says class B and the third says class C then the of what class A will be given the maximum weightage class B will be given you know comparatively let's make we take in class C would be the least weight I mean class B and C would be of course the same because only one one algorithm you know one one algorithm told it so we just used a very simple majority voting kind of scheme text blob we haven't used no we haven't used we have tried pattern and the thing but text blob we have not used so I think over sampling didn't work for us even though we mentioned and literature says it will work it doesn't work because it's like you're creating duplicate tickets so we have not in fact we are still having that that problem is something we have to try to solve we have not solved it so well as so only thing we did was you know use the brute force we went back to functions said give us more data and you know that's what we did but I think there should be some technical way to do it but we have not cracked that yet actually so for a scalable machine learning production system you are just using sklearn or you have tried some custom made python libraries or because what I've seen is like sklearn doesn't scale well so so whether you are using some customized custom made python libraries or say you are using some something like a graph lab okay so what is your data set size I'm asking you so no what is you said it didn't scale well so what was your data set size I mean I've worked on now I've been working for close to eight years no no I asked what is your you said it didn't scale well so I said what is the data set size it didn't scale well so you must be having some threshold right it is over a billion over a billion so probably we've not worked on that size so when we said last size it was like we actually had I would say about one million tickets not more than that one million or one two million records so it is not like the google size thing we have not come there so was one and million two million it worked very comfortably well and then beyond that if you have more classes then we have to use some other techniques like vertical partitioning but we didn't have to reach that because it was comfortable enough for our things so in fact this worked very well in a very normal standard agb ramp I just want to ask you talked about splitting of data like into your separating between like 80% of data to be training and 20% for testing how do you decide about how much splitting of data should be done for testing and how much should be done for training do you do it randomly or do you define a particular parameters for it just like you use KNN like KN nearest neighbors so you classify using a like a k fold like if I give a five fold then it should be divided like 90% to 10% should have five pieces so how do you decide that okay so actually the two parts to question one is can I use cross fold validation 10 cross fold validation it is much more effective so I'm not mentioned that here but that is more effective because even though you have you're using 90 and 10 but you're iterating across all the data sets so using a k fold cross fold validation is much better so I mean this is just a simple thing just to show you the thing yes yes yes yes you said in your ticketing system I assume you have a hierarchy of levels that the user has to choose from so did you train it it was a different training classifiers or how was it done so we tried both so one was we actually put everything at one level and then we tried classifying and the second was we actually went for because we knew that you know this is like so we had very clear groups like we had something called vivid is then we have called infra then we had facilities so basically we actually tried also building models at each of those different levels so each at basically so we had one model at IMG one model at you know infra so basically what will happen is when person races the ticketed to first identify to which of these buckets it falls and then within the bucket you would actually have you know a training I mean a prediction so this is one thing which we actually tried actually of course there were challenges because things were actually because you're talking about splitting across so many functions so we did face challenges but in the end we went with the hierarchical approach so basically it would predict the top level hierarchy and then the user would still have to down drill no the user doesn't have to do anything everything is automated so you have actually basically the models actually are built such that it would first identify to which level it has to go and within that level it would run one more model and so it's a totally black box for the user okay thank you so what was the volume of the ticket generation as well as the number of users using the system so the number of users we had the entire company is working on that so it's almost like one and a half lack of employees strength of one flag it's across the globe so both you know it's internal to the system and external so you actually have requests coming both within the corporate environment and from outside and then you are almost like 12,000 to 14,000 requests normally on any given day that was the thing and we actually actually plan for even 500 to 1,000 parallel requests at any time so when there are some problems it could actually go to that peak kind of no okay any questions there what's the training data size that you have in your production service so we actually used I think almost more than half a million set of tickets half million to one million that was the range which we actually had actually so we used a historical corpus and we could actually go for more but we used around half million to one million that is the words you find in like n-grams versus you know every the complete data set you are coming out of million that things that you have we have used the complete data set we did not do any you know partitioning or anything like that so whatever that data set we used the complete data a lot of noise in that because yes that is why we did the cleaning actually so we didn't directly use it so I said like that you see the first step was the cleaning but of it wherein we did a lot of work offline like we figured out okay what didn't make sense what was less value added it was all done in the first step actually like even in few combinations would never make any sense and which may stay you know for longer duration may not help so how you how do you think you know we can eliminate these kind of stuff I'm sorry I can't hear you and I couldn't get you can you just repeat that question so we have n-gram models right okay right so in n-gram models there are few you know few combinations which we never used because of the noise there are few things which happened so how do you plan to remove those things in the out of system because there are higher chances that you know it might be consuming lot of memory in the system that you are using right now okay okay so I think your question is as part of your thing what what to how many grams are you taking it right so in the in our production system we did not go for multi grams we just went for two grams actually so we did not go for five more than that actually so that that's all we used any questions last one so you told about the classifiers could you please tell us which classifier you used or which algorithm like gradient descent or something so we I used the basically the rich classifier that was what which is the best of course we used other things also but the rich classifier was the best actually rich classifier it's available directly in skate learn so we don't want to write anything just search for rich classifier and company documentation is available okay thank you yeah hello just two questions the rich classifier you need to get nc two different classifiers right one for all the classes then it does it does it work well like it doesn't take too much time it actually I mean we were worried it will take more time but actually it worked very well okay there was no worries the next question is putting this learn model directly on Hadoop distribution of the inside the company is that what you showed in the when you did not use any Hadoop so in fact we just used your normal windows machine in fact it's it could be a windows or a Linux it's a normal 8gb machine a normal VM actually it could be either windows or Linux open to no problem across both these and it was a normal standard 8gb machine that's all okay last question I would like to ask I have been using apache spark for machine learning so have you compared skylight with apache spark no we haven't done that actually but spark is something high on the agenda we want to try that but we haven't tried it actually so have you done any regression logistic or linear regression using this yes we tried so basically in if you see the iteration we tried logistic regression we tried name base we tried a host of things and in the end basically only rich classifier work all the others were you know certain things like for example random forest you know they didn't even complete they took too much time they didn't complete and then things like logistic were not giving such good accuracy so early rich in the end was the most accurate how much accuracy you were able to achieve but as of now we are actually attached 80 plus percent so it's still a journey it's still happening so in fact we're trying continuously but 80 percent is something which we're okay to live with and we've gone ahead with that so any open source community which you are working for like I can contribute to the project or someone can we would love to start something we have not done that actually so skill kit learn is the place and deep learning is something I would we'd all like to work on actually at least from my group and myself but we have not started yet we have to do that we would really like to contribute to the project and learn like many people can that would be great actually we should start something yeah thank you guys anyone we have one minute left okay fine thanks thanks thanks a lot


Russian military receives Chinese armoured vehicles. Ramzan Kadyrov, the leader of Russia's Chechnya region, has confirmed that the Russian military has received the first batch of Chinese-made armoured vehicles according to defence blog Media Outlet. Kadyrov has released footage showing new vehicles purchased for Chechen units participating in the war in Ukraine. The new vehicle is a Tiger 4x4 armoured vehicle personnel carrier developed by the Chinese defence company Shanxi Baojie Special Vehicles Manufacturing. We have purchased more than a thousand items of military equipment for our soldiers, including 128 items of armoured vehicles since the beginning of the war. Chechen government officials said the Tiger armoured vehicle has a crew of two which consists of the commander and driver and can carry nine fully equipped infantry men. The Tiger can be adapted for various roles such as patrol, police vehicle, ambulance, command post and weapons carrier. Since its introduction at the 2012 Euro-Satary Exhibition, the Tiger has been sold to several militaries including those of the Bahamas, Bolivia, Somalia and Tajikistan. Chinese-made military equipment entered service with Russian units for the first time. It is created on the basis of an off-road truck thanks to which it has high mobility in off-road conditions. The vehicle provides protection against 7.62mm bullets.


You mentioned just a minute ago that where did the money go? My understanding is that the Democrats passed a second stimulus bill, but Republicans blocked it. How do you answer that? That's a lie. Did they block it, or did they want a certain amount of money and things going towards, you know, basically the people in America? You know, there was a lot of other issues written in the stimulus bill, and really the stimulus bill should be those that were affected by the coronavirus pandemic, no? Well, yes, but they blocked the bill. Well, they did. Maybe they should check with the program and realize in your party that people are needing the money right now and get off their high horse. I think they saw it. So here's my question. Is there anything that you take issue with or that you find racist in what Trump has done in his life before or after the presidency? No, I don't. I find that President Trump has shown nothing, but, you know, the opposite of racism. You know, each year, HBCUs had to go to Congress to ask for money. You know, who made that permanent? So they don't have to ask each year. That would be President Trump. You know, who tackled prison reform and criminal justice? The first step back, that would be President Trump. You know, who's investing $75 billion into opportunity zones in cities that were neglected by Democrats? That would be President Trump. So I would say, and I know Sonia said this before, when Alexandria Ocasio-Cortez was on the show, you know, let's look at policy over personality. And from what I could tell, the president's been doing a great job, especially for the black community. Come on, Kim. Excuse me, I have to say something to you. He told Bob Woodward that it was a very serious issue and it's airborne and that it was terrible.  You have to put some blame on your president, I'm sorry. You're putting it on something extraneous here. Talk to the point, please. Is this Joy speaking, the same Joy that paraded around in blackface not too long ago? Come on, Joy. I don't think you should be asking the questions. I am. Excuse me. Excuse me. The black community had my back. They know that that was not my face, that was an homage. Oh, please. The black community has your back? The black community has your back? Yes, they do. The black community did not vote for you. The black community did not vote for you. What planet are you living on? Sunny, can I speak? What planet are you living on? It was during a special election while we were still under lockdown and I could not talk to people. Can I speak or are you just gonna speak over me? This becomes a big, listen, Kim, good luck to you. Thanks to Kim Klosch and Joy. That was very immature, but thank you for having me. Wow, man.  Let's mock her and tear her down because she's not a communist. And let's not forget that Joy Baer was yet another left-winger in the media who had all kinds of praise for Fidel Castro's reeducation camp reading program. Now we're gonna get right into mocking the spew, but first, give me just a minute to tell you about this special offer for my subscribers, from this episode's sponsor, My Patriot Supply. When you see what's going on in our country right now, there's plenty to be concerned about. Social unrest is making life very uncomfortable and it could quickly get worse. These are realistic dangers, so don't let yourself be caught unprepared. Here's what to do right now. Go to www.preparewithdronetech.com and start building your emergency food supply today. The experts at My Patriot Supply are the only people I trust and use. And right now, you can save $100 off a full four-week supply of delicious, nutritious meals the whole family will love. My Patriot Supply makes it easy to be prepared at all times. And saving $100 off a life-saving four-week supply of food is too good to pass up. The second half of 2020 is gonna be wild. So go to www.preparewithdronetech.com and get ready right now. That's www.preparewithdronetech.com. Do it now. Other issues written in the stimulus bill and really the stimulus bill should be those that were affected by the coronavirus pandemic, no? Well, yes, but they blocked the bill. Well, maybe they should get with the program and realize in your party that people are needing the money right now and get off their high horse. Just saying. I think we saw it. Wrong.  It wasn't Republicans, it was Democrats who blocked it. Republicans had just slimmed down the bill for it, basically because Democrats had thrown in all these extra projects that they wanna spend money on. It was a Democrat spending spree. So Republicans slimmed it down and put it forward. Guess what? Democrats blocked it because they wanna be able to spend that money.  Is there anything that you take issue with or that you find racist in what Trump has done in his life before or after the presidency? No, I don't. I find that President Trump has shown nothing, but the opposite of racism. Each year, HBCUs had to go to Congress to ask for money. You know who made that permanent? So they don't have to ask each year. That would be President Trump. You know who tackled prison reform and criminal justice? The first step back, that would be President Trump. You know who's investing $75 billion into opportunity zones in cities that were neglected by Democrats? That would be President Trump. She is absolutely right. The work that the Trump administration has done on justice reform has had actual real impact on the lives of black Americans. It's the greatest justice reform done in generations, signed by Donald Trump and called the First Step Act. The First Step Act was a bipartisan criminal justice bill passed by the 115th Congress and signed by President Donald Trump in December of 2018. The First Step Act, among other changes, reforms federal prisons and sentencing laws in order to reduce recidivism, decrease the federal inmate population, and maintain public safety. Wow, that sounds exactly like what black Americans have been asking for for a long time. And guess who didn't do it? Bill Clinton or Barack Obama. You have to put some blame on your president. I'm sorry. You're putting it on something extraneous here. Talk to the point, please. Is this Joy speaking or Sam Joy that paraded around in blackface not too long ago? Come on, Joy. I don't think you should be asking these questions. I am. Excuse me, excuse me. The black community had my back. They know that that was not blackface. That was an homage. Oh please, just answer the question. The black community has your back? The black community has your back? Yes, it does. The black community does not hope for you. The black community did not vote for you. What planet are you living on? Sonny, can I speak? What planet are you living on? It was during a special election while we were still under lockdown, and I could not talk to people. Can I speak or are you just going to speak over me? This becomes a big, listen, Kim, good luck to you. Thanks to Kim Kloss, I'm going to write back. So right off the bat, Joy Behar comes at this black GOP candidate, accusing her of not being with the rest of the black community. And she responds in kind by pointing out that Joy Behar actually wore blackface at one point. But of course, it's completely different when left-wingers do it, when liberals do it.  I just love this idea that somehow the black community, like all black people, the hive mind of black people, all got together and agreed that when Joy Behar did blackface that it was okay.  Make sure to catch it all right here where I watch it so you don't have to. If you liked this video, just take a millisecond and hit that like button. While you're at it, you might as well subscribe and hit the bell notification while you're at it. If you would like to support this channel, check out all the options in the description or pinned comment. Thanks for watching. Keep coming back.


We start this morning with General Questions. Question 1, Mike Briggs. The Scottish Government, what action is it taking to reduce waiting times for orthopedic treatments? We are taking significant action to reduce waiting times. I recognise that some patients are experiencing long waits, and that is why I have made £50 million available to NHS in Scotland. I expect to see improvements between now and the end of March. It was announced on the 29 August 2018 that setting up an exit group to reduce waiting times and improve the way elective care services are provided. The elective access collaborative programme will bring experts from the Scottish Government, the NHS and the royal colleges together to provide support to health boards. That effort has seen us deliver improvements in undisguadowed care, I will make a further announcement on that shortly. Is the cabinet secretary aware that in Lothian patients who require new hips and knees F talents are being told by NHS Lothian that it cannot meet the target of 12 weeks for referral for a new outpatient appointment and that instead they will have to wait up to 37 weeks or more than 9 months just for an initial appointment with a consultant. Will the cabinet secretary apologise to my constituents in Lothian who are suffering in pain for many months before they even see a consultant and discuss the surgery that doesn't the cabinet secretary now believe that this is yet another indictment of this Government's shambolic NHS workforce planning? I do not want any patient to wait longer than they should, but Lothian has done a lot of work in this area. Of course, I should add that the number of consultant staff working in Lothian with a specialty of trauma and orthopedic surgery has increased under this Government by over 14 per cent, but so has demand increased at the same time. Lothian has risk assessed its long-waiting specialties based on clinical priority and risk to the patient, and the board is undertaking a comprehensive review of its trauma and orthopedic services that includes an integrated back pain service, a redesign of the foot and ankle pathway and fracture pathway, investing in significant additional physiotherapy and advanced physiotherapy practitioners to support the new service models, redesigning of the hip fracture pathway to optimise care of frail and elderly older people, and improving performance through the enhanced recovery after surgery programme that looks at optimising patient recovery after joint replacement. I believe that all of those things will make a significant difference. On the issue of workforce planning, it is a bit rich of Miles Briggs to raise this issue today, when the nursing and midwifery council has published today figures that have found that the number of EEA nurses leaving the register between October 2016 and September 2016 has increased on the previous year by 67 per cent. In addition, the number of new initial registration nurses from the EEA joining them has fallen by 89 per cent compared to the previous year. I will take no lectures from Miles Briggs about workforce planning when this is having a huge impact on our nursing and midwifery workforce in the here and now, because of their ridiculous Brexit policy. Liam McArthur, the Cabinet Secretary for Health and Sport will be aware from our correspondence of the lengthy delays that orthopedic patients in Orkney are facing as a result of a lack of capacity in NHS Grampian. One constituent referred to the surgeon in May, he was told that he would have to wait 68 months, only to receive the same letter again in September announcing a further 68-month delay. In NHS Orkney this week, I have talked about plans to develop proposals with Western Isles to address the large backlog, as they call it. What steps is the cabinet secretary going to take to ensure that orthopedic patients in Orkney are treated within the 12-heat time frame set out by the Scottish Government? I appreciate the concerns that Liam McArthur has raised. The patients in Orkney rely on the services of NHS Grampian and others. What I can say to Liam McArthur is that NHS Grampian has had a significant share of £50 million to deal with and address it with some of the longest waits now, and we expect progress to be made by the end of March on those longest waits. There is a lot of collaboration between the boards in the north of Scotland, and one of the key plans that they have is working together across boards in the north to plan elective care far more efficiently and to ensure that they use all of the capacity in their northern boards. I am very happy to keep Liam McArthur up-to-date with those developments as they are taken forward. To ask the Scottish Government whether it plans to extend the electric vehicle loan scheme beyond 2018. The low-carbon transport loans will be provided until at least 2020. It is one of a range of incentives to promote the adoption of electric vehicles. I thank the cabinet secretary for that answer. The Scottish Government has set admirable and ambitious targets regarding phasing out the need for new petrol and diesel cars and vans by 2032. What longer-term initiatives has the Government got in mind to encourage the motor and public to embrace electric vehicles in terms of, for example, advantageous loans and infrastructure investment? Over the coming months, we will be making a number of announcements in this area. Those will cover infrastructure and supporting the uptake of vehicles in the public and private sectors, and those will build on the strategy that is set out in Switched on Scotland, launched by the Minister of Transport and Islands in June 2017. So far, the electric vehicle loan scheme has only been offered for new vehicles. Will the Scottish Government consider extending the scheme to used vehicles? We are always happy to consider suggestions, and we can consider that one. The loan scheme has been fairly successful thus far, and we want to build on it. I would also say that funding has enabled the grants for domestic charging points, as well as 1381, and a free advice helpline. The existing scheme is quite comprehensive, but we want to build on that. As I have said, we will be making further announcements in due course. To ask the Scottish Government what to impact the proposed cost increase for ferry freight from 1 January 2018 will have on the Northern Isles in light of reports that it was believed that prices would remain frozen. I can confirm that the revisions to freight fares reflect the terms of the Northern Isles ferry services contract, which allow for increases based on CPI. That follows two years where freight fares have been frozen. It was announced on 22 August that passenger and car fares would be reduced on ferry services to the Northern Isles in the first half of next year, fulfilling a key manifesto pledge. In light of that planned reduction in fares in the interim, we have frozen passenger and car fares on the Northern Isles ferry services. For freight, we are conducting a comprehensive freight fares review, as per the commitment that was made in the ferries plan 2013-2022. The review will fully consider the impact of any freight fare changes on island economies. That is a complex process. However, the outcome of the review will be announced as soon as possible. Rhoda Grant, I welcome the review of the freight fare increases coming into being early next year. The cabinet secretary will be aware that increases in freight costs are tantamount to tax on everything that is transported to the islands. Already, we have online retailers who will not deliver to the islands because of costs. If we are to grow the island economy, which is part of the reason for an island's bill, surely that flies in the face of that ambition. The cabinet secretary is proud of the achievement of introducing road equivalent tariff. It has been a terrific success for individuals, especially those residents in the islands. It has also helped to promote the economy of the islands. I am very pleased that Rhoda Grant has welcomed the proposed reduction fares for the Northern Isles. In respect of the freight fares review, I am sure that you will appreciate that this is a complex process. It is a very important one, and we shall announce this in due course. As far as retailers in the UK and elsewhere are not willing to make deliveries or impose additional charges, I have to say that this is something that I have worked on myself and the Scottish Government has worked on for a number of years. The postal delivery service is a matter that is reserved to Westminster, and it has utterly failed to take any action whatsoever on this for decades. Many people in the highlands and islands have, as Rhoda Grant says, suffered, paid extra or not been able to receive goods as a result of that total inertia from the UK Government on this matter. Jamie Halcro Johnston Council leaders from Orkney and Shetland will be meeting with the finance secretary later this month in relation to inter-island ferries. In today's Orcadian, the Orkney Islands Council has warned that the services may fall back to 1960s-level and have knock-on effects on council budgets unless action is taken. Is the minister content with that as a possible outcome, and how does that possibly fit with the Scottish Government's commitment to ferry funding for the northern isles? Michael Matheson Michael, if Mr Briggs was listening, he would have heard that we are just about the other one, sorry. Michael Matheson Mr Halcro Johnston If he had been listening, he would have heard that we are about, in fact, to reduce fares to the northern isles. We are proud of that. I do not recall many occasions where previous Administrations have taken that action, and we are the Administration that introduced road-equivalent tariff. If any members of the Conservative team, whoever they are, want to put forward any serious plan of any sort for any public service budget, that would indeed be a precedent, because all we hear week after week is calling for more public money and tax cuts at the same time. Perhaps Mr Davidson will get real and bring forward some grown-up policies in this Parliament. Patrick Harvie I can ask the Scottish Government what research it has carried out or commissioned on the likely impact on Scotland of the UK leaving the European Union, and whether it would publish that. Michael Russell The Scottish Government has published a number of papers that include research and commissioned work, including Scotland's Place in Europe. More recently, we published Brexit at what is at stake for business, highlighting the impact on Scotland of the UK leaving the EU. The dedicated Europe section on the Scottish Government website contains links to those, as well as to a number of other relevant publications, including the First Minister's letter to EU citizens in Scotland and the minutes of the standing council meetings. The Scottish Government believes in the need for transparency in the Brexit negotiations. We will continue to press the UK Government to publish its own analysis of the likely impact on Scotland leaving the EU. Patrick Harvie Since I lodged the question, just since yesterday's debate at Westminster, the UK Government has been forced to accept that it must publish its sectoral impact analysis statements. I very much welcome that, although I wonder what other issues in the news it is trying to distract from by publishing information merely about the destructive impact that it will unleash on the country's economy. How long will it take the Scottish Government to take the sectoral impact analysis and turn it into a more robust impact assessment about Scotland geographically, because that work, bizarrely, has not even been attempted by the UK Government? John Swinney The UK Government has had several positions on this matter, including an assertion by the Secretary of State for Scotland that such an analysis existed and would be published, and then a denial that such an analysis existed in terms of the overall analysis of Scotland from the Secretary for Exiting the EU. I wrote to the Secretary for Exiting the EU, David Davis, yesterday, asking for access to the 58 sectoral studies that have been referred to from time to time in meetings with the UK Government but never brought forward. Once we have those, we will certainly look to see what we can do with them. I fear from some of the speculation yesterday that what will appear will be heavily redacted documents if those documents have substance anyway, because we have not seen them and we do not know the depth of the research and how they have undertaken the work. Once we have that material, if we do get that material, I am happy to discuss it with members. Tom Arthur Does the minister share my concern that the uncertainty over Brexit is influencing businesses to delay decisions on capital investment, which could, of course, negatively impact on future productivity? I agree, and I think that there is now growing evidence that businesses are exceptionally worried about the lack of information and the uncertainty. Many are telling the UK Government and the Scottish Government that decisions that they have to make will have to be made by the end of the year. If there is no certainty and no information by the end of the year, then they will have to work on the worst-case scenario. Indeed, German companies, or part of the German chambers of commerce, have already been told by their central organisation that if they have business interests in the UK, they should plan for essentially a cliff edge Brexit. That is very bad for those companies and their plans, and it is very bad for other companies that are based in Scotland. We continue to say that the UK Government should be much more transparent and much more open. It should be making some progress in telling people what it intends, but it is working both by hiding information, by not publishing information and also allowing other information to emerge that will only cause uncertainty. For example, the Chatham House report today on farming indicates very strongly that, for many people who back Brexit, the best way forward is to abandon farming subsidies. The effect of that on the constituencies of virtually every member of the Scottish Parliament would be catastrophic, particularly for those like me who are members for the Highlands and Islands. It would be the end of agriculture and, indeed, much of the rural population of the Highlands and Islands. The UK Government really has to get a grip. Perhaps it recognises that Brexit remains a fool's errand. To ask the Scottish Government what discussions the Cabinet Secretary for Communities has held with Glasgow City Council regarding its budget allocation. Ministers and officials regularly meet representatives of all Scottish local authorities, including Glasgow City Council, to discuss a range of issues as part of our commitment to working in partnership with local government to improve outcomes for the people of Scotland. I met the Glasgow council leader, Susan Aitken, on 8 August. I have no doubt that the Scottish Government can continue to have a strong and productive relationship with Glasgow City Council, which will benefit the people of Glasgow and the rest of Scotland in the months and years to come. Johann Lamont I am not sure whether I can thank the Cabinet Secretary for Communities for that response. In my view, as a representative of Glasgow, it is entirely unacceptable that the SNP Government has cut Glasgow's budget every year since 2007, forcing savings of £377 million, a cut of 17.5 per cent to Glasgow's budget. What assessment has the cabinet secretary made of the terrible impact of those decisions on the individuals, families and communities in Glasgow by a Government that claims to care about inequality? I ask the cabinet secretary what representations did the leader of Glasgow City Council make to you about the budget allocation? Did she seek an increase in her budget? Is she willing to stand up for Glasgow and those vulnerable communities who are currently facing the cuts made by your decisions? Susan Aitken, the SNP leader at Glasgow, is sorting out the mess that she inherited from the Labour Party and is doing a grand job in that respect. I have to correct Johann Lamont that Glasgow City Council's budget did not go down. The budget for local services has increased as a consequence of our decisions. In fact, the spending power for Glasgow's local services has increased, not a reduction, but an increase of some £45 million. That is a 3.4 per cent increase on the previous year. I look forward to the exciting plans around infrastructure, childcare and housing, where we will be able to invest more in the services right across Scotland. Of course, it is the new mature administration that exists in Glasgow City Council that has taken Glasgow back into COSLA so that we can work in partnership with local government to ensure that it continues to have a fair settlement from the Scottish Government. To ask the Scottish Government what action it is taking regarding the decline of part-time students at college. Minister Shirley-Anne Somerville. As the First Minister said at First Minister's questions last week, short courses for younger and older students alike continue to be available. Indeed, 72 per cent of total enrolments at college in 2015-16 were on part-time courses. Alison Harris. Although I thank the minister for that answer, does she acknowledge that for months the policy has been described as inflexible, involving a serious loss of part-time places, often for students who are furthest removed from the labour market and, in particular, it has created difficulties for those students who are trying to balance the college course with other work and family commitments? As I stated, the number of part-time courses is still at 72 per cent, and we see that the majority of students within colleges are women. That policy came out in my letter of guidance to colleges and universities in March. I checked today how widely distributed that was, and it is well going to the funding council. It went to the education committee within Parliament, college representatives, university representatives, every single trade union involved, as well as all the government agencies. That policy has been developed to ensure that all our colleges are responding to the needs of not just young people but of returners to work and those within wider society, and all those who are responding to the needs of the economy. I am confident that our colleges will do just that. Kenneth Gibson. Thank you, Presiding Officer. There has been a complete restructuring of the colleges under the Scottish Government. What that has meant is that there are more full-time places than ever before in our colleges, preparing more of our younger people for work. In fact, some of the part-time courses that have been reduced—79,000 of them—were a mere five hours—not five hours a week but five hours in total. Do you agree that, by reducing those very minuscule courses, it has allowed colleges to invest much more in providing not only full-time but the part-time courses that allow our young people to get their work they so require? Minister Gibson. Well, Mr Gibson is quite right to point out that there was a decision made to ensure that colleges were asked to look at recognised qualifications leading to employment, something that I think the party opposite would welcome rather than mock. The reason why we did that was to ensure that youth unemployment came down. Youth unemployment is now at a rate of one of the lowest in the EU, something that should be welcomed across this chamber and proves that the college policy has worked well for our young people and for the economy. Thank you, Presiding Officer. That concludes General Questions' point of order, Mr Findlay. Yesterday, the UK Parliament unanimously voted to instruct the UK Government to release in full 58 sectoral papers on Brexit and impact assessments to accompaniment. It now appears that the Tory Government is going to refuse to do that, or they are going to release them heavily redacted, thus holding Parliament in contempt. It is my understanding in light of this. Today, Opposition parties, including SNP and some Tory MPs who believe in defending the principle of parliamentary sovereignty, are discussing the lane of a contempt motion because of the dismissive arrogance of the Prime Minister and her Government. Given that this Parliament has, since May 2016, defeated the Government over NHS cuts, Highlands and Islands Enterprise, fracking, council funding, the Offensive Behaviour at Football Act and failing educational policy, and just like the UK Government, the SNP has repeatedly ignored the will of Parliament. Can you advise me in the chamber? Order, please. Let's hear the point of order, please. Can you advise me in the chamber if you would accept a similar contempt motion if and when this SNP Government replicates the arrogance of the Tories and ignores the democratic will of this Parliament? Any motion that is laid before the Parliament, I will consider on its merits, the motions of this Parliament are not binding on the Government, but we do expect, and the Government is expected to pay attention to them. That is the point of order dealt with. I move on now to general questions.