寫這篇文章回官,希望對數(shù)據(jù)分析師進階或是入門機器學習人有很好的幫助儒旬。
今年即將畢業(yè)钢坦,目前在某公司上班職位數(shù)據(jù)分析師雹嗦,專業(yè)不是計算機,不是統(tǒng)計學仔拟,不是金融衫樊,而是前途無望的硬件電路,考慮到以后的發(fā)展利花,毅然轉(zhuǎn)入“DT”行業(yè)科侈。沒有報過任何培訓機構(gòu),一路走來是自學炒事,到目前來說算是入門了臀栈。數(shù)據(jù)分析師的門檻很高嗎?答案是一點不高挠乳,因為你不是去研究深度學習搞人工智能权薯,而是數(shù)據(jù)分析。我一沒有任何專業(yè)背景的人都找到了數(shù)據(jù)分析師的工作睡扬,我的專業(yè)是物理高頻低頻焊接線路盟蚣。高中時對物理是比較喜歡的所以大學報了和物理相關(guān)的專業(yè),后來才知道物理是一個巨大的坑啊卖怜,高中物理都是小兒科屎开,真正的物理世界不是我的腦袋所能想象的。騙自己說先試試看吧韧涨。大學大學大學是天堂啊牍戚,游戲的樂園,面對各種誘惑踏上了頹廢的康莊大道虑粥。后來對錢很喜歡,定了個目標先掙個1個億宪哩?開玩笑娩贷,當時我還沒‘億’這個概念,大二過年提個車開回家锁孟?這個我能想到彬祖。哎,過程很復雜品抽,結(jié)果很簡單储笑,人是有夢想的但我卻不是一個天才。最后又回到頹廢的路上圆恤。直到某年暑假突倍,還有一年就畢業(yè)了我能干什么呢,遙想2015在瀏覽新聞時看到了一偏文章說未來是DT的時代,我又搜索了相關(guān)DT的文章羽历,是馬云這貨說的焊虏。當時對馬云也是很崇拜的,就仔細了解了一下DT秕磷,還創(chuàng)建了一個相關(guān)的QQ群诵闭,在各大論壇發(fā)出消息,讓志同的人加群澎嚣。又找了各種資料疏尿。。易桃。自食惡果最后因為自己的懶散和對游戲的執(zhí)迷不悟润歉,又讓自己融入到了真正的大學生活中瀟灑。DT拋到了腦后颈抚。暑假同學都去做暑假工我不想去就找了份兼職又想到了DT時代踩衩,嘿嘿就開始了。暑假兼職帶學習兩個月贩汉,開學后上課3個多月后學校安排實習我選擇了自己找數(shù)據(jù)分析師崗位驱富。“數(shù)據(jù)分析師”百度一搜滿大街上都是培訓機構(gòu)匹舞,MD我再去培訓那我大學的學費想想就心疼褐鸥,每年1萬多大洋呢。后來驗證不去培訓是對的赐稽,有的培訓很水的叫榕,懂行的都知道,我就不點名了姊舵。
什么晰绎?數(shù)據(jù)分析師不懂算法?那你是毛的數(shù)據(jù)分析師啊括丁,公司對你的印象瞬間沒有了.荞下。不怕,我這系列文章就是來想幫幫大家的史飞,對于不懂算法的數(shù)據(jù)分析師或想入門機器學習的小伙伴們尖昏,我這文章很適合你們的」棺剩“KNN”抽诉,“決策樹”,“貝葉斯”吐绵,“線性回歸”迹淌,“邏輯回歸”河绽,“多項式回歸”,“SVM”巍沙,“k_means”等等基本的算法和常用的數(shù)據(jù)分析基本方法葵姥。
(字都是一個個敲出來的,我沒有檢查錯別字或是病句句携,歡迎閱讀時發(fā)現(xiàn)了告訴我榔幸,寫的不好不詳細的地方也可以告訴我)
這篇文章主要講的是數(shù)據(jù)分析師的進階能力,分類算法knn矮嫉。那么什么是分類算法呢削咆?看這個例子
如果我們想通過打斗次數(shù)和接吻次數(shù)來劃分電影的類型試試我們的knn分類算法
如果打斗次數(shù)是10次昨寞,接吻次數(shù)是106次瞻惋,它是什么類型的電影呢?把10和106寫進去
如果打斗次數(shù)是95次歼狼,接吻次數(shù)是12次,它是什么類型的電影呢享怀?把95和12寫進去
這就是分類,按類型給分出來添瓷。
(“TM我看不懂代碼梅屉,老子不會啊,怎么辦鳞贷?”)
(不會就學唄坯汤,那能怎么辦)
(“我需要報python培訓嗎?”)
(你傻啊報培訓悄晃,自學的就夠你用的了玫霎,這可不是搞開發(fā),不需要你精通python妈橄,掌握基礎(chǔ)知識就行了,再看幾個庫就能駕駛無人汽車了)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ---我用的是jupyter notebook---
知道了什么是分類那我們看看什么是knn分類算法翁脆。
knn核心思想是距離眷蚓,通過計算每個訓練樣例到待分類樣品的距離,取和待分類樣品距離最近的 K 個訓練樣例反番,K 個樣品中哪個類別的訓練樣例占多數(shù)沙热,則待分類樣品就屬于哪個類別叉钥。我們通過實例來理解一下這句話。
藍色的點就是我們新創(chuàng)建的x點扒披,直觀判斷藍色的x在紅色的一堆中,那它應該屬于紅色的點即類型是1圃泡。那我們怎么使用knn算法得出藍色的點的類型呢碟案?先看knn思想的第一句話“通過計算每個訓練樣例到待分類樣品的距離”。如綠色和紅色的點就是訓練樣例颇蜡,藍色的點就是待分類樣本价说,這句話的意思就是計算出綠色和紅色的各個點到藍色點的距離。距離怎么計算呢风秤?
我們使用歐拉距離
我們通過python來實現(xiàn)一下
“通過計算每個訓練樣例到待分類樣品的距離”這句話我們做完了下一句是“取和待分類樣品距離最近的 K 個訓練樣例”唁情。
意思就是第8個點離藍色點最近疑苔,其次是第7個點…第2個點離藍色點最遠〉槟瘢“最近的k個訓練樣例”k是多少呢惦费?這個不太好選,需要足夠的經(jīng)驗才能選出來抢韭,沒關(guān)系后面會介紹一種方法薪贫,很方便的就把k選出來。現(xiàn)在我們不妨把k值設(shè)為6刻恭。那句話的意思就是取6個離藍色點最近的點瞧省。
還有最后一句話“K 個樣品中哪個類別的訓練樣例占多數(shù)橡淑,則待分類樣品就屬于哪個類別”
意思是在這6個點中一共有0和1兩個類型,哪個特征占比最多咆爽,藍色點就屬于哪個特征梁棠。
好了凫海,這就是knn的思想,學會了算法你就是高級一點的數(shù)據(jù)分析師了男娄。
knn就這樣結(jié)束了行贪?還沒有,只會這一點你發(fā)現(xiàn)解決問題是有局限的沪伙,現(xiàn)在來看看怎么選出我們之前的k值瓮顽。k選多少比較好呢?
先說一下為什么選擇用python围橡,python有一個sklearn庫暖混,就把我們前面的knn方法給整合了,我們不必自己構(gòu)建只需要調(diào)用就行了翁授。
回到我們之前說的k值,k通常是根據(jù)經(jīng)驗取得收擦,但我們沒有經(jīng)驗怎么辦贮配,搜索唄(一個一個試)之前我們自己創(chuàng)建的數(shù)據(jù)集太小了,下面我們使用sklearn里面的數(shù)據(jù)集塞赂。
k=3準確度是98.88%沦辙,哇看起來很高了的。那它是不是最好的呢
我們試了k是1到10的10中可能延欠,看哪個值最好陌兑。(什么?看不懂由捎,可以問我诀紊。)
結(jié)束了嗎?還沒有看一張圖
結(jié)束了独泞?
之前提到了計算距離的公式
格式變一下
再變
再變
再變
有相同的規(guī)律啊
總結(jié)一下
那么p的取值到底取多少呢组橄?老方法:試一下
結(jié)束了?我就先說到這吧瓮栗,重要的參數(shù)都說的差不多了削罩,夠用的了。
k,p, 'uniform','distance'一個一個篩選出來好麻煩费奸,以后我會介紹簡單的整合好的方便用的一個方法弥激,一下就把這些值都求出來。下篇文章再說吧愿阐。
對knn算法了解的怎么樣了微服?有沒有腦袋一亮?我自認為我這篇文章含金量還是很高的缨历,我學knn的時候逛了很多網(wǎng)站以蕴,看了別人寫的很多文章都是模模糊糊糙麦,我看的也是一知半解。以后打算更新丛肮,“決策樹”赡磅,“貝葉斯”,“線性回歸”宝与,“邏輯回歸”焚廊,“多項式回歸”,“SVM”习劫,“k_means”等等基本的算法和常用的數(shù)據(jù)分析基本方法咆瘟,或者python的基本用法.
本文原創(chuàng),不要復制轉(zhuǎn)載诽里,后果自負袒餐。