【sklearn学习】逻辑回归
邏輯回歸的優(yōu)點:
sklearn.linear_model.LogisticRegression
class?sklearn.linear_model.LogisticRegression(penalty='l2',?*,?dual=False,?tol=0.0001,?C=1.0,?fit_intercept=True,?intercept_scaling=1,?class_weight=None,?random_state=None,?solver='lbfgs',?max_iter=100,?multi_class='auto',?verbose=0,?warm_start=False,?n_jobs=None,?l1_ratio=None)
penalty:字符串,指定正則化策略,'l1'或'l2'
dual:bool,默認為True,求解對偶形式
C:float,指定懲罰項系數(shù)的倒數(shù),如果值越小,則正則化項越大
fit_intercept:bool,是否需要計算b值
intercept_scaling:float,只有當solver='liblinear'才有意義
使用損失函數(shù)衡量參數(shù)為θ的模型擬合訓練集時產(chǎn)生的信息損失的大小,并以此衡量參數(shù)θ的優(yōu)劣
在模型擬合過程中,讓損失函數(shù)最小化的參數(shù)組合
正則化用來防止模型過擬合,常用的有L1正則化和L2正則化
L1范式表示每個參數(shù)的絕對值之和
L2范式表示為參數(shù)向量中的每個參數(shù)的平方和的開方值
L1正則化會將參數(shù)壓縮到0,L2正則化只會讓參數(shù)盡量小,不會取到0
import matplotlib as plt import pandas as pd from sklearn.datasets import fetch_california_housing from sklearn.datasets import load_breast_cancer, load_wine from sklearn.linear_model import LogisticRegression from sklearn.model_selection import train_test_split from sklearn.model_selection import GridSearchCV cancer = load_breast_cancer() data_train, data_test, target_train, target_test = train_test_split(cancer.data, cancer.target, test_size=0.2, random_state=0) lr = LogisticRegression(max_iter=300, solver='liblinear', random_state=0)lr.fit(data_train, target_train) train_score = lr.score(data_train, target_train) print("train score:", train_score) test_score = lr.score(data_test, target_test) print("test score:", test_score) def test_LogisticRegression_C(*data):'''測試 LogisticRegression 的預測性能隨 C 參數(shù)的影響:param data: 可變參數(shù)。它是一個元組,這里要求其元素依次為:訓練樣本集、測試樣本集、訓練樣本的標記、測試樣本的標記:return: None'''X_train,X_test,y_train,y_test=dataCs=np.logspace(-2,4,num=100)scores=[]for C in Cs:regr = LogisticRegression(C=C, max_iter=300, solver='liblinear')regr.fit(X_train, y_train)scores.append(regr.score(X_test, y_test))## 繪圖fig=plt.figure()ax=fig.add_subplot(1,1,1)ax.plot(Cs,scores)ax.set_xlabel(r"C")ax.set_ylabel(r"score")ax.set_xscale('log')ax.set_title("LogisticRegression")plt.show()test_LogisticRegression_C(data_train,data_test,target_train,target_test) # 調(diào)用 test_LogisticRegression_C?
?
對于線性回歸,多重共線性會有影響,需要使用方差過濾和方差膨脹因子VIF消除共線性
多元邏輯回歸
- multi_class
'ovr'表示分類問題是二分類
'multinomial'表示處理多分類
’auto'根據(jù)數(shù)據(jù)的分類情況自動確定分類類型
- solver
'liblinear':坐標下降法
‘lbfgs':擬牛頓法
’newton-cg':牛頓法的一種,海森矩陣優(yōu)化迭代損失函數(shù)
'sag':隨機平均梯度下降
’saga'
樣本不平衡與參數(shù)class_weight
通過重復樣本方式平衡類別
總結
以上是生活随笔為你收集整理的【sklearn学习】逻辑回归的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 为什么邮政银行卡扣了30块钱 银行邮政卡
- 下一篇: 湛江59元一年的是什么保险 湛江59元一