我无法运行线性回归和交叉验证有人可以启发我吗?我收到错误,例如无法将字符串转换为浮点数

如何解决我无法运行线性回归和交叉验证有人可以启发我吗?我收到错误,例如无法将字符串转换为浮点数

import numpy as np
import pandas as pd 
import matplotlib as mpl        
import matplotlib.pyplot as plt     
from statsmodels.formula.api import ols 
import statsmodels.api as sm        
import scipy        
import scipy.stats      
import seaborn as sns       
import numpy.random as npr      
import math     
from scipy.stats import norm        
import sqlite3 as sql       
import seaborn      
from numba import jit,prange       
        
df = pd.read_csv('ODI-2021.edited.csv')
df.info()
sr_targets = pd.Series(df['What is your stress level (0-100)?'])
sr_targets.describe()
df_features = df.drop('What is your stress level (0-100)?',axis=1)
print (df_features)
df_features.describe()

from sklearn.linear_model import LinearRegression
import statsmodels.api as sm

df.isnull().sum()
df_missing = df.dropna()
df_missing.shape

X = df["What is your stress level (0-100)?"]
y = df["Time you went to be Yesterday"]
est = sm.OLS(y,X.astype(float)).fit()
model = sm.OLS(y,X).fit()
predictions = model.predict(X)

-ValueError: Could not convert string to float: 'over 9000'

model.summary()

-AttributeError: 'LinearRegression' object has no attribute 'summary'

from sklearn import preprocessing

def convert(df):
    number = preprocessing.LabelEncoder()
    data['Date'] = number.fit_transform(df['Date'])
    data=data.fillna(-999)
    return data

model = LinearRegression(fit_intercept=True)
result = model.fit(df_features,sr_targets)

-ValueError: Could not convert string to float: '3/16/2021'

sr_coef = pd.Series(result.coef_,index=df_features.columns)
sr_coef

-NameError: name 'result' is not defined

sr_endog = sr_targets.copy()
df_exog = sm.add_constant(df_features)

model = sm.OLS(sr_endog,df_exog)
result = model.fit()

-ValueError: Pandas data cast to numpy dtype of object. Check input data with 
 np.asarray(data)

result.summary()

-NameError: name 'result' is not defined

cross validation

from sklearn.linear_model import LassoCV
from sklearn.model_selection import Fold
nb_folds = 10
cv = KFold(n_splits=nb_folds)
model = LassoCV(fit_intercept=True,cv=cv,n_alphas=200,max_iter=2000)
result = model.fit(df_features_rescaled,sr_targets)

-NameError: name 'df_features_rescaled' is not defined

fig = plt.figure(figsize=[16,15])

xvalues = np.log10(result.alphas_)
rmse_path = np.sqrt(result.mse_path_)
for k in range (nb_folds):
    yvalues = rmse_path[:,k]
    plt.plot(xvalues,yvalues)
    pos_ymin = yvalues.argmin()
    plt.plot(xvalues[pos_ymin],yvalues[pos_ymin],marker='o')

plt.axvline(np.log10(result.alpha_))
plt.title('RMSE for differebt alpha',fontsize=20)
plt.grid()

-NameError: name 'result' is not define

sr_coef = pd.Series(result.coef_,index=df_features.columns)
sr_coef

这是我的代码,这些是我得到的错误,有人可以帮我解决我做错了什么吗?我已经查找了错误,但我不知道如何解决这些错误。我的数据集有数字,但也有日期和答案,例如是,否和大学水平的教育水平反应,我不知道如何在浮点数中进行转换。我一直在尝试使用由数字组成的两列运行回归,但出现错误。对于交叉验证,我删除一列,我使用其余列,我收到错误,我没有定义我拥有的变量结果,我一无所知

3.提前致谢!

解决方法

你的每一个错误都有意义。学会阅读错误对于理解正在发生的事情非常重要。例如,

est         = sm.OLS(y,X.astype(float)).fit()
model       = sm.OLS(y,X).fit()
predictions = model.predict(X)

-ValueError: could not convert string to float: 'over 9000'

这似乎表明有人在您打开的 CSV 文件的单元格中放置了短语“超过 9000”。因此,python 无法弄清楚如何将其转换为浮点数。如果您尝试运行,也会发生同样的事情

float("over 9000")

看来数据需要稍微清理一下才能被你的sm使用。看来 python 也试图在这里告诉你同样的事情:

-ValueError: could not convert string to float: '3/16/2021'

字符串“3/16/2021”包含不属于 float() 的符号,即“/”符号。

我认为,如果您将错误和顾虑分解为单独的问题,那么人们可以一次为您解决一个问题。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?