python - python Erorr 中的逻辑回归:ValueError:无法将字符串转换为浮点数:'concavity_worst'
问题描述
我正在尝试为如下所示的数据集制作一个简单的逻辑回归程序:https ://imgur.com/a/dJvb8Si
我的程序应该对数据集使用逻辑回归,并输出一些关于回归结果的信息。使用示例我制作了以下代码:
import matplotlib.pyplot as plt
from scipy import stats
import pandas as pd
col_names = ['id', 'diagnosis', 'radius_mean', 'texture_mean', 'perimeter_mean', 'area_mean', 'smoothness_mean','compactness_mean', 'symmetry_se', 'perimeter_worst', 'smoothness_worst', 'concavity_worst']
# load dataset
data = pd.read_csv("DatasetTest.csv", header=None, names=col_names)
data.head()
feature_cols = ['diagnosis', 'radius_mean','texture_mean','perimeter_mean','area_mean', 'smoothness_mean','compactness_mean', 'symmetry_se', 'perimeter_worst','smoothness_worst', 'concavity_worst']
X = data[feature_cols]
y = data.diagnosis
from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.25,random_state=0)
from sklearn.linear_model import LogisticRegression
logreg = LogisticRegression()
logreg.fit(X_train,y_train)
y_pred=logreg.predict(X_test)
from sklearn import metrics
cnf_matrix = metrics.confusion_matrix(y_test, y_pred)
cnf_matrix
运行代码时出现此错误:
无法将字符串转换为浮点数:'concavity_worst'
在stackoverflow上找不到类似的问题。经过研究,我发现函数 fit() 显然不能接受字符串。但我不确定如何将字符串转换为浮点数。在进行了一些谷歌搜索后,我仍然找不到适用于这种情况的解决方案。
解决方案
根据 pandas 的文档,pd.read_csv
您需要
显式传递 header=0 以便能够替换现有名称
如果你不这样做,它将把文件头作为数据的一部分。因此,现在您的所有列名都与您的数据混合在一起,并且您的所有列都包含一个字符串。这将使回归崩溃,因为它不能将字符串作为输入。
推荐阅读
- c++ - 使用参数推导时如何停止模板递归?
- vue.js - 停止 Vue 烟花动画
- reactjs - 在反应为什么错误显示这样 - > 'customerSignup' 未定义
- jquery - 使用 AJAX 存储 cookie 的 jQuery 不起作用
- c# - ViewModel 有三个不同的表,如何通过 lambda 将三个表连接成一个结果?
- javascript - 如何在 Angular8 中创建通用请求服务
- bash - 使用终端中的 bash 脚本从 csv 中回显变量和字符串
- java - 为什么不需要使用泛型内部类进行参数化?
- python - 在没有线程执行器的情况下运行 Python gRPC 服务器
- sql-server - Power BI 中是否有雪球般的机会从 SQL Server 表中加载 DAX 逻辑?