LoginSignup
0
3

More than 5 years have passed since last update.

skiftを使ってfasttextをscikit-learnのように扱う(python)

Last updated at Posted at 2018-03-24

fasttextをscikit-learnのように扱いたい

scikit-learnを始めって触った時に、とても使いやすかったので、これのfasttext版ないのかな〜、と思ってたら、shaypal5/skiftというまさにこれっていうのがありました。

基本的にREADME.rst見たらできるんですが、一点ハマったので同じことにハマる人が困らないよう書き残しておきます。

はまりどころ

import pandas as pd
from skift import FirstColFtClassifier
from sklearn.cross_validation import train_test_split
from sklearn.metrics import mean_squared_error

df=pd.read_csv('/path',names=['lbl','txt'])
y = df['lbl']
X = df[['txt']]
X_train, X_test, y_train, y_test=\
train_test_split(X,y,test_size=0.3)

sk_clf = FirstColFtClassifier()
sk_clf.fit(X_train, y_train)
y_pred = sk_clf.predict(X_test.values.tolist()) # ここ!
rf_mse = mean_squared_error(y_test, y_pred)
print('MSE:', rf_mse)

sk_clf.predict()に思考停止でX_testを入れてたら

AttributeError: 'float' object has no attribute 'find'

というエラーが出てきて無為に時間を過ごしてしまったのですが、ここには二重list形式で入れるべきだったんですよね。よしなにdfのままやってくれよ、と思うのですが。

よって、X_test.values.tolist()こんな感じでこっちから歩み寄る必要があります。

0
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3