質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

5121閲覧

pythonの別ファイルに記述した時のSyntaxError: invalid or missing encoding declarationエラー解決策

sobamori

総合スコア1

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2020/10/11 04:05

編集2020/10/11 04:55
#optuna 調整用の関数 def tyousei(autoscaled_x_train, autoscaled_y_train, autoscaled_x_test, autoscaled_y_test): def Gini(y_true, y_pred): assert y_true.shape == y_pred.shape n_samples = y_true.shape[0] arr = np.array([y_true, y_pred]).transpose() true_order = arr[arr[:, 0].argsort()][::-1, 0] pred_order = arr[arr[:, 1].argsort()][::-1, 0] L_true = np.cumsum(true_order) * 1. / np.sum(true_order) L_pred = np.cumsum(pred_order) * 1. / np.sum(pred_order) L_ones = np.linspace(1 / n_samples, 1, n_samples) G_true = np.sum(L_ones - L_true) G_pred = np.sum(L_ones - L_pred) return G_pred * 1. / G_true def objectives(trial): params = { 'objective': 'regression', 'max_bin': trial.suggest_int('max_bin', 1, 200), 'learning_rate': trial.suggest_int('learning_rate', 0.05, 0.9), 'max_depth': -1, # 木の数 (負の値で無制限) 'num_leaves': trial.suggest_int('num_leaves', 2, 10), 'metric': ('mean_absolute_error', 'mean_squared_error', 'rmse'), 'min_child_samples':trial.suggest_int('min_child_samples', 1, 5), } lgb_train = lgb.Dataset(autoscaled_x_train, autoscaled_y_train) lgb_eval = lgb.Dataset(autoscaled_x_test, autoscaled_y_test, reference=lgb_train) model = lgb.train(params, lgb_train,valid_sets=[lgb_train, lgb_eval],verbose_eval=10,num_boost_round=1000,early_stopping_rounds=10) y_pred_valid = model.predict(autoscaled_x_test, num_iteration=model.best_iteration)* y_train.std() + y_train.mean() score=Gini(y_test, y_pred_valid) return score study = optuna.create_study(sampler=optuna.samplers.RandomSampler(seed=0)) study.optimize(objectives, n_trials=200) study.best_params print("study.best_params",study.best_params) print("study.best_value",study.best_value) return study.best_value

python プログラムで、メインのプログラムと、関数のプログラムをファイルを別にして書いています。

メインのプログラム中で関数を書いて実行すると動作するのですが、動作確認済みの関数を関数をまとめているファイルに移して実行すると下記エラーが発生してしまいます。

SyntaxError: invalid or missing encoding declaration

原因をご教示頂けたら幸いです。

動作させたいプログラムは、LightGBMをopentunaを用いてハイパーパラメータを調節するものです。

実行環境は、jupiternotebook 又は、 google colaboColaboratoryを使用しています。

宜しくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2020/10/11 04:25

このままではコードが読めないので、質問を編集し、<code>ボタンを押し、出てくる’’’の枠の中にコードを貼り付けてください
otn

2020/10/11 04:28

どういうPythonでどのように実行していますか?
guest

回答1

0

ベストアンサー

実行環境は、jupiternotebook 又は、 google colaboColaboratoryを使用しています。

それらを使ったことは無いですが、通常のpythonコマンドによる実行だと、日本語などを書く場合はファイルの冒頭に
# coding: utf-8とか# coding: CP932などのようにエンコーディングを書きます。
(デフォルトはutf-8なのでutf-8なら省略可能)
それが無いか、内容と一致していないというメッセージでしょうね。
pythonが直接実行する場合とは異なるメッセージですが。

投稿2020/10/11 05:16

otn

総合スコア85901

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sobamori

2020/10/11 05:31

早急にご回答頂いてありがとうございました。 # coding: utf-8 を先頭に入力し、早速実行してみたのですが、下記のようなエラーが発生してしまいます。 can only concatenate str (not "list") to str どこが悪いのか判断できません。 ご知見があればご教示頂けないでしょうか? 宜しくお願いいたします。
Daregada

2020/10/11 06:36

質問に書いてある問題は解決しましたよね。 別のエラーは別の質問として書けばいいのでは。
otn

2020/10/11 08:21

別途質問する際は、エラーメッセージがどの行に対して出たのか分かるように書きましょう。
sobamori

2020/10/11 09:51

ご指摘いただいてありがとうございました。 大変失礼いたしました。 別の質問として別途質問させて頂きます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問