溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

python Logistic回歸怎么實現(xiàn)

發(fā)布時間:2022-01-12 17:26:45 來源:億速云 閱讀:183 作者:iii 欄目:大數(shù)據(jù)

本篇內(nèi)容主要講解“python Logistic回歸怎么實現(xiàn)”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“python Logistic回歸怎么實現(xiàn)”吧!

背景介紹

不要被它的名字弄糊涂!它是一種分類而非回歸算法。它用于根據(jù)給定的自變量集估計離散值(二進制值,如0/1,yes/no,true/false)。簡單來說,它通過將數(shù)據(jù)擬合到logit函數(shù)來預(yù)測事件發(fā)生的概率。因此,它也被稱為logit回歸。由于它預(yù)測概率,因此其輸出值介于0和1之間(如預(yù)期的那樣)。

再次,讓我們通過一個簡單的例子來嘗試理解這一點。

假設(shè)你的朋友給你一個難題來解決。只有2個結(jié)果場景 - 要么你解決它,要么你沒解決?,F(xiàn)在想象一下,你正在獲得各種各樣的謎題/測驗,試圖了解你擅長哪些科目。這項研究的結(jié)果將是這樣的 - 如果給你一個基于三角測量的十年級問題,你有70%的可能解決它。另一方面,如果是第五級歷史問題,獲得答案的概率僅為30%。這就是Logistic回歸為您提供的。

在數(shù)學(xué)領(lǐng)域,結(jié)果的對數(shù)幾率被建模為預(yù)測變量的線性組合:

odds= p/ (1-p) = probability of event occurrence / probability of not event occurrence
ln(odds) = ln(p/(1-p))
logit(p) = ln(p/(1-p)) = b0+b1X1+b2X2+b3X3....+bkXk
 

以上,p是存在感興趣特征的概率。它選擇的參數(shù)最大化觀察樣本值的可能性,而不是最小化誤差平方和(如普通回歸)。

現(xiàn)在,您可能會問,為什么要使用log函數(shù)?為簡單起見,我們只是說這是復(fù)制步進函數(shù)的最佳數(shù)學(xué)方法之一。我可以詳細介紹,但這會超出本文的目的。

python Logistic回歸怎么實現(xiàn)

來看使用python的scikit-learn完成的Logistic回歸案例:

python Logistic回歸怎么實現(xiàn)

python Logistic回歸怎么實現(xiàn)

python Logistic回歸怎么實現(xiàn)

代碼塊
# ## 使用Scikit-learn的LogisticRegression完成測試案例# In[30]:import pandas as pdfrom sklearn.linear_model import LogisticRegressionfrom sklearn.metrics import accuracy_score# ### 讀取訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)集# In[31]:train_data = pd.read_csv('train-data.csv')test_data = pd.read_csv('test-data.csv')print(train_data.head())# ### 打印訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)形狀# In[32]:print('Shape of training data :',train_data.shape)print('Shape of testing data :',test_data.shape)# In[33]:#現(xiàn)在,我們需要預(yù)測測試數(shù)據(jù)中缺少的目標變量# target變量 - Survived#在訓(xùn)練數(shù)據(jù)上分離獨立變量和目標變量train_x = train_data.drop(columns=['Survived'],axis=1)train_y = train_data['Survived']#在測試數(shù)據(jù)上分離獨立變量和目標變量test_x = test_data.drop(columns=['Survived'],axis=1)test_y = test_data['Survived']model = LogisticRegression(solver='liblinear')model.fit(train_x,train_y)# In[34]:#訓(xùn)練模型的系數(shù)print('Coefficient of model :', model.coef_)#攔截模型print('Intercept of model',model.intercept_)# In[35]:# 預(yù)測訓(xùn)練數(shù)據(jù)集predict_train = model.predict(train_x)# 訓(xùn)練數(shù)據(jù)集得分accuracy_train = accuracy_score(train_y,predict_train)print('accuracy_score on train dataset : ', accuracy_train)# In[36]:# 預(yù)測測試數(shù)據(jù)集predict_test = model.predict(test_x)# 測試數(shù)據(jù)集得分accuracy_test = accuracy_score(test_y,predict_test)print('accuracy_score on test dataset : ', accuracy_test)

到此,相信大家對“python Logistic回歸怎么實現(xiàn)”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI