使用Python将列文本数据转换为特征以用于机器学习

enter image description here

左侧的CSV文件有五列,其中.application列包含了几种应用程序类型,并用;分隔。根据appdevicedistrict类型,我希望预测target。但首先,我想将文件转换为右侧的数据框架,以便应用机器学习。

我该如何使用Python来实现这一点?


回答:

你需要对application列应用多热编码,对其他列应用单热编码。

这是我的解决方案!

>>> import pandas as pd>>> import numpy as np>>> df = pd.DataFrame({'number': np.random.randint(0,10,size=5),                  'device': np.random.choice(['a','b'],size=5),                  'application': ['app2;app3','app1','app2;app4', 'app1;app2', 'app1'],                  'district': np.random.choice(['aa', 'bb', 'cc'],size=5)})>>> df    application device  district    number0   app2;app3   b         aa    31   app1        a         cc    72   app2;app4   a         aa    33   app1;app2   b         bb    94   app1        a         cc    4from sklearn.preprocessing import OneHotEncoder, MultiLabelBinarizermlb = MultiLabelBinarizer()# Assuming appl names are separated by ;mhv = mlb.fit_transform(df['application'].apply(lambda x: set(x.split(';'))))df_out = pd.DataFrame(mhv,columns=mlb.classes_)enc = OneHotEncoder(sparse=False)ohe_vars = ['device','district'] # specify the list of columns hereohv = enc.fit_transform(df.loc[:,ohe_vars])ohe_col_names = ['%s_%s'%(var,cat) for var,cats in zip(ohe_vars, enc.categories_) for cat in cats]df_out.assign(**dict(zip(ohe_col_names,ohv.T)))df_out

enter image description here

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注