python機器學習之用決策樹處理鐵達尼號資料

2021-10-06 11:24:42 字數 1733 閱讀 8456

首先需要引入需要的類

from sklearn.tree import decisiontreeclassifier,export_graphviz

from sklearn.feature_extraction import dictvectorizer

from sklearn.model_selection import train_test_split
然後寫入函式tree_titanic()

def tree_titanic():

path="e:\data\\titanic.csv" #注意此處『\t』會被認為是特殊字元,需要加兩個『\』

titanic=pd.read_csv(path)

print("type(titanic):",type(titanic))

#1.處理特徵值和目標值

x=titanic[["pclass","age","***"]]#注意此處dataframe選用多個列的時候,要用兩個中括號「」

print(x)

y=titanic["survived"]

print(y)

# print("x1:",x,type(x))

#2.特徵值處理

# (1)缺失值處理

x["age"].fillna(x["age"].mean(), inplace=true)#注意此處我剛開始時犯了乙個錯誤,好長時間才找到,是mean(),而不是mean

# print("x2:", x)

# #(2)轉化成字典

x=x.to_dict(orient="records")

print("x3:", x)

# #3.資料集劃分

x_train, x_test, y_train, y_test=train_test_split(x, y, random_state=22)

# print(x_train)

# #4.字典特徵抽取

transfer=dictvectorizer()

x_train= transfer.fit_transform(x_train)

x_test=transfer.transform(x_test)

#5.決策樹預估器

estimator=decisiontreeclassifier(criterion="entropy")

estimator.fit(x_train,y_train)

#6.模型評估

#(1)方法1:直接比對真實值和**值

y_predict = estimator.predict(x_test)

print("y_predict:\n", y_predict)

print("直接比對真實值和**值:\n", y_test == y_predict)

# (2).計算準確率

score = estimator.score(x_test, y_test)

print("準確率為:\n", score)

#7.視覺化決策樹

export_graphviz(estimator, out_file="titanic_tree.dot", feature_names=transfer.get_feature_names())

return none

結果為:

機器學習 決策樹

一 基本概念 決策樹 decision tree 是一種基本的分類與回歸方法。決策樹模型呈樹形結構,在分類問題中,表示屬於特徵對例項進行分類的過程,它可以認為是if then規則的集合,也可以認為是電議在特徵空間與類空空上的條件概率分布,其主要優點是模型具有可讀性,分類速度快。決策樹的學習通常包括3...

機器學習 決策樹

我覺得決策樹是機器學習所有演算法中最可愛的了 沒有那麼多複雜的數學公式哈哈 下圖是一棵決策樹,用來判斷西瓜是好瓜還是壞瓜 決策過程中提出的每個判定問題都是都對某個屬性的測試,每個測試結果要麼推導出最終結論,要麼匯出進一步判斷的問題,在上次決策結果限定的範圍內做進一步判斷。從上圖可以看出,葉節點對應決...

機器學習 決策樹

一 演算法簡介 決策樹一般都是自上而下來生成的,每個決策後事件 即自然狀態 都可能引出兩個或多個事件,導致結果的不同,把這種結構分支畫成形狀很像一棵樹的枝幹,故稱為決策樹。決策樹能夠讀取資料集合,並且決策樹很多任務都是為了資料中所蘊含的知識資訊,因此決策樹可以使用不熟悉的資料集合,並從中提取一系列規...