# -*- coding: utf-8 -*-
import matplotlib.pyplot as plt
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn import datasets, linear_model
def laod_data():
iris=datasets.load_iris()
X_train=iris.data
y_train=iris.target
return train_test_split(X_train,y_train,
test_size=0.25,random_state=0,stratify=y_train)#stratify分层
def test_LogisticRegression(*data):
X_train,X_test,y_train,y_test=data
regr=linear_model.LogisticRegression(solver='liblinear')
regr.fit(X_train,y_train)
print('Coefficients:%s, intercept %s'%(regr.coef_,regr.intercept_))
print("Score:%.2f"%regr.score(X_test,y_test))
if __name__=='__main__':
X_train,X_test,y_train,y_test=laod_data()
test_LogisticRegression(X_train,X_test,y_train,y_test)
regr=linear_model.LogisticRegression(solver='lbfgs')
E:\p>python test.py
Coefficients:[[-0.39292395 0.85116785 -2.18906204 -0.92618469]
[-0.63238864 -1.97604154 0.82981265 -1.11283148]
[-0.11520972 -0.31335544 2.43662155 2.14776353]], intercept [ 6.10476855 7.00626088 -13.89778375]
Score:0.92
# -*- coding: utf-8 -*-
import matplotlib.pyplot as plt
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn import datasets, linear_model
def laod_data():
iris=datasets.load_iris()
X_train=iris.data
y_train=iris.target
return train_test_split(X_train,y_train,
test_size=0.25,random_state=0,stratify=y_train)#stratify分层
def test_LogisticRegression_multinomial(*data):
X_train,X_test,y_train,y_test=data
regr=linear_model.LogisticRegression(multi_class='multinomial',solver='lbfgs')#注意配合multinomial,solver=lbfgs或newton_cg
regr.fit(X_train,y_train)
print('Coefficients:%s, intercept %s'%(regr.coef_,regr.intercept_))
print("Score:%.2f"%regr.score(X_test,y_test))
if __name__=='__main__':
X_train,X_test,y_train,y_test=laod_data()
test_LogisticRegression_multinomial(X_train,X_test,y_train,y_test)
Coefficients:[[-0.38320363 0.85493316 -2.27263005 -0.98451719]
[ 0.34354021 -0.37406767 -0.0302351 -0.86148093]
[ 0.03966341 -0.48086549 2.30286516 1.84599812]], intercept [ 8.79836808 2.46932511 -11.26769319]
Score:1.00
# -*- coding: utf-8 -*-
import matplotlib.pyplot as plt
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn import datasets, linear_model
def laod_data():
iris=datasets.load_iris()
X_train=iris.data
y_train=iris.target
return train_test_split(X_train,y_train,
test_size=0.25,random_state=0,stratify=y_train)#stratify分层
def test_LogisticRegression_C(*data):
X_train,X_test,y_train,y_test=data
Cs=np.logspace(-2,4,num=100)
scores=[]
for C in Cs:
regr=linear_model.LogisticRegression(C=C)
regr.fit(X_train,y_train)
scores.append(regr.score(X_test,y_test))
##绘图
fig=plt.figure()
ax=fig.add_subplot(1,1,1)#subplot(numRows, numCols, plotNum)
ax.plot(Cs,scores)
ax.set_xlabel(r"C")
ax.set_ylabel(r"score")
ax.set_xscale('log')
ax.set_title("LogisticRegression")
plt.show()
if __name__=='__main__':
X_train,X_test,y_train,y_test=laod_data()
test_LogisticRegression_C(X_train,X_test,y_train,y_test)
当C增加到一定程度(正则化减少到一定程度)LogisticsRegression的预测准确率维持在一个较高的水平