感知機algorithm實現鳶尾花資料集分類

2021-10-10 04:39:31 字數 1331 閱讀 6978

感知機是乙個非常基礎的二分類的演算法,是演算法小白入門機器學習的必學內容,是神經網路和svm的基礎。好了,不蝦扯蛋了,上**。

# 感知機實現鳶尾花資料集的分類

import pandas as pd

import numpy as np

from sklearn.datasets import load_iris

# 匯入線性模型中的感知機模型

from sklearn.linear_model import perceptron

iris = load_iris()

# 將鳶尾花中的資料轉化為pandas中的資料形式

df = pd.dataframe(iris.data,columns=iris.feature_names)

# 將鳶尾花資料集中的標籤定義為資料框的標籤

df['label'] = iris.target

# 定義資料集

df.columns = ['sepal length','sepal width','petal length','petal width','label']

# 統計鳶尾花資料集中各個標籤類別的樣本個數

df.label.value_counts()

data = np.array(df.iloc[:100,[0,1,-1]]) #iloc['row','column'] # 轉移了df中的資料

# 切片的應用 索引data變數中的第0和第1列

x = data[:,:-1]

# 切片的應用 索引data中的最後一列

y = data[:,-1]

y = np.array([1 if i ==1 else -1 for i in y])

clf = perceptron(fit_intercept=true,max_iter=1000,shuffle=false)

# 採用感知機模型進行線性分類器擬合,擬合的資料為x和y

clf.fit(x,y)

# 求出權重向量引數值

print(clf.coef_)

# 求出截距項引數值

print(clf.intercept_)

我已經注釋的很明白了,你們要是再看不懂,那我這口老血都要吐出來了。

不要問我為什麼不能視覺化,問就是不會。

**小總結:**其實這部分**最重要的部分就是利用pandas和numpy進行特徵資料處理的部分,建議大家可以集中學習一下pandas和numpy,受益非淺,利用python進行機器學習,我覺得我們能做的最重要的部分也就是資料預處理部分了,這部分內容的確很豐富,其他部分就是調包,調包,還是調包。

python實現感知機

import numpy as np 定義啟用函式 def acti fun x return 1 if x 0 else 0 建立感知器類 class perception object 初始化權重 def init self self.weights 0 self.bias 1 定義訓練函式,包...

python實現AND感知機

and感知機通過訓練後,可以進行邏輯 與 的運算。例如 當輸入 1,1時,輸出為1 輸入1,0時,輸出為0。通過上圖,我們可以發現 0,0 0,1 1,0 這三個點數表示輸出為0,而點 1,1 表示輸出為1,所以我們可以近似找到一條直線將輸出為0的點與輸出為1的點分隔開。我們可以通過不斷訓練係數 即...

感知機python實現

有用請點贊,沒用請差評。感知機原理參考部落格 演算法引用李航博士 統計學習方法 p29.感知機 import numpy as np import matplotlib.pyplot as plt class perceptron object def init self,eta 1,iter 50...