大資料 機器學習 演算法概論

2021-08-18 15:12:01 字數 2250 閱讀 1585

演算法概述演算法是電腦科學領域最重要的基石之一,計算機語言和開發平台日新月異,但萬變不離其宗的是那些演算法和理論,資料結構和演算法是軟體開發必備的核心基礎,是內功心法。下面舉例拿推薦演算法和分類演算法的實際場景做下舉例:

再有就是應用內的推薦:

可以看出手機購物時,當我們搜尋某家商店的某件商品時。系統會根據我們的搜尋歷史和購買歷史進行相似物品的推薦。

分類演算法(醫學上的腫瘤判斷)

如何判斷細胞是否屬於腫瘤細胞呢?腫瘤細胞和普通細胞,有差別。但是,需要非常有經驗的醫生,通過病理切片才能判斷。如果通過機器學習的方式,使得系統自動識別出腫瘤細胞。此時的效率,將會得到飛速的提公升。並且,通過主觀(醫生)+客觀(模型)的方式識別腫瘤細胞,結果交叉驗證,結論可能更加靠譜。

如何操作?通過分類模型識別。簡言之,包含兩個步驟。首先,通過一系列指標刻畫細胞特徵,例如細胞的半徑、質地、周長、面積、光滑度、對稱性、凹凸性等等,構成細胞特徵的資料。其次,在細胞特徵寬表的基礎上,通過搭建分類模型進行腫瘤細胞的判斷。

對於我們來說最簡單的應用案例。請看如下**應用

對於我們來說最簡單的應用案例。請看如下**應用,根據班級同學不同的分段給出評級。乙個班級裡不同分段的人數不是相等的,而是有著峰值和低谷。案例:將學生的百分制成績轉換為五分制成績:≥90 分: a,80~89分: b,70~79分: c,60~69分: d,<60分: e。一般程式寫法:

/**

* @author 張晨光

* 測試成績結果演算法1

*/public class testone else if(grade<70)else if(grade<80)else if(grade<90)else

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 else if(c>a&&c>b)else

max=b;

return max;

} //第2種寫法,其他比較幼稚的寫法,暫時不再提供

public static int getmax2(int a,int b,int c)

if(c>max)

return max;

} //三元運算子;

public static int getmax3(int a,int b,int c)

}

博雅資料機器學習10

博雅資料機器學習10 貝葉斯定理 計算隊1獲勝的概率prob win 1 prob win 1 1 prob win 0 計算隊1取勝時隊0是東道主的概率 prob win 1 home 0 1 prob win 1 home 1 計算隊0取勝時隊0是東道主的概率 prob win 0 home 0...

博雅資料機器學習09

博雅資料機器學習09 k近鄰演算法 宣告儲存k個鄰居的index的列表 index list 遍歷每個測試樣本的與訓練集的舉例,item型別為dict for item in distances item的型別為dict,即 使用sorted函式對item按照distance進行公升序排列,並取前1...

博雅資料機器學習06

博雅資料機器學習06 線性回歸 from sklearn import linear model from numpy import mat,array,mean 根據x和y訓練模型並計算 值y pred x insurance.drop charges axis 1 y insurance cha...