最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于numpy實(shí)現(xiàn)邏輯回歸

 更新時(shí)間:2022年07月30日 09:37:23   作者:Giao哥不瘦到100不改名  
這篇文章主要為大家詳細(xì)介紹了基于numpy實(shí)現(xiàn)邏輯回歸,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了基于numpy實(shí)現(xiàn)邏輯回歸的具體代碼,供大家參考,具體內(nèi)容如下

交叉熵?fù)p失函數(shù);sigmoid激勵(lì)函數(shù)
基于numpy的邏輯回歸的程序如下:

import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets.samples_generator import make_classification

class logistic_regression():
? ? def __init__(self):
? ? ? ? pass
? ? def sigmoid(self, x):
? ? ? ? z = 1 /(1 + np.exp(-x))
? ? ? ? return z

? ? def initialize_params(self, dims):
? ? ? ? W = np.zeros((dims, 1))
? ? ? ? b = 0
? ? ? ? return W, b

? ? def logistic(self, X, y, W, b):
? ? ? ? num_train = X.shape[0]
? ? ? ? num_feature = X.shape[1]
? ? ? ? a = self.sigmoid(np.dot(X, W) + b)
? ? ? ? cost = -1 / num_train * np.sum(y * np.log(a) + (1 - y) * np.log(1 - a))
? ? ? ? dW = np.dot(X.T, (a - y)) / num_train
? ? ? ? db = np.sum(a - y) / num_train
? ? ? ? cost = np.squeeze(cost)#[]列向量,易于plot
? ? ? ? return a, cost, dW, db

? ? def logistic_train(self, X, y, learning_rate, epochs):
? ? ? ? W, b = self.initialize_params(X.shape[1])
? ? ? ? cost_list = []
? ? ? ? for i in range(epochs):
? ? ? ? ? ? a, cost, dW, db = self.logistic(X, y, W, b)
? ? ? ? ? ? W = W - learning_rate * dW
? ? ? ? ? ? b = b - learning_rate * db
? ? ? ? ? ? if i % 100 == 0:
? ? ? ? ? ? ? ? cost_list.append(cost)
? ? ? ? ? ? if i % 100 == 0:
? ? ? ? ? ? ? ? print('epoch %d cost %f' % (i, cost))
? ? ? ? params = {
? ? ? ? ? ? 'W': W,
? ? ? ? ? ? 'b': b
? ? ? ? }
? ? ? ? grads = {
? ? ? ? ? ? 'dW': dW,
? ? ? ? ? ? 'db': db
? ? ? ? }
? ? ? ? return cost_list, params, grads

? ? def predict(self, X, params):
? ? ? ? y_prediction = self.sigmoid(np.dot(X, params['W']) + params['b'])
? ? ? ? #二分類
? ? ? ? for i in range(len(y_prediction)):
? ? ? ? ? ? if y_prediction[i] > 0.5:
? ? ? ? ? ? ? ? y_prediction[i] = 1
? ? ? ? ? ? else:
? ? ? ? ? ? ? ? y_prediction[i] = 0
? ? ? ? return y_prediction

? ? #精確度計(jì)算
? ? def accuracy(self, y_test, y_pred):
? ? ? ? correct_count = 0
? ? ? ? for i in range(len(y_test)):
? ? ? ? ? ? for j in range(len(y_pred)):
? ? ? ? ? ? ? ? if y_test[i] == y_pred[j] and i == j:
? ? ? ? ? ? ? ? ? ? correct_count += 1
? ? ? ? accuracy_score = correct_count / len(y_test)
? ? ? ? return accuracy_score

? ? #創(chuàng)建數(shù)據(jù)
? ? def create_data(self):
? ? ? ? X, labels = make_classification(n_samples=100, n_features=2, n_redundant=0, n_informative=2)
? ? ? ? labels = labels.reshape((-1, 1))
? ? ? ? offset = int(X.shape[0] * 0.9)
? ? ? ? #訓(xùn)練集與測(cè)試集的劃分
? ? ? ? X_train, y_train = X[:offset], labels[:offset]
? ? ? ? X_test, y_test = X[offset:], labels[offset:]
? ? ? ? return X_train, y_train, X_test, y_test

? ? #畫(huà)圖函數(shù)
? ? def plot_logistic(self, X_train, y_train, params):
? ? ? ? n = X_train.shape[0]
? ? ? ? xcord1 = []
? ? ? ? ycord1 = []
? ? ? ? xcord2 = []
? ? ? ? ycord2 = []
? ? ? ? for i in range(n):
? ? ? ? ? ? if y_train[i] == 1:#1類
? ? ? ? ? ? ? ? xcord1.append(X_train[i][0])
? ? ? ? ? ? ? ? ycord1.append(X_train[i][1])
? ? ? ? ? ? else:#0類
? ? ? ? ? ? ? ? xcord2.append(X_train[i][0])
? ? ? ? ? ? ? ? ycord2.append(X_train[i][1])
? ? ? ? fig = plt.figure()
? ? ? ? ax = fig.add_subplot(111)
? ? ? ? ax.scatter(xcord1, ycord1, s=32, c='red')
? ? ? ? ax.scatter(xcord2, ycord2, s=32, c='green')#畫(huà)點(diǎn)
? ? ? ? x = np.arange(-1.5, 3, 0.1)
? ? ? ? y = (-params['b'] - params['W'][0] * x) / params['W'][1]#畫(huà)二分類直線
? ? ? ? ax.plot(x, y)
? ? ? ? plt.xlabel('X1')
? ? ? ? plt.ylabel('X2')
? ? ? ? plt.show()


