【发布时间】:2019-07-14 03:19:24
【问题描述】:
我正在尝试使用示例数据框:
data = [['Alex','USA',0],['Bob','India',1],['Clarke','SriLanka',0]]
df = pd.DataFrame(data,columns=['Name','Country','Traget'])
现在从这里开始,我使用 get_dummies 将字符串列转换为整数:
column_names=['Name','Country']
one_hot = pd.get_dummies(df[column_names])
转换后的列是: 年龄,Name_Alex,Name_Bob,Name_Clarke,Country_India,Country_SriLanka,Country_USA
切片数据。
x=df[["Name_Alex","Name_Bob","Name_Clarke","Country_India","Country_SriLanka","Country_USA"]].values
y=df['Age'].values
在训练和测试中拆分数据集
from sklearn.cross_validation import train_test_split
x_train,x_test,y_train,y_test=train_test_split(x,y,train_size=float(0.5),random_state=0)
逻辑回归
from sklearn.linear_model import LogisticRegression
logreg = LogisticRegression()
logreg.fit(x_train, y_train)
现在,模型已经训练完毕。
对于预测,假设我想通过给出“名称”和“国家”来预测“目标”。
喜欢:["Alex","USA"]。
预测。
如果我用这个:
logreg.predict([["Alex","USA"]).
显然它不会起作用。
问题1)在训练过程中应用one-hot encoding后如何测试预测?
问题2)如何对仅包含“名称”和“国家/地区”的示例 csv 文件进行预测?
【问题讨论】:
-
首先,每个线程只能发布一个问题。二、你的问题最适合Data Science Stack Exchange。
-
您的模型需要对应于
["Name_Alex","Name_Bob","Name_Clarke","Country_India","Country_SriLanka","Country_USA"]的数组输入。您必须阅读您的示例 csv 文件,然后将其塑造成这种形状的数组,然后调用logreg.predict(my_array)
标签: python pandas machine-learning one-hot-encoding