大数据 机器学习 算法概论
視頻解析 ?https://edu.csdn.net/course/play/7813
算法概述
算法是計算機科學領域最重要的基石之一,計算機語言和開發平臺日新月異,但萬變不離其宗的是那些算法和理論,數據結構和算法是軟件開發必備的核心基礎,是內功心法。下面舉例拿推薦算法和分類算法的實際場景做下舉例:
推薦算法的應用場景,各種app(偏資訊)的應用外的手機推薦:
上面可以看出有米飯資訊,優酷視頻,抖音短視頻等推薦,他們都傾向于在下班休息的碎片時間進行推送。他們有的是根據你的關注和興趣進行提醒,有的是根據當下社會熱點進行推薦,還有的就是優惠券性質的推送。
再有就是應用內的推薦:
?
可以看出手機購物時,當我們搜索某家商店的某件商品時。系統會根據我們的搜索歷史和購買歷史進行相似物品的推薦。
分類算法(醫學上的腫瘤判斷)
如何判斷細胞是否屬于腫瘤細胞呢?腫瘤細胞和普通細胞,有差別。但是,需要非常有經驗的醫生,通過病理切片才能判斷。如果通過機器學習的方式,使得系統自動識別出腫瘤細胞。此時的效率,將會得到飛速的提升。并且,通過主觀(醫生)+客觀(模型)的方式識別腫瘤細胞,結果交叉驗證,結論可能更加靠譜。
如何操作?通過分類模型識別。簡言之,包含兩個步驟。首先,通過一系列指標刻畫細胞特征,例如細胞的半徑、質地、周長、面積、光滑度、對稱性、凹凸性等等,構成細胞特征的數據。其次,在細胞特征寬表的基礎上,通過搭建分類模型進行腫瘤細胞的判斷。
?
對于我們來說最簡單的應用案例。請看如下代碼應用
對于我們來說最簡單的應用案例。請看如下代碼應用,根據班級同學不同的分段給出評級。一個班級里不同分段的人數不是相等的,而是有著峰值和低谷。案例:將學生的百分制成績轉換為五分制成績:≥90 分: A,80~89分: B,70~79分: C,60~69分: D,<60分: E。一般程序寫法:
/*** @author 張晨光* 測試成績結果算法1*/ public class TestOne {public static String getGrade(int grade){String result="";if(grade<60){result="E";}else if(grade<70){result="D";}else if(grade<80){result="C";}else if(grade<90){result="B";}else{result="A";}return result;} }?
如果學生的總成績數據有10000條,則5%的數據需 1 次比較,15%的數據需 2 次比較,40%的數據需 3 次比較,40%的數據需 4 次比較,因此10000 個數據比較的
?
次數為:? 10000 (5%+2×15%+3×40%+4×40%)=31500次
此種形狀的二叉樹,需要的比較次數是:10000 (3×20%+2×80%)=22000次,顯然:兩種判別樹的效率是不一樣的。
?
因此,不同的算法程序的執行效率是不一樣的,我們盡量找到最優算法,提高程序的執行效率。就像你編游戲,人口最高只敢100,否則機器就特慢,人家就敢讓人口到300;你的農民遇到石頭就停住了,人家的農民就能繞過去,找最近的路。這些都離不開算法工程師的功勞。
所謂“算法”是指解決問題的一種方法步驟或者一個過程。
一個算法應該具有以下幾個重要的特征。
(1)輸入:一個算法應該有n(n≥0)個初始的輸入數據。
(2)輸出:一個算法可以沒有或有一個或多個輸出信息,它們與輸入數據之間會有著某種特定的關系。
(3)確定性:算法中的每一個步驟都必須具有確切的含義,不能有二義性。
(4)可行性:算法中描述的每一個操作步驟都必須是可以執行的,也就是說,都可以通過計算機實現。
(5)有窮性:一個算法必須在經歷有限個步驟之后正常結束,不能形成死循環。 ? ? ? ? ? ? ? ? ? ? ? ??
思考題,3個數中求最大值,比較下哪種算法比較好!!!
?
/*** * @author 張晨光* 求3個數中的最大值* */ public class TestFour {public static int getMax1(int a,int b,int c){int max;if(a>b&&a>c){max=a;}else if(c>a&&c>b){max=c;}elsemax=b;return max;}//第2種寫法,其他比較幼稚的寫法,暫時不再提供public static int getMax2(int a,int b,int c){int max=a;if(b>max){max=b;}if(c>max){max=c;}return max;}//三元運算符;public static int getMax3(int a,int b,int c){int max=(a>b)?a:b;max=(max>c)?max:c;//或者老老司機寫的max =((a > b ? a : b) > c) ? (a > b ? a : b) : c;return max;} }?
?
?
?
?
總結
以上是生活随笔為你收集整理的大数据 机器学习 算法概论的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Hibernate检索1
- 下一篇: Java 冒泡排序实现及口诀