使用 sklearn 在 python 中执行逻辑回归分析
Posted
技术标签:
【中文标题】使用 sklearn 在 python 中执行逻辑回归分析【英文标题】:Performing logistic regression analysis in python using sklearn 【发布时间】:2020-11-17 07:53:23 【问题描述】:我正在尝试执行逻辑回归分析,但我不知道我的代码中的哪一部分出错了。它在logistic_regression.fit(X_train, y_train)
行上给出错误。但这似乎还可以,因为我从不同的来源进行了检查。有人可以帮忙吗?
这是我的代码:
import pandas as pd
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
df = pd.read_csv("/Users/utkusenel/Documents/Data Analyzing/data.csv", header=0, sep=";")
data = pd.DataFrame(df)
x = data.drop(columns=["churn"]) #features
y = data.churn # target variable
X_train, X_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=0)
logistic_regression = LogisticRegression()
logistic_regression.fit(X_train, y_train)
【问题讨论】:
您有存储在 DataFrame 中的数据示例吗? 状态; account_length; AREA_CODE; international_plan; voice_mail_plan; number_vmail_messages; total_day_minutes; total_day_calls; total_day_charge; total_eve_minutes; total_eve_calls; total_eve_charge; total_night_minutes; total_night_calls; total_night_charge; total_intl_minutes; total_intl_calls; total_intl_charge; number_customer_service_calls;流失; 1;KS;128;area_code_415;no;yes;25;265.1;110;45.07;197.4;99;16.78;244.7;91;11.01;10;3;2.7;1;no 2;OH;107;area_code_415;no ;是;26;161.6;123;27.47;195.5;103;16.62;254.4;103;11.45;13.7;3;3.7;1;没有@dm2 请编辑您的问题并包含示例数据。在这里查看它是如何完成的***.com/q/20109391/6692898 引发了什么异常?你能把它也包括进去吗? 请注意,任何出现在错误之后的代码都与问题无关(因为从未执行过)并且不应包含在此处(它只会造成不必要的混乱)。同样适用于不相关的导入(已编辑 - 看看你的代码现在看起来有多干净)。 【参考方案1】:这里有多个问题。
-
您的第一行标题末尾有一个
';'
。所以它将读取一个额外的列。您需要在 churn
之后删除该 ';'
。
您在此处尝试使用的训练数据 X_train 将包含多个文本/分类列。您需要将这些转换为数字。在这里查看 OneHotEncoder:https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.OneHotEncoder.html 和 LabelEncoder:https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.LabelEncoder.html
在您将文本和分类数据转换为数字并删除额外的';'
分隔符后,再次运行您的算法。
【讨论】:
以上是关于使用 sklearn 在 python 中执行逻辑回归分析的主要内容,如果未能解决你的问题,请参考以下文章
python:如何在sklearn中使用逻辑回归系数构建决策边界