より良いエンジニアを目指して

1日1つ。良くなる!上手くなる!

ゆるふわ C# もくもく勉強会 #60 に参加してきました

weeyble-csharp.connpass.com

前回を振り返って、どうするか

初参加するも、Macを復旧してました。

復旧し、0を1にすることでき、めでたくスタートアップを果たしました。

今回は、合わせてインストールした、Rider(リーダー)を使って何かをやろうと。

自然言語処理100本ノック

今、注目しているのがOpenCvSharpだったのですが、MacではOpenCvSharpを動かすのは難しそうなので断念。

自然言語処理100本ノックを知り、C#でチャレンジするという無謀なことをしてました。

github.com

敢えて、C#にこだわっていこうと進んでいました。

C#にもML.NETという機械学習ライブラリがあるのでいけると信じて突き進みました。

終盤になって、本格的に機械学習となって、いや、これ無理ゲーじゃんという状況に陥っていました。

そして、そのまま放置していました。

ある日、こんな記事を見つけたのでした。

orizuru.io

FIFA18の選手データというのもなかなか興味深い(そのうちネタとして解析したい)ですが、それだけでなくLightGBMというアルゴリズムも聞いたことがありませんでした。

www.slideshare.net

多分わかっていないけど、ML.NETにもあったから使ってみることを今回の目標にしました。

そもそも使い方がわからない!

How do I use the newly added LightGBM classifier? · Issue #429 · dotnet/machinelearning · GitHub

Attempted to access a path that is not on the disk.

ディスク上にないファイルにアクセスしようとしました。という意味。

        private const string RootDir = @"..\..\..\..\Chapter08.Core";

        readonly string _dataSourceDirectoryPath =
            Path.GetFullPath(Path.Combine(RootDir, @"rt-polaritydata\rt-polaritydata"));

元々のソースはWindowsで開発していましたが、Macだと\はダメでしたね。¥マークは/に差し替えます。

        private const string RootDir = @"../../../../Chapter08.Core";

        readonly string _dataSourceDirectoryPath =
            Path.GetFullPath(Path.Combine(RootDir, @"rt-polaritydata/rt-polaritydata"));

System.InvalidOperationException : Entry point 'Trainers.LightGbmBinaryClassifier' not found

下記の記事で説明されています。英語はよく分からないですが、サイトの画像を見てなんとなく理解しました。

elbruno.com

Downloadしろよと。ML.NETだけでもインテリセンスが出てくるのですが。

NuGet Gallery | Microsoft.ML.LightGBM 0.5.0

NuGet Gallery | LightGBM 2.1.2.2

が、Entry pointの例外が解消されず・・・・・・。

ここで終了。

2時間で成果を上げるのは難しいですね。修行あるのみ。

追伸

LightGBM doesn't work during F5 of a .NET Core application · Issue #482 · dotnet/machinelearning · GitHub

ML.NET 6.0にアップグレードすれば回避できるかもしれません。

次回、試してみようかと思います。来週やることが決まりました。