日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

机器学习实战-决策树-22

發布時間:2024/9/15 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 机器学习实战-决策树-22 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

機器學習實戰-決策樹-葉子分類

import numpy as np import pandas as pd import seaborn as sns import matplotlib.pyplot as pltfrom sklearn.preprocessing import LabelEncoder from sklearn.model_selection import train_test_split from sklearn.tree import DecisionTreeClassifier from sklearn.model_selection import GridSearchCV train = pd.read_csv('train.csv')

train.head()

train.shape

# 葉子類別數 len(train.species.unique())


Data Preparation

# 把字符串類別轉化為數字形式 lb = LabelEncoder().fit(train.species) labels = lb.transform(train.species) # 去掉'species', 'id'的列 data = train.drop(['species', 'id'], axis=1) data.head()


# 切分數據集 x_train,x_test,y_train,y_test = train_test_split(data, labels, test_size=0.3, stratify=labels)

建模分析

tree = DecisionTreeClassifier() tree.fit(x_train, y_train)



模型優化

# max_depth:樹的最大深度 # min_samples_split:內部節點再劃分所需最小樣本數 # min_samples_leaf:葉子節點最少樣本數 param_grid = {'max_depth': [30,40,50,60,70],'min_samples_split': [2,3,4,5,6],'min_samples_leaf':[1,2,3,4]} # 網格搜索 model = GridSearchCV(DecisionTreeClassifier(), param_grid, cv=3) model.fit(x_train, y_train) print(model.best_estimator_)

model.score(x_train, y_train)

model.score(x_test, y_test)

決策樹-動物分類

import pandas as pd import numpy as np # pip install missingno import missingno as msno import seaborn as sns import matplotlib.pyplot as plt from sklearn.tree import DecisionTreeClassifier from sklearn.model_selection import GridSearchCV data = pd.read_csv('zoo.csv') data.head()

# 查看數據形狀 data.shape

# 查看數據類型分布 data.dtypes

data.describe()

# 查看數據缺失情況 p=msno.bar(data)

# 畫熱力圖,數值為兩個變量之間的相關系數 plt.figure(figsize=(20,20)) p=sns.heatmap(data.corr(), annot=True, annot_kws = { 'fontsize' : 15 },square=True)

# 查看類別分布 pd.value_counts(data["class_type"])

# 獲取訓練數據和標簽 x_data = data.drop(['animal_name', 'class_type'], axis=1) y_data = data['class_type'] from sklearn.model_selection import train_test_split # 切分數據集,stratify=y表示切分后訓練集和測試集中的數據類型的比例跟切分前y中的比例一致 # 比如切分前y中0和1的比例為1:2,切分后y_train和y_test中0和1的比例也都是1:2 x_train,x_test,y_train,y_test = train_test_split(x_data, y_data, test_size=0.3, stratify=y_data) tree = DecisionTreeClassifier() tree.fit(x_train, y_train)

tree.score(x_test, y_test)


模型優化

param_grid = {'max_depth': [5,10,15,20,25],'min_samples_split': [2,3,4,5,6],'min_samples_leaf':[1,2,3,4]} model = GridSearchCV(DecisionTreeClassifier(), param_grid, cv=3, iid=True) model.fit(x_train, y_train) print(model.best_estimator_)

model.score(x_test, y_test)

param_grid = {'max_depth': [8,9,10,11,12],'min_samples_split': [2,3,4,5,6],'min_samples_leaf':[1,2,3,4]} model2 = GridSearchCV(DecisionTreeClassifier(), param_grid, cv=3, iid=True) model2.fit(x_train, y_train) print(model2.best_estimator_)

總結

以上是生活随笔為你收集整理的机器学习实战-决策树-22的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。