機器學習中各種算法的python小樣例

線性模型

決策樹

from sklearn.datasets import load_iris
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split

data = load_iris()

x_train, x_test, y_train, y_test = train_test_split(data.data, data.target, test_size=0.2)#劃分訓練集和驗證集  比例4:1


classifier=DecisionTreeClassifier(max_depth=4) #決策樹最大深度,默認使用基尼指數
classifier.fit(x_train, y_train)   #訓練

pred =classifier.predict(x_test)   #預測    返回預測值
score =classifier.score(x_test, y_test)   #用測試集測試正確率

print(pred, y_test)
print(score)

iris是sklearn中自帶的機器學習數據集,非常容易分類。通過load_iris()函數可以加載數據集,返回的是一個對象,對象包含data,target,feature_names,target_names,DESCR,filename,分別對應 屬性值,數據標籤,每列屬性的名字,標籤類別名,數據集描述,數據文件所在位置。
基尼值:從某屬性所有樣本中隨機抽出兩個,兩個樣本標籤不一樣的概率。顯然,基尼值越小,該屬性數據集的純度越大。
Gini(D)=1k=1ypk2Gini(D)=1-\sum^{|y|}_{k=1}p^2_k
基尼指數:屬性a的基尼指數定義爲:
Gini_index(D,a)=v=1VDvDGini(Dv)Gini\_index(D,a)=\sum^{V}_{v=1}\dfrac{|D^v|}{D}Gini(D^v)
所以,決策樹在某個節點時,應選擇基尼指數最小的屬性劃分該節點。

神經網絡

支持向量機

貝葉斯分類

聚類

參考

【1】周志華 機器學習
【2】https://github.com/pgmpy/pgmpy_notebook/blob/master/notebooks/1.%20Introduction%20to%20Probabilistic%20Graphical%20Models.ipynb

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章