国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

機器學(xué)習實戰(zhàn):Python基于Logistic邏輯回歸進行分類預(yù)測(一)

這篇具有很好參考價值的文章主要介紹了機器學(xué)習實戰(zhàn):Python基于Logistic邏輯回歸進行分類預(yù)測(一)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1 前言

1.1 Logistic回歸的介紹

邏輯回歸(Logistic regression,簡稱LR)是一種經(jīng)典的二分類算法,它將輸入特征與一個sigmoid函數(shù)進行線性組合,從而預(yù)測輸出標簽的概率。該算法常被用于預(yù)測離散的二元結(jié)果,例如是/否、真/假等。

優(yōu)點:

  • 實現(xiàn)簡單。Logistic回歸的參數(shù)可以用極大似然估計法進行求解,算法本身非常簡單。

  • 速度快。Logistic回歸計算量小,訓(xùn)練速度快。

  • 輸出結(jié)果易于理解。Logistic回歸的輸出結(jié)果是概率,易于解釋。

  • 容易擴展。Logistic回歸可用于多分類問題和不平衡數(shù)據(jù)集。

缺點:

  • 只適用于線性可分的問題。當特征之間存在非線性關(guān)系時,Logistic回歸的效果會受到限制。

  • 對異常值敏感。由于Logistic回歸使用了sigmoid函數(shù),對于異常值非常敏感。

  • 容易欠擬合。當特征與目標變量之間的關(guān)系非常復(fù)雜時,Logistic回歸很容易出現(xiàn)欠擬合現(xiàn)象。

1.2 Logistic回歸的應(yīng)用

Logistic回歸廣泛應(yīng)用于許多領(lǐng)域,包括:

  1. 金融風險評估。銀行和信用卡公司使用Logistic回歸來評估借款人的信用風險,預(yù)測貸款違約的概率。

  2. 醫(yī)學(xué)診斷。Logistic回歸可以用于預(yù)測患者是否患有某種疾病或病情的嚴重程度。

  3. 市場分析。Logistic回歸可以用于預(yù)測產(chǎn)品或服務(wù)的市場需求,并幫助企業(yè)做出更好的決策。

  4. 自然語言處理。Logistic回歸可以用于文本分類,例如判斷一段文本是否屬于某個主題或情感極性。

  5. 圖像處理。Logistic回歸可以用于圖像分類和目標檢測,例如識別數(shù)字和字母。

總之,Logistic回歸是一種靈活的算法,可以應(yīng)用于許多不同的領(lǐng)域和問題,特別是在需要預(yù)測二元結(jié)果的場景中表現(xiàn)出色。

2 iris數(shù)據(jù)集數(shù)據(jù)處理

iris數(shù)據(jù)集共有150個樣本,目標變量為花的類別其都屬于鳶尾屬下的三個亞屬(target),分別是山鳶尾 (Iris-setosa),變色鳶尾(Iris-versicolor)和維吉尼亞鳶尾(Iris-virginica)。

四個特征,分別是花萼長度(sepal length)、花萼寬度(sepal width)、花瓣長度(petal length)、花瓣寬度(petal width)。

2.1 導(dǎo)入函數(shù)

import numpy as np 
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

2.2 導(dǎo)入數(shù)據(jù)

from sklearn.datasets import load_iris
data = load_iris() 
iris_target = data.target 
iris_features = pd.DataFrame(data=data.data, columns=data.feature_names) #利用Pandas轉(zhuǎn)化為DataFrame格式

2.3 簡單數(shù)據(jù)查看

## 查看數(shù)據(jù)的整體信息
iris_features.info()

## 查看每個類別數(shù)量
pd.Series(iris_target).value_counts()

機器學(xué)習實戰(zhàn):Python基于Logistic邏輯回歸進行分類預(yù)測(一)

## 查看head或tail
iris_features.head()
#iris_features.tail()

機器學(xué)習實戰(zhàn):Python基于Logistic邏輯回歸進行分類預(yù)測(一)

## 對于特征進行一些統(tǒng)計描述
iris_features.describe()

機器學(xué)習實戰(zhàn):Python基于Logistic邏輯回歸進行分類預(yù)測(一)

3 可視化

3.1 條形圖/散點圖

## 合并標簽和特征信息
iris_all = iris_features.copy() ##進行淺拷貝,防止對于原始數(shù)據(jù)的修改
iris_all['target'] = iris_target

## 可視化
sns.pairplot(data=iris_all,diag_kind='hist', hue= 'target')
plt.show()

機器學(xué)習實戰(zhàn):Python基于Logistic邏輯回歸進行分類預(yù)測(一)

