【问题标题】:What is this warning: ConvergenceWarning: lbfgs failed to converge (status=1)这是什么警告:ConvergenceWarning:lbfgs 无法收敛(状态=1)
【发布时间】:2020-08-31 23:58:47
【问题描述】:

我该如何处理这个警告??

Warning (from warnings module):

  File "C:\Users\SAMSUNG\AppData\Local\Programs\Python\Python37\lib\site-packages\sklearn\linear_model\_logistic.py", line 762
    extra_warning_msg=_LOGISTIC_SOLVER_CONVERGENCE_MSG)
ConvergenceWarning: lbfgs failed to converge (status=1):
STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.

Increase the number of iterations (max_iter) or scale the data as shown in:
    https://scikit-learn.org/stable/modules/preprocessing.html
Please also refer to the documentation for alternative solver options:
    https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression
urls_data = pd.read_csv("data.csv")
TEST_SIZE = 0.001
type(urls_data)
urls_data.head()

def makeTokens(f):
    tkns_BySlash = str(f.encode('utf-8')).split('/')
    total_Tokens = []
    for i in tkns_BySlash :
        tokens = str(i).split('-')
        tkns_ByDot = []
        for j in range(0, len(tokens)):
            temp_Tokens = str(tokens[j]).split('.')
            tkns_ByDot = tkns_ByDot + temp_Tokens
        total_Tokens = total_Tokens + tokens + tkns_ByDot
    total_Tokens = list(set(total_Tokens))
    if 'com' in total_Tokens:
        total_Tokens.remove('com')
    return total_Tokens

y = urls_data["label"]
url_list = urls_data["url"]
#Data Preprocessing
vectorizer = TfidfVectorizer(tokenizer=makeTokens)
X = vectorizer.fit_transform(url_list)

#Split Train set and Test set
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = TEST_SIZE, random_state = 42)
###############################logit
logit = LogisticRegression()
logit.fit(X_train, y_train)

这是我的代码

【问题讨论】:

标签: python machine-learning


【解决方案1】:

改变

logit = LogisticRegression()

logit = LogisticRegression(max_iter=10000)

然后再试一次。

LogisticRegression()的默认参数max_iter等于1000,所以任何大于1000的数字都可以,不一定是10000)

您还可以使用sklearn.preprocessing.scale() 对您的数据进行标准化,如警告所述。

【讨论】:

  • 只是评论说根据documentation max_iter 的默认值等于 100,而不是 1000
猜你喜欢
  • 2020-10-20
  • 2014-09-08
  • 2021-07-17
  • 2019-03-14
  • 1970-01-01
  • 2021-03-13
  • 1970-01-01
  • 1970-01-01
  • 2012-01-25
相关资源
最近更新 更多