if __name__ == "__main__":
? ? model = logistic_regression()
? ? X_train, y_train, X_test, y_test = model.create_data()
? ? print(X_train.shape, y_train.shape, X_test.shape, y_test.shape)
? ? # (90, 2)(90, 1)(10, 2)(10, 1)
? ? #訓(xùn)練模型
? ? cost_list, params, grads = model.logistic_train(X_train, y_train, 0.01, 1000)
? ? print(params)
? ? #計(jì)算精確度
? ? y_train_pred = model.predict(X_train, params)
? ? accuracy_score_train = model.accuracy(y_train, y_train_pred)
? ? print('train accuracy is:', accuracy_score_train)
? ? y_test_pred = model.predict(X_test, params)
? ? accuracy_score_test = model.accuracy(y_test, y_test_pred)
? ? print('test accuracy is:', accuracy_score_test)
? ? model.plot_logistic(X_train, y_train, params)

結(jié)果如下所示:

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • python+POP3實(shí)現(xiàn)批量下載郵件附件

    python+POP3實(shí)現(xiàn)批量下載郵件附件

    這篇文章主要為大家詳細(xì)介紹了python+POP3實(shí)現(xiàn)批量下載郵件附件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • Keras保存模型并載入模型繼續(xù)訓(xùn)練的實(shí)現(xiàn)

    Keras保存模型并載入模型繼續(xù)訓(xùn)練的實(shí)現(xiàn)

    這篇文章主要介紹了Keras保存模型并載入模型繼續(xù)訓(xùn)練的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • Python基礎(chǔ)之Spyder的使用

    Python基礎(chǔ)之Spyder的使用

    Spyder是一個(gè)用于科學(xué)計(jì)算的使用Python編程語(yǔ)言的集成開(kāi)發(fā)環(huán)境(IDE),它結(jié)合了綜合開(kāi)發(fā)工具的高級(jí)編輯、分析、調(diào)試等功能,需要的朋友可以參考下
    2023-05-05
  • python自動(dòng)化測(cè)試之破解滑動(dòng)驗(yàn)證碼

    python自動(dòng)化測(cè)試之破解滑動(dòng)驗(yàn)證碼

    這篇文章介紹了python自動(dòng)化破解之破解滑動(dòng)驗(yàn)證碼的解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • python中count函數(shù)簡(jiǎn)單用法

    python中count函數(shù)簡(jiǎn)單用法

    在本篇文章里小編給大家整理的是一篇關(guān)于python中count函數(shù)簡(jiǎn)單用法以及相關(guān)實(shí)例,需要的朋友們學(xué)習(xí)下。
    2020-01-01
  • python并發(fā)編程多進(jìn)程之守護(hù)進(jìn)程原理解析

    python并發(fā)編程多進(jìn)程之守護(hù)進(jìn)程原理解析

    這篇文章主要介紹了python并發(fā)編程多進(jìn)程之守護(hù)進(jìn)程原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • Python字典操作簡(jiǎn)明總結(jié)

    Python字典操作簡(jiǎn)明總結(jié)

    這篇文章主要介紹了Python字典操作簡(jiǎn)明總結(jié),本文總結(jié)了創(chuàng)建字典 、創(chuàng)建一個(gè)"默認(rèn)"字典、遍歷字典、獲得value值、成員操作符:in或not in 、更新字典、刪除字典等常用操作,需要的朋友可以參考下
    2015-04-04
  • Python format函數(shù)詳談

    Python format函數(shù)詳談

    這篇文章主要介紹了Python中用format函數(shù)格式化字符串的用法,格式化字符串是Python學(xué)習(xí)當(dāng)中的基礎(chǔ)知識(shí),希望能夠給你帶來(lái)幫助
    2021-10-10
  • Python使用ClickHouse的實(shí)踐與踩坑記錄

    Python使用ClickHouse的實(shí)踐與踩坑記錄

    這篇文章主要介紹了Python使用ClickHouse的實(shí)踐與踩坑記錄,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • 詳解selenium + chromedriver 被反爬的解決方法

    詳解selenium + chromedriver 被反爬的解決方法

    這篇文章主要介紹了詳解selenium + chromedriver 被反爬的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10

最新評(píng)論

泸定县| 南安市| 清水县| 抚松县| 平乐县| 宁武县| 博野县| 应用必备| 高密市| 烟台市| 全南县| 闽清县| 集安市| 乐都县| 天台县| 普洱| 武陟县| 鸡东县| 卢龙县| 大竹县| 汉川市| 游戏| 丘北县| 巴彦县| 大港区| 廉江市| 灵武市| 通渭县| 北碚区| 盐池县| 土默特左旗| 女性| 天台县| 易门县| 东乡族自治县| 永昌县| 壶关县| 黑山县| 即墨市| 兰考县| 江孜县|