如何对python中的String列进行线性回归?

Posted

技术标签:

【中文标题】如何对python中的String列进行线性回归?【英文标题】:How to make linear regression to String column in python? 【发布时间】:2022-01-24 02:41:49 【问题描述】:

我有一个包含 2 列的 csv 文件。一列有字符串毒性 cmets,另一列有浮动毒性值 0 到 1。(当毒性值接近 1 时,cmets 毒性更大)。

我想进行线性回归以正确预测有毒值的数量。

为此,我首先将“注释”(字符串)列转换为整数:

train['comment']= pd.to_numeric(train['comment'], errors='coerce').fillna(0).astype(np.int64)

然后,我为线性回归编写了代码:

linX = train.iloc[:, 0].values.reshape(-1,1)
linY = train.iloc[:, 1].values.reshape(-1,1)

lr = LinearRegression()
lr.fit(linX, linY)
Y_pred = lr.predict(linX)

plt.scatter(linX,linY)
plt.plot(linX,Y_pred, color='red')

这行得通,但我认为我做得不对。因为那个回归表对我来说似乎不正确:

我无法解决问题。我的问题是;

我的线性回归代码是否正确?

我应该将“毒性”列与 0 值分开吗?

【问题讨论】:

【参考方案1】:

我不确定使用下面的代码将字符串转换为数值是否会返回您正在寻找的结果。

pd.to_numeric(train['comment'], errors='coerce') 

此代码仅更改字符串 cmets 的变量类型。字符串 cmets 无法转换为整数。 coerce 可选参数使字符串转换为 NaN 值,NaN 值用 fillna 转换为零。

要使用机器学习技术解决文本分类问题,您需要使用 TF-IDF 等技术对数据进行预处理。

【讨论】:

以上是关于如何对python中的String列进行线性回归?的主要内容,如果未能解决你的问题,请参考以下文章

用Python开始机器学习(3:数据拟合与广义线性回归)

Python 对线性模型进行 特征选择,不断模型线性模型的AIC

从R中的单个数据帧运行几个线性回归

对目标变量进行对数转换后如何解释线性回归的结果?

处理多元线性回归Python中的分类和数值变量

如何用Python进行线性回归以及误差分析