從結(jié)果可以發(fā)現(xiàn),在2D情況下不同的特征組合對于不同類別的花的散點分布,以及大概的區(qū)分能力。

3.2 箱線圖

## 構(gòu)建畫布2x2
import matplotlib.pyplot as plt
fig, axes = plt.subplots(nrows=2, ncols=2, figsize=(10, 8))

## 可視化
for i, col in enumerate(iris_features.columns):
    sns.boxplot(ax=axes[i//2, i%2], x='target', y=col, saturation=0.5, palette='pastel', data=iris_all)
    axes[i//2, i%2].set_title(col)

plt.tight_layout()
plt.show()

機器學(xué)習實戰(zhàn):Python基于Logistic邏輯回歸進行分類預(yù)測(一)

3.3 三維散點圖

from mpl_toolkits.mplot3d import Axes3D

fig = plt.figure(figsize=(10,8))
ax = fig.add_subplot(111, projection='3d')

iris_all_class0 = iris_all[iris_all['target']==0].values
iris_all_class1 = iris_all[iris_all['target']==1].values
iris_all_class2 = iris_all[iris_all['target']==2].values
# 'setosa'(0), 'versicolor'(1), 'virginica'(2)
ax.scatter(iris_all_class0[:,0], iris_all_class0[:,1], iris_all_class0[:,2],label='setosa')
ax.scatter(iris_all_class1[:,0], iris_all_class1[:,1], iris_all_class1[:,2],label='versicolor')
ax.scatter(iris_all_class2[:,0], iris_all_class2[:,1], iris_all_class2[:,2],label='virginica')
plt.legend()

plt.show()

機器學(xué)習實戰(zhàn):Python基于Logistic邏輯回歸進行分類預(yù)測(一)

4 建模預(yù)測

4.1 二分類預(yù)測

## 劃分為訓(xùn)練集和測試集
from sklearn.model_selection import train_test_split

## 選擇其類別為0和1的樣本 (不包括類別為2的樣本)
iris_features_part = iris_features.iloc[:100]
iris_target_part = iris_target[:100]

## 訓(xùn)練集測試集7/3分
x_train, x_test, y_train, y_test = train_test_split(iris_features_part, iris_target_part, test_size = 0.3, random_state = 2020)

## 從sklearn中導(dǎo)入邏輯回歸模型
from sklearn.linear_model import LogisticRegression
clf = LogisticRegression(random_state=0, solver='lbfgs')

# 訓(xùn)練模型
clf.fit(x_train, y_train)
## 查看其對應(yīng)的w
print('the weight of Logistic Regression:',clf.coef_)

## 查看其對應(yīng)的w0
print('the intercept(w0) of Logistic Regression:',clf.intercept_)

機器學(xué)習實戰(zhàn):Python基于Logistic邏輯回歸進行分類預(yù)測(一)

## 預(yù)測模型
train_predict = clf.predict(x_train)
test_predict = clf.predict(x_test)
from sklearn import metrics

## 利用accuracy(準確度)評估模型效果
print('The accuracy of the Logistic Regression is:',metrics.accuracy_score(y_train,train_predict))
print('The accuracy of the Logistic Regression is:',metrics.accuracy_score(y_test,test_predict))

## 查看混淆矩陣 (預(yù)測值和真實值的各類情況統(tǒng)計矩陣)
confusion_matrix_result = metrics.confusion_matrix(test_predict,y_test)
print('The confusion matrix result:\n',confusion_matrix_result)

# 可視化
plt.figure(figsize=(8, 6))
sns.heatmap(confusion_matrix_result, annot=True, cmap='Blues')
plt.xlabel('Predicted labels')
plt.ylabel('True labels')
plt.show()

機器學(xué)習實戰(zhàn):Python基于Logistic邏輯回歸進行分類預(yù)測(一)

結(jié)果準確度為1,代表所有的樣本都預(yù)測正確了,絕殺

4.2 多分類預(yù)測

## 訓(xùn)練集測試集還是7/3分
x_train, x_test, y_train, y_test = train_test_split(iris_features, iris_target, test_size = 0.3, random_state = 2020)

## 建模 
clf = LogisticRegression(random_state=0, solver='lbfgs')

## 訓(xùn)練模型
clf.fit(x_train, y_train)

機器學(xué)習實戰(zhàn):Python基于Logistic邏輯回歸進行分類預(yù)測(一)

## 預(yù)測模型
train_predict = clf.predict(x_train)
test_predict = clf.predict(x_test)

## p = p(y=1|x,\theta)),預(yù)測模型概率
train_predict_proba = clf.predict_proba(x_train)
test_predict_proba = clf.predict_proba(x_test)

print('The test predict Probability of each class:\n',test_predict_proba)
## 其中第一列代表預(yù)測為0類的概率,第二列代表預(yù)測為1類的概率,第三列代表預(yù)測為2類的概率。

## 利用accuracy評估模型效果
print('The accuracy of the Logistic Regression is:',metrics.accuracy_score(y_train,train_predict))
print('The accuracy of the Logistic Regression is:',metrics.accuracy_score(y_test,test_predict))

機器學(xué)習實戰(zhàn):Python基于Logistic邏輯回歸進行分類預(yù)測(一)

比起二分類的1略小,但均大于0.9

## 查看混淆矩陣
confusion_matrix_result = metrics.confusion_matrix(test_predict,y_test)
print('The confusion matrix result:\n',confusion_matrix_result)

# 可視化
plt.figure(figsize=(8, 6))
sns.heatmap(confusion_matrix_result, annot=True, cmap='Blues')
plt.xlabel('Predicted labels')
plt.ylabel('True labels')
plt.show()

機器學(xué)習實戰(zhàn):Python基于Logistic邏輯回歸進行分類預(yù)測(一)

根據(jù)結(jié)果發(fā)現(xiàn),其在三分類的結(jié)果的預(yù)測準確度上有所下降,但好在測試集還有91%,這是由于versicolor(1)virginica(2)這兩個類別的特征,我們從可視化的時候也可以發(fā)現(xiàn),其特征的邊界具有一定的模糊性(邊界類別混雜,沒有明顯區(qū)分邊界),所有在這兩類的預(yù)測上出現(xiàn)了一定的錯誤。

5 討論

Logistic回歸雖然名字里帶“回歸”,但是它實際上是一種分類方法,主要用于兩分類問題(即輸出只有兩種,分別代表兩個類別),所以利用了Logistic函數(shù)(或稱為Sigmoid函數(shù)

原理的簡單解釋:當z=>0時, y=>0.5,分類為1,當z<0時, y<0.5,分類為0,其對應(yīng)的y值我們可以視為類別1的概率預(yù)測值,而多分類其實就是將多個二分類的邏輯回歸組合。

機器學(xué)習實戰(zhàn):Python基于Logistic邏輯回歸進行分類預(yù)測(一)文章來源地址http://www.zghlxwxcb.cn/news/detail-478171.html

到了這里,關(guān)于機器學(xué)習實戰(zhàn):Python基于Logistic邏輯回歸進行分類預(yù)測(一)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 吳恩達老師《機器學(xué)習》課后習題2之邏輯回歸(logistic_regression)

    吳恩達老師《機器學(xué)習》課后習題2之邏輯回歸(logistic_regression)

    用于解決輸出標簽y為0或1的二元分類問題 判斷郵件是否屬于垃圾郵件? 銀行卡交易是否屬于詐騙? 腫瘤是否為良性? 等等。 案例:根據(jù)學(xué)生的兩門學(xué)生成績,建立一個邏輯回歸模型,預(yù)測該學(xué)生是否會被大學(xué)錄取 數(shù)據(jù)集:ex2data1.txt python實現(xiàn)邏輯回歸, 目標:建立分類器(求

    2024年02月09日
    瀏覽(25)
  • Logistic回歸(邏輯回歸)實戰(zhàn)案例分析

    Logistic回歸(邏輯回歸)實戰(zhàn)案例分析

    Lgistic回歸也叫邏輯回歸,是廣義線性回歸的一種,通常用于解決二分類問題。 表達式如下: 經(jīng)過logit變換,則可以寫成廣義線性表達式 通常做回歸是用其廣義線性表達式,且logistic回歸的結(jié)果概率表現(xiàn)為S型曲線,一般以小于0.5的樣本都分類為0,大于0.5的樣本都分類為1。

    2024年04月25日
    瀏覽(41)
  • 【Python機器學(xué)習】實驗04 多分類實踐(基于邏輯回歸)

    【Python機器學(xué)習】實驗04 多分類實踐(基于邏輯回歸)

    Iris數(shù)據(jù)集是常用的分類實驗數(shù)據(jù)集,由Fisher, 1936收集整理。Iris也稱鳶尾花卉數(shù)據(jù)集,是一類多重變量分析的數(shù)據(jù)集。數(shù)據(jù)集包含150個數(shù)據(jù)樣本,分為3類,每類50個數(shù)據(jù),每個數(shù)據(jù)包含4個屬性??赏ㄟ^花萼長度,花萼寬度,花瓣長度,花瓣寬度4個屬性預(yù)測鳶尾花卉屬于(Se

    2024年02月11日
    瀏覽(26)
  • 【Python機器學(xué)習】實驗04(1) 多分類(基于邏輯回歸)實踐

    【Python機器學(xué)習】實驗04(1) 多分類(基于邏輯回歸)實踐

    Iris數(shù)據(jù)集是常用的分類實驗數(shù)據(jù)集,由Fisher, 1936收集整理。Iris也稱鳶尾花卉數(shù)據(jù)集,是一類多重變量分析的數(shù)據(jù)集。數(shù)據(jù)集包含150個數(shù)據(jù)樣本,分為3類,每類50個數(shù)據(jù),每個數(shù)據(jù)包含4個屬性??赏ㄟ^花萼長度,花萼寬度,花瓣長度,花瓣寬度4個屬性預(yù)測鳶尾花卉屬于(Se

    2024年02月14日
    瀏覽(19)
  • 【Python機器學(xué)習】決策樹、邏輯回歸、神經(jīng)網(wǎng)絡(luò)等模型對電信用戶流失分類實戰(zhàn)(附源碼和數(shù)據(jù)集)

    【Python機器學(xué)習】決策樹、邏輯回歸、神經(jīng)網(wǎng)絡(luò)等模型對電信用戶流失分類實戰(zhàn)(附源碼和數(shù)據(jù)集)

    需要源碼和數(shù)據(jù)集請點贊關(guān)注收藏后評論區(qū)留言私信~~~ 該實例數(shù)據(jù)來自kaggle,它的每一條數(shù)據(jù)為一個用戶的信息,共有21個有效字段,其中最后一個字段Churn標志該用戶是否流失 ? 可用pandas的read_csv()函數(shù)來讀取數(shù)據(jù),用DataFrame的head()、shape、info()、duplicated()、nunique()等來初步

    2024年02月03日
    瀏覽(29)
  • Logistic回歸(邏輯回歸)及python代碼實現(xiàn)

    Logistic回歸(邏輯回歸)及python代碼實現(xiàn)

    在模式識別問題中,所關(guān)心的量是分類,比如是否會患有某種疾病,這時就不能用簡單的線性回歸來完成這個問題了。為了解決次問題,我們引入了非線性激活函數(shù) g : R D → ( 0 , 1 ) g:{mathbb R}^Dto(0,1) g : R D → ( 0 , 1 ) 來預(yù)測類別標簽的后驗概率 p ( y = 1 ∣ x ) p(y=1|bf x) p ( y =

    2024年02月07日
    瀏覽(21)
  • 基于weka手工實現(xiàn)邏輯斯諦回歸(Logistic回歸)

    邏輯斯諦回歸模型其實是一種分類模型,這里實現(xiàn)的是參考李航的《統(tǒng)計機器學(xué)習》以及周志華的《機器學(xué)習》兩本教材來整理實現(xiàn)的。 假定我們的輸入為 x x x , x x x 可以是多個維度的,我們想要根據(jù) x x x 去預(yù)測 y y y , y ∈ { 0 , 1 } yin {0,1} y ∈ { 0 , 1 } 。邏輯斯諦的模型

    2024年02月15日
    瀏覽(18)
  • pytorch深度學(xué)習邏輯回歸 logistic regression

    pytorch深度學(xué)習邏輯回歸 logistic regression

    結(jié)果 ?

    2024年02月16日
    瀏覽(21)
  • Python實現(xiàn)邏輯回歸(Logistic Regression)

    Python實現(xiàn)邏輯回歸(Logistic Regression)

    ?? 項目專欄:【Python實現(xiàn)經(jīng)典機器學(xué)習算法】附代碼+原理介紹 ?? 最近粉絲群中很多朋友私信咨詢一些決策樹、邏輯回歸等機器學(xué)習相關(guān)的編程問題,為了能更清晰的說明,所以建立了本專欄 專門記錄基于原生Python實現(xiàn)一些入門必學(xué)的機器學(xué)習算法 ,幫助廣大零基礎(chǔ)用戶

    2024年02月01日
    瀏覽(27)
  • 邏輯回歸(Logistic回歸又名對數(shù)幾率回歸)原理及python代碼實現(xiàn)

    ????????為了實現(xiàn)Logistic回歸分類器,我們可以在每個特征上都乘以一個回歸系數(shù),然后把所有的結(jié)果值相加,將這個總和代人Sigmoid函數(shù)中,進而得到一個范圍在0~1之間的數(shù)值。任何大于0.5的數(shù)據(jù)被分人1類 ,小于0.5即被歸人0類 ,所以Logistic回歸也可以被看成是一種概率估

    2024年01月18日
    瀏覽(17)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包