標籤:

線性回歸和邏輯回歸代碼部分(五)

from collections import OrderedDictimport pandas as pd#數據集examDict={ 學習時間:[0.50,0.75,1.00,1.25,1.50,1.75,1.75,2.00,2.25, 2.50,2.75,3.00,3.25,3.50,4.00,4.25,4.50,4.75,5.00,5.50], 分數: [10, 22, 13, 43, 20, 22, 33, 50, 62, 48, 55, 75, 62, 73, 81, 76, 64, 82, 90, 93]}examOrderDict=OrderedDict(examDict)examDf=pd.DataFrame(examOrderDict)examDf.head()

#相關係數:corr返回結果是一個數據框,存放的是相關係數矩陣rDf=examDf.corr()print("相關係數矩陣:")rDf

#提取特徵和標籤#特徵featuresexam_X=examDf.loc[:,學習時間]#標籤labesexam_y=examDf.loc[:,分數]from sklearn.cross_validation import train_test_split#建立訓練數據和測試數據X_train,X_test,y_train,y_test=train_test_split(exam_X,exam_y,train_size=.8)理解了reshape後,我們再來看下邏輯回歸模型sklearn要求輸入的特徵必須是二維數組的類型,但是因為我們目前只有1個特徵,所以需要用安裝錯誤提示用reshape轉行成二維數組的類型。錯誤提示信息:Reshape your data either using array.reshape(-1, 1) if your data has a single feature#將訓練數據特徵轉換成二維數組XX行*1列X_train=X_train.values.reshape(-1,1)#將測試數據特徵轉換成二維數組行數*1列X_test=X_test.values.reshape(-1,1)#第1步:導入線性回歸from sklearn.linear_model import LinearRegression# 第2步:創建模型:線性回歸model = LinearRegression()#第3步:訓練模型model.fit(X_train , y_train)

#最佳擬合線:z=??+??x 截距intercept:a 回歸係數:b#截距a=model.intercept_#回歸係數b=model.coef_print(最佳擬合線:截距a=,a,,回歸係數b=,b)

#線性回歸的scroe方法得到的是決定係數R平方#評估模型:決定係數R平方model.score(X_test , y_test)

邏輯回歸代碼部分:

from collections import OrderedDictimport pandas as pd#數據集examDict={ 學習時間:[0.50,0.75,1.00,1.25,1.50,1.75,1.75,2.00,2.25,2.50, 2.75,3.00,3.25,3.50,4.00,4.25,4.50,4.75,5.00,5.50], 通過考試:[0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,1,1,1,1,1]}examOrderDict=OrderedDict(examDict)examDf=pd.DataFrame(examOrderDict)examDf.head()

#特徵featuresexam_X=examDf.loc[:,學習時間]#標籤labesexam_y=examDf.loc[:,通過考試]from sklearn.cross_validation import train_test_split#建立訓練數據和測試數據X_train , X_test , y_train , y_test = train_test_split(exam_X , exam_y , train_size = .8)理解了reshape後,我們再來看下邏輯回歸模型sklearn要求輸入的特徵必須是二維數組的類型,但是因為我們目前只有1個特徵,所以需要用安裝錯誤提示用reshape轉行成二維數組的類型。錯誤提示信息:Reshape your data either using array.reshape(-1, 1) if your data has a single feature#將訓練數據特徵轉換成二維數組XX行*1列X_train=X_train.values.reshape(-1,1)#將測試數據特徵轉換成二維數組行數*1列X_test=X_test.values.reshape(-1,1)#第1步:導入邏輯回歸from sklearn.linear_model import LogisticRegression# 第2步:創建模型:邏輯回歸model = LogisticRegression()#第3步:訓練模型model.fit(X_train , y_train)

#評估模型:準確率model.score(X_test , y_test)

對對邏輯回歸的進一步理解:

#獲取概率值#第1個值是標籤為0的概率值,第2個值是標籤為1的概率值model.predict_proba(3)

#預測數據:使用模型的predict方法可以進行預測。這裡我們輸入學生的特徵學習時間3小時,模型返回結果標籤是1,就代表預測該學生未通過考試。pred=model.predict([[3]])print(pred)

推薦閱讀:

機器學習入門:邏輯回歸案例
《機器學習基石》課程學習總結(二)
乾貨 | 機器學習數學、概念及模型思維導圖

TAG:機器學習 |