iris分類解析python(IRIS百度百科)

本文目錄一覽:

如何用python實現隨機森林分類

大家如何使用scikit-learn包中的類方法來進行隨機森林演算法的預測。其中講的比較好的是各個參數的具體用途。

這裡我給出我的理解和部分翻譯:

參數說明:

最主要的兩個參數是n_estimators和max_features。

n_estimators:表示森林裡樹的個數。理論上是越大越好。但是伴隨著就是計算時間的增長。但是並不是取得越大就會越好,預測效果最好的將會出現在合理的樹個數。

max_features:隨機選擇特徵集合的子集合,並用來分割節點。子集合的個數越少,方差就會減少的越快,但同時偏差就會增加的越快。根據較好的實踐經驗。如果是回歸問題則:

max_features=n_features,如果是分類問題則max_features=sqrt(n_features)。

如果想獲取較好的結果,必須將max_depth=None,同時min_sample_split=1。

同時還要記得進行cross_validated(交叉驗證),除此之外記得在random forest中,bootstrap=True。但在extra-trees中,bootstrap=False。

這裡也給出一篇老外寫的文章:調整你的隨機森林模型參數 

這裡我使用了scikit-learn自帶的iris數據來進行隨機森林的預測:

[python] view plain copy

from sklearn.tree import DecisionTreeRegressor

from sklearn.ensemble import RandomForestRegressor

import numpy as np

from sklearn.datasets import load_iris

iris=load_iris()

#print iris#iris的4個屬性是:萼片寬度 萼片長度 花瓣寬度 花瓣長度 標籤是花的種類:setosa versicolour virginica

print iris[‘target’].shape

rf=RandomForestRegressor()#這裡使用了默認的參數設置

rf.fit(iris.data[:150],iris.target[:150])#進行模型的訓練

#

#隨機挑選兩個預測不相同的樣本

instance=iris.data[[100,109]]

print instance

print ‘instance 0 prediction;’,rf.predict(instance[0])

print ‘instance 1 prediction;’,rf.predict(instance[1])

print iris.target[100],iris.target[109]

返回的結果如下:

(150,)

[[ 6.3  3.3  6.   2.5]

 [ 7.2  3.6  6.1  2.5]]

instance 0 prediction; [ 2.]

instance 1 prediction; [ 2.]

2 2

在這裡我有點困惑,就是在scikit-learn演算法包中隨機森林實際上就是一顆顆決策樹組成的。但是之前我寫的決策樹博客中是可以將決策樹給顯示出來。但是隨機森林卻做了黑盒處理。我們不知道內部的決策樹結構,甚至連父節點的選擇特徵都不知道是誰。所以我給出下面的代碼(這代碼不是我的原創),可以顯示的顯示出所有的特徵的貢獻。所以對於貢獻不大的,甚至是負貢獻的我們可以考慮刪除這一列的特徵值,避免做無用的分類。

[python] view plain copy

from sklearn.cross_validation import cross_val_score, ShuffleSplit

X = iris[“data”]

Y = iris[“target”]

names = iris[“feature_names”]

rf = RandomForestRegressor()

scores = []

for i in range(X.shape[1]):

score = cross_val_score(rf, X[:, i:i+1], Y, scoring=”r2″,

cv=ShuffleSplit(len(X), 3, .3))

scores.append((round(np.mean(score), 3), names[i]))

print sorted(scores, reverse=True)

顯示的結果如下:

[(0.934, ‘petal width (cm)’), (0.929, ‘petal length (cm)’), (0.597, ‘sepal length (cm)’), (0.276, ‘sepal width (cm)’)]

這裡我們會發現petal width、petal length這兩個特徵將起到絕對的貢獻,之後是sepal length,影響最小的是sepal width。這段代碼將會提示我們各個特徵的貢獻,可以讓我們知道部分內部的結構。

python數據分析需要哪些庫?

1.Numpy庫

是Python開源的數值計算擴展工具,提供了Python對多維數組的支持,能夠支持高級的維度數組與矩陣運算。此外,針對數組運算也提供了大量的數學函數庫,Numpy是大部分Python科學計算的基礎,具有很多功能。

2.Pandas庫

是一個基於Numpy的數據分析包,為了解決數據分析任務而創建的。Pandas中納入了大量庫和標準的數據模型,提供了高效地操作大型數據集所需要的函數和方法,使用戶能快速便捷地處理數據。

3.Matplotlib庫

是一個用在Python中繪製數組的2D圖形庫,雖然它起源於模仿MATLAB圖形命令,但它獨立於MATLAB,可以通過Pythonic和面向對象的方式使用,是Python中Z出色的繪圖庫。主要用純Python語言編寫的,它大量使用Numpy和其他擴展代碼,即使對大型數組也能提供良好的性能。

4.Seaborn庫

是Python中基於Matplotlib的數據可視化工具,提供了很多高層封裝的函數,幫助數據分析人員快速繪製美觀的數據圖形,從而避免了許多額外的參數配置問題。

5.NLTK庫

被稱為使用Python進行教學和計算語言學工作的Z佳工具,以及用自然語言進行遊戲的神奇圖書館。NLTK是一個領先的平台,用於構建使用人類語言數據的Python程序,它為超過50個語料庫和辭彙資源提供了易於使用的介面,還提供了一套文本處理庫,用於分類、標記化、詞幹化、解析和語義推理、NLP庫的包裝器和一個活躍的討論社區。

python iris數據集在哪

from sklearn.datasets import load_iris

iris = load_iris()

print(iris.keys())

n_samples, n_features = iris.data.shape

print((n_samples, n_features))

print(iris.data[0])

print(iris.target.shape)

print(iris.target)

print(iris.target_names)

print(“feature_names:”,iris.feature_names)

sklearn中的iris數據集有5個key:

[『target_names』, 『data』, 『target』, 『DESCR』, 『feature_names』]

(150L, 4L)

data[0]:[ 5.1 3.5 1.4 0.2]

(『feature_names:』, [『sepal length (cm)』, 『sepal width (cm)』, 『petal length (cm)』, 『petal width (cm)』])

(150L,)

[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2

2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2

2 2]

[『setosa』 『versicolor』 『virginica』]

target_names : 分類名稱

target:分類(150個)

feature_names: 特徵名稱

data : 特徵值

原創文章,作者:ZUDK,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/146739.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
ZUDK的頭像ZUDK
上一篇 2024-10-31 15:32
下一篇 2024-10-31 15:32

相關推薦

  • Python列表中負數的個數

    Python列表是一個有序的集合,可以存儲多個不同類型的元素。而負數是指小於0的整數。在Python列表中,我們想要找到負數的個數,可以通過以下幾個方面進行實現。 一、使用循環遍歷…

    編程 2025-04-29
  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python清華鏡像下載

    Python清華鏡像是一個高質量的Python開發資源鏡像站,提供了Python及其相關的開發工具、框架和文檔的下載服務。本文將從以下幾個方面對Python清華鏡像下載進行詳細的闡…

    編程 2025-04-29
  • Python字典去重複工具

    使用Python語言編寫字典去重複工具,可幫助用戶快速去重複。 一、字典去重複工具的需求 在使用Python編寫程序時,我們經常需要處理數據文件,其中包含了大量的重複數據。為了方便…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智慧、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29
  • 蝴蝶優化演算法Python版

    蝴蝶優化演算法是一種基於仿生學的優化演算法,模仿自然界中的蝴蝶進行搜索。它可以應用於多個領域的優化問題,包括數學優化、工程問題、機器學習等。本文將從多個方面對蝴蝶優化演算法Python版…

    編程 2025-04-29

發表回復

登錄後才能評論