感知機程式碼
# -*- coding: utf-8 -*-
"""
Created on Wed Aug 7 20:50:03 2024
@author: 田雨
"""
# -*- coding: UTF-8 -*-
# 匯入iris資料集
from sklearn.datasets import load_iris
# 匯入資料劃分包
from sklearn.model_selection import train_test_split
# 匯入感知機模型包
from sklearn.linear_model import Perceptron
# 匯入基本函式庫
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
# 定義樣本數量
global Sample_num
Sample_num = 100
iris = load_iris()
## 取出iris的標籤
iris_target = iris.target
iris_features = pd.DataFrame(iris.data, columns=iris.feature_names)
## 將標籤併入陣列
iris_features['target'] = iris_target
iris_features.columns=['sepal length', 'sepal width', 'petal length', 'petal width', 'label']
# 取出樣本集,使用前兩個特徵
x = np.array(iris_features.iloc[:Sample_num,0:2])
y = iris_target[:Sample_num]
# 切分資料集,70%訓練集,30%測試集
x_train, x_test, y_train, y_test = train_test_split(x,y,test_size = 0.3)
# 定義感知機
pla = Perceptron(
fit_intercept=False, # 不計算偏置
shuffle = False # 在每個epoch重新打亂洗牌
)
# 模型訓練
pla.fit(x_train,y_train)
# 輸出權重和偏差
w = pla.coef_
b = pla.intercept_
print(f"權重(w) = {w}\n偏差(b) = {b}")
# 模型測試
result = pla.score(x_test,y_test)
print(f"測試結果準確率為:{result}")
#—————————————————————————— 畫圖——————————————————————————————
# 分開正例反例
# 正例橫座標
positive_x = [x[i,0] for i in range(Sample_num) if y[i] == 1]
# 正例縱座標
positive_y = [x[i,1] for i in range(Sample_num) if y[i] == 1]
# 反例橫座標
negetive_x = [x[i,0] for i in range(Sample_num) if y[i] == 0]
# 反例縱座標
negetive_y = [x[i,1] for i in range(Sample_num) if y[i] == 0]
# 畫出散點圖
plt.scatter(positive_x,positive_y,c='r')
plt.scatter(negetive_x,negetive_y,c='b')
# 畫出超平面
line_x = np.arange(4,8)
# w[0][0]x+w[0][1]y+b=0 => 斜率:-w[0][0]/w[0][1]) 截距:-b/w[0][1]
line_y = line_x*(-w[0][0]/w[0][1])-b/w[0][1]
plt.plot(line_x,line_y)
plt.show()
相關文章
- 感知機演算法(PLA)程式碼實現演算法
- 感知機模型模型
- 感知機介紹
- 感知機與支援向量機 (SVM)
- TensorFlow2程式設計練習——多層感知機MLP程式設計
- 感知機簡單實現
- HDFS的機架感知策略
- 感知機(perceptron)原理總結
- [python學習]機器學習 -- 感知機Python機器學習
- Hadoop安全模式和機架感知Hadoop模式
- [深度學習]多層感知機(MLP)深度學習
- 手擼機器學習演算法 - 感知機機器學習演算法
- 好程式設計師大資料學習路線分享Hadoop機架感知程式設計師大資料Hadoop
- 上下文感知與態勢感知或情境感知區別
- 利用orm 在業務程式碼無感知下,實現實現分庫分表ORM
- 程式的機器級程式碼表示
- jQuery打字機效果程式碼jQuery
- 機器視覺之外,機器人的感知補全計劃視覺機器人
- HDFS 02 - HDFS 的機制:副本機制、機架感知機制、負載均衡機制負載
- ML.NET 示例:推薦之場感知分解機
- SLAM +機器學習迎來了“感知時代”SLAM機器學習
- torch--多層感知機實現影像分類
- 使用Cilium增強Istio—通過Socket感知BPF程式
- github 程式碼commit機器人GithubMIT機器人
- 《深度學習入門》第 2 章 感知機 筆記深度學習筆記
- 統計學習方法筆記-感知機學習方法筆記
- Alink漫談(十五) :多層感知機 之 迭代優化優化
- 自動駕駛 Apollo 原始碼分析系列,感知篇(一)自動駕駛原始碼
- UI2Code智慧生成Flutter程式碼——機器生成程式碼UIFlutter
- 180行JavaScript程式碼實現的小球隨機移動程式碼JavaScript隨機
- 分詞工具Hanlp基於感知機的中文分詞框架HanLP中文分詞框架
- 統計學習方法c++實現之一 感知機
- 分類演算法-多層感知機 Multi-layer Perceptron演算法
- Alink漫談(十四) :多層感知機 之 總體架構架構
- 計算機如何感知大資料——聚類演算法計算機大資料聚類演算法
- C程式隨機種子原始碼C程式隨機原始碼
- JavaScript的程式碼執行機制JavaScript
- JavaScript 獲取主機名程式碼JavaScript