ページ
カテゴリーごとの投稿
- カテゴリー: プログラミング
- カテゴリー: その他
- LightGBMを使用して多クラス分類を行うサンプルコード
- ValueError: Found input variables with inconsistent numbers of samples: [95889, 50000]
- LinearSVCってなに
- OvR(One-vs-Rest)戦略 とOvO(One-vs-One)戦略
- output_dim=16は、どれくらいの次元がいいの?
- 内積は、行数と列数があっていれば計算できるの?
- ベクトル同士の内積
- データの前処理の手順
- 内積は必ずスカラーで返されるの?
- MemoryError: Unable to allocate 159. GiB for an array with shape (285196, 598335) and data type uint8
- 行列とベクトルの違い
- データを複数の部分に分割して処理する方法は、大規模なデータセットを効果的に処理するための一般的な手法
- ベクトルと行列の例を挙げて
- 機械学習のサンプリングとは
- ランダムサンプリングは、データセットからランダムに一定割合のデータを選択する方法
- 1次元配列 a と b の内積を計算
- input_dimは指定しないといけないの?
- 内積の計算式
- 具体的な内積の計算式
- データベースをゼロから作り直したい
- np.newaxis は、NumPyライブラリで使用される特殊なインデックスオブジェクト
- numpyについていろいろ教えて
- NLPって中間層とかないの?
- NumPyで掛け算や足し算を行う
- 次元の異なる足し算、掛け算
- グリッドサーチのパラメータ
- np.dot
- Embedding(input_dim=max_features, output_dim=16)これはなに?
- 切片ってなに
- 深層学習で、グリッドサーチとかあるの?
- 算術平均と相乗平均の違い
- 成長率を相乗平均で求めるサンプルコード頂戴
- k-最近傍法
- np.meshgrid は、NumPyライブラリの関数
- Bpythonってなに
- 自然言語処理(NLP)でテキスト分類を行うサンプルコード
- 深層学習
- 多層のニューラルネットワーク
- Pythonの標準の対話型シェル(インタープリタ)では、補完機能はある?
- allow_migrateをmodel_name指定できない?
- Bythonってある?
- バイク用品のカテゴリーの振り分けを機械学習でやりたい
- ヒストリファイルは、どこに保存される?
- AIの世界ってどんな世界?
- [Ctrl]+[t]キーでなにかできる?python
- 指数関数は、機械学習のどのような場面でつかわれる?
- ユークリッド距離とマンハッタン距離
- 内積と外積の違い
- 素数と複素数ってなに
- √って二分の一?
- シグモイド関数は、正規化につかわれるの?標準化?
- pipで複数のパッケージを同時に削除する
- 変数とモジュールの補完機能は、インタープリタの起動時に自動で有効になっているの?
- forest_packerをルーティングに追加して
- ほかにシグモイド関数は、使う場所とかある?
- redmineを、サーバーに設置できる
- シリアライズとデシリアライズってなに
- processingはなにができる?
- threadingモジュール
- all_labelを指定していない場合はどうなる?
- do_global()関数が呼び出され、その中でglobalキーワードを使ってグローバルスコープのloc変数が"5″に変更されます。
この場合のグローバルスコープってどこ?
- np.repeat(X_stats, X_train.shape[0], axis=0)これはなに?
- textwrapモジュールって
- paginate_byってなに
- ロバストとは
- カテゴリ変数同士やカテゴリ変数と数値変数の組み合わせから新たな特徴量を生成することができます。たとえば、メーカー名とカテゴリの組み合わせや、原価と仕入先の組み合わせなどが考えられます。これについて詳しく
- pythonの集合{}って、ユニークな値のみを抽出して格納してくれるの?
- まとめて、ベースモデルに適しているモデルは
- アンサンブル学習にはいくつかの主要な種類
- arrayモジュールとは
- バッチ処理ってなに?
- ロジスティクス回帰をベースモデルにして、特徴量の確率を取得するってことだよね、他の決定木やKNNの優位性はわかるけど、ロジスティクス回帰をベースモデルにする優位性がわからない
- ルールベースの機械学習ってなに?ほかに何ベースがあるの?
- ?ってなに?
- ベースモデルってなに
- DBSCANとは
- 統計的特徴量を生成し、モデルに組み込む方法
- ロジスティック回帰をベースモデルにする理由は?
- サンプルの正規表現いくつか書いてみて
- 深層学習でクラスタリングできる?
- ジェネレータ関数って?
- Pandasのデータの簡単な可視化機能
- 正規表現パターンを覚えるための方法
- Djangoの .as_view()メソッド
- globalキーワードってどこに影響するの?すべて?
- 具体的な数値データを用いて統計的特徴量を算出する方法
- Pandasでデータの可視化ってできる?
- ナイーブベイスとTF-IDFはべつもの?
- タプルをジェネレーターに変換できる?
- いくつかの統計的指標を生成する方法を具体的に解説
- 基本、スタッキングで説明変数として渡すモデルは、確率を渡しているの?
- djangoのviewとurlsとどう理解すればいいの
- ナイーブベイスを使ってるんだけど、これのアルゴリズムは含まれている?
- ジェネレーター関数で作ったものは、何型になる?
- エクセルってプログラム言語に該当する?
- ブースティング系を説明変数として使用するのはどうだろうか
- STRICT_TRANS_TABLESってなに?
- 商品名・カテゴリ・メーカー名・原価・仕入先、これらの情報があるんだけど、新たに特徴量を生成して精度を上げる方法は難しいかな?
- ナイーブベイスの結果を特徴量としてランダムフォレストに渡すことはできる?
- redirectとrenderの違いって何
- シーケンスとは
- 底が10の対数: 2.0
これはどういう意味?
- タプルはジェネレータ?
- ナイーブベイズの予測確率を特徴量としてランダムフォレストに渡す方法の一例
- ランダムフォレストを説明変数にする場合、渡すデータは目的変数の確率を渡すの?
- list1とlist2の数が異なる場合は?
- 底が10と2で計算方法はどうちがう?
- 標準モジュールjsonは、Pythonのデータ階層構造を取って文字列表現にコンバートすることができる。このプロセスを「シリアライズ」という。シリアライズで文字列表現されたオブジェクトは、「デシリアライズ」という。
- 関数のドキュメンテーション文字列
- カテゴリ変数の外れ値とかあるの?
- Bootstrapのスタイルが適用されない
- カテゴリを数値化したときに、外れ値の概念が生まれないものか?
- zip関数でfor文できる?
- LightGBMのハイパーパラメータチューニング
- logの計算方法おしえて
- rjust()メソッド
- 文字列オブジェクトのzfillメソッドは、プラスとマイナスの記号も含めて指定文字数となるように、数字の文字列の左側をゼロでパディングするものである。
- LightGBMモデルの交差検証を行う
- 底が10の対数のサンプルおしえて
- filterはif文のTRUEのみを処理するみたいなイメージ?
- Bootstrapにおける基本的なテーブルのクラス
- MultinomialNB の alpha パラメータは、0.001単位で調整できる?
- logについておしえて
- __sub__.py__dir__.py__init__.py__package__.py__directory__.pyとは
- classifier__alphaって0.01単位で調整できる?
- django-bootstrap4を使いたい
- filterとmap関数の違いは?
- Djangoのモデルに保存したい
- なんで積分すると1になるの?
- 勾配ブースティングで分類しても、良い精度がでないんだ。55%とかの正確度なんだけど、これを説明変数に入れることは逆にデメリットにならないか?
- 交差検証を行い、各評価指標(AUC、accuracy、precision、recall)を計算する
- 1
2
2π
1
: これは、
x に関する値の範囲を正規化するための定数です。確率密度関数全体が積分して1になるようにするための調整項です。
- モジュールの中では、グローバル変数「__modname__」の値としてモジュール名(文字列)がセットされている。
- filter関数とは
- 商品名・カテゴリ・メーカー・仕入先・原価の説明変数から、梱包サイズの目的変数を多クラス分類しているんだけど、ナイーブベイスで梱包サイズの各クラスの確率を出してから、それをランダムフォレストへ渡しているんだ。
いわゆるアンサンブル学習だよね。ほかに何かアンサンブル学習させてさらに精度向上を狙いたいんだが
- モジュール読み込みの高速化のため、Pythonはコンパイル済みのモジュールを「__python_cache__」ディレクトリにmodule.バージョン名.pyの名前でキャッシュする。
- for文でelseって使えるの?
- モデルのpklって何の略?
- たとえば、サイズが80の梱包がサイズが60の梱包よりも大きいかどうか、またサイズが100の梱包がサイズが80の梱包よりも大きいかどうかなど、重要な情報を提供することができます。
これは、普通わかるものじゃないの?
- 比較演算子って、タプル内の要素数はことなってもいいの?
- bootstrapが反映されない
- タプルの特性について教えて
- “pickle" は「ぴっくる」?「ぴっける」?
- 信頼係数
- サイズが80から100への増加を捉える特徴量:
「80から100への増加率」: サイズ100の梱包の体積をサイズ80の梱包の体積で割り、その結果に100を乗じて表した特徴量。
「100サイズと80サイズの体積の差」: サイズ100の梱包の体積からサイズ80の梱包の体積を引いた値を表した特徴量。
これら2つの方法、どっちが優位性があると思う?
- (2,3,('aa’,’ab’)) < (2,3,('abc’,’a’),5)
これはなぜTRUEになる
- スタッキングする場合、ナイーブベイスと、KNN以外に、元の説明変数もLightGBMへ渡したほうがいい?
- 右から走査して最初の()の中を取得したい
- サイズが100の梱包とサイズが80の梱包との比率特徴量を導入するのは、特性を捉えるための有効な手段か?
- 情報の重複が生じ、スタッキングの効果が低下するかどうか
- “aa"<“a"
これがFALSEになるのは
- 今回、100サイズの分類の精度が悪いから、100サイズ/60サイズで新たな特徴量を入れようとしている。
仮に、80サイズ/60サイズの特徴量は不要かな?
- PHP’ > 'Perl’ > 'Python’
これなんでTRUEじゃないの?
- 逐次学習させる場合と、新規で全データを学習させる場合とでは、結果は変わらないよね?
- Excelのワークシート関数を使って「赤ポット」のみを抽出する方法
- グリッドサーチ組み込んで
- KNNとナイーブベイスを説明変数としてランダムフォレストのメタモデルをつくって、そのランダムフォレストとKNNとナイーブベイスをつかってLightGBMでメタモデルを作ったらどうかと思ったのだが
- 比率特徴量が重要な理由は?その特徴量は、すでにある特徴量から、アルゴリズムは解析しないの?
- 空の集合を生成するには
- √2Πってなに
- 例えば、スタッキングのスタッキングをしたらどうなる
- ディクショナリと集合のちがい
- ランダムフォレストを説明変数に追加する理由は?
- 集合は変更可能なの?
- ユークリッド空間
- 他のサイズ(60や80)と比較して、サイズが100の梱包がどれだけ大きいかを示す相対的な特徴量を導入します。これにより、サイズが100の梱包が他のサイズと比べて異なる特性を持つかどうかをモデルが学習できるようになります。
具体的にどうしたらいい?
- PythonでARIMAモデルを使用してバイク用品の売り上げを予測するための基本的なスクリプト
- 対話型編集、ヒストリ置換、コード補完といったインタープリタの行編集機能ってなに
- まったく同じデータで再トレーニングしたらどうなる
- 商品別の梱包サイズのデータがある。
また、各都道府県別の発送データもある。
発送データから、適切な送料を設定したいんだが、どうしたらいいかな?
- ディクショナリのキーは、変更不可能、一意の必要ありってこと?でも要素は自由にかえれる?
- random_forest_model.pklを読み込んで、逐次学習したい
- 梱包サイズは、配送料の計算に使っているんだ。
- mathのceilとfloorの違い
- 話を元に戻すと、梱包サイズの多クラス分類をしたい。60、80、100サイズ(体積)があった際に、100サイズだけの精度が悪い。これを特徴量エンジニアリングでどうにか対応したいんだ。
- randrange randint sample choiceの違い
- 例外処理のfinallyとは
- ナイーブベイスとKNNを説明変数にして、LightGBMで分類したところ、精度93%でている。他にスタッキングでモデルをつくり説明変数を増やした方がいいだろうか?
- aucって出せる?
- ディクショナリは変更可能(mutable)であるが、キーの型は変更不能(immutable)であり、その値は一意でなければならない。
これどういう意味?
- 物流や倉庫管理の文脈で特に重要な情報であり、大きな梱包には別の取り扱い方法が必要になることがあります。どういう意味?
- 梱包サイズの多クラス分類を、スタッキングをつかってメタモデルを作る場合、どのようなモデルを使ったらいいと思う?
- OneToOneFieldをsqliteの制約でいうと何になる
- 既存のモデルに対して、追加トレーニングとかできるの?
- ディープラーニングを使うときって、どんなとき?
- Scalerってスカラーともよむ?
- 通販でAI使ってなにかできないかな
- cms:book_modってなに
- OneToOneFieldってなに
- バイク用品の売り上げ予測をしたい
- K最近傍法(KNN)とナイーブベイズを説明変数として使用する
- 更新じゃなくて作成でいいやcreate
- 生成AIってPythonで作れるの?
- ハンドリングからきているのかな?
- urlで渡されているかみるの?
- KNNってなんだっけ
- Twitter APIを使用してトレンド情報を取得するためのサンプルスクリプト
- モデルは、毎回トレーニングさせて新しいモデルを作ったほうがいいのかな?
いま、過去3か月分4000件くらいのデータをトレーニングデータとして、使っているんだけど、トレーニングデータが少ないと感じているんだ。だから、新しい梱包データが入ったら、それをトレーニングデータとして、再度モデルを学習させようかなと思っているんだ
- <form action="{% url 'cms:book_mod’ book_id=book_id %}" method="post">
これはどういういみ
- try:
print('try’)
except:
print('except’)
else:
print('else’)
このelseってなに
- ディクショナリにループをかけるときにenumerate()関数を使うとどうなる
- TensorFlowを使用して生成AIを作成する際の具体的なサンプル
- No images found in the selected folderとでる。
windows環境で実行してる
- list(zip(*matrix))
*って何の意味あるの?
- labenencoderとonehotencoderの違い
- データの不均衡を解消するためにオーバーサンプリングを行う
- ユーザーアクション(フォロー、アンフォロー、ブロック、ミュートなど)を行うサンプルスクリプト
- スカラーってなに
- ハンドラって何
- 実数の反対は虚数?
- power = [tuple(row[i] for row in matrix) for i in range(3)]
power
解説して
- random_forest_model.pklをDjangoでmanagement commandの中で実行したい
- ナイーブベイスは、オーバーサンプリングとかしたほうがいいの?
- sklearn.impute モジュールとは
- ニューラルネットワークを使用してCatBoostの代わりにモデルをトレーニング
- Pythonでデスクトップアプリを作成する
- スタッキングに使用するメタモデル
- djangoでhtmlでif分をつかいたい
- 文字列でソートするには?
- 実数ってなに
- 0の階乗
- 例えば、100の梱包の重量を60の梱包の重量で割ることで、相対的な重量特徴量を生成することができます。
これにどういう意味があるの?
- フォルダ内に多くの画像がある。
フォルダを選択すると、その中に画像を、50枚ずつzip圧縮するpythonスクリプトを書いて
- catboostのパラメータ調整をしたいんだけど、
- スタッキングにつかう複数のモデルは、何を使えばいい
- 特徴量エンジニアリングで対応したい。新しい特徴量とは具体的に
- スタッキング以外のモデルはなんという?
- 外部データってどうやって収集するの?
- ファイル名を一括編集するフリーソフト
- One-hotエンコーディングとは
- for文の入れ子
- sort sortedの違い
- Twitterのapiでなにができる?
- スタッキングのほうが良い結果がでる?
- horizontalの対義語
- map関数の使い方
- oogle Cloud Storageを使用してフォルダを作成し、ファイルをアップロードするPythonスクリプト
- カテゴリーIDより、カテゴリ名の方がいい?strに変換してあるから変わらないかな
- 梱包サイズが60,80,100とあった場合、100の精度だけ悪いんだよね。
- strftimeとstrptimeがどっちがどっちか覚えられない。
- cronで動かす処理は、バックグラウンドで実行されるの?
- ガソリンと電気自動車でどれくらい安くなる?
- dataframeで差集合もとめられる?
- 4次元って見ることはできる?人間の目で
- コマンドプロンプトのコードちょうだい
- bashでフォルダ削除するコマンド
- popとremoveのちがい
- 4次元ってなに?
- strptime
- アンサンブル学習と似たような考え方の学習なんていうんだっけ?例えば、ナイーブベイスの結果を説明変数として、ランダムフォレストへ渡すような学習のさせ方
- クラスの重みづけについて詳しく。
オーバーサンプリングしてるんだけど、併用してもいい?
- OpenCVで文字情報を取得して、エクセルファイルへ出力するサンプルコード頂戴
- Amazonのapiを使って、アフィリエイトリンクを生成するコード教えて
- AIについて、どんなことを勉強したらいいかな
- 機械学習で目的変数の一部のクラスの精度が低い場合はどうしたらいい?
- 説明変数の数が増えると計算量が指数関数的に増加するのはなぜ?
- バイク用品のECで売上に対して相関関係があるものはなにか?
- class Itemは。Itemテーブルができるってこと?
- Twitterでフォローするapiはある?
- djangoのappを消したい
- ニューラルネットワークは教師なし学習もできる?
- Pythonのlambdaの使い方
- AWSを使ったAI開発って何?
- N次元のベクトルってなに?
- 7-zipで分割圧縮すると拡張子が001,002みたいな連番になってしまいます。
拡張子がzipのままで分割できるフリーソフトがあったら教えて下さい。
- 別々のテーブルに、同じ情報は入れない方がいい?
例えば、商品マスターに原価情報があって、
価格調整マスターにも原価情報がある。
- ヤフーショッピングapiで、価格調査をsqliteデータベース保管したい
- ローカル環境でDjangoから、ローカルのエクスプローラーのドキュメントフォルダにあるPythonファイルを実行したい
- a = {'one’, 'two’}
b = {'two’, 'three’}
print(a – b)
- 機械学習エンジニアの実務で統計より、アルゴリズムの理解の方が重要なきがするが、実際のところどうなの
- ヤフーショッピングapiを使って、価格調査するサンプルコード教えて
- Twitterを自動でフォローするPythonのスクリプトおしえて
- 紙の納品書を文字起こししてエクセルに保存していきたい。
- 積み上げ棒グラフとモザイク図は同じという認識でいい?
- Djangoで複数テーブルのカラムを付け合わせたい
- Pythonで梱包サイズを多クラス分類したい。
説明変数が5個あった場合、すべての組み合わせを試して一番精度の良かった説明変数を取得したい
- 損益分岐点と利益を計算し、それぞれをデータベースに保存する方法
- Xvfb を使用して仮想ディスプレイ環境を設定し、Seleniumスクリプトを実行するcronジョブの設定例
- Djangoで強制的にマイグレート
- Django モデルでテーブル削除したい
- Django のモデルでテーブルを作成する
- テーブルを直接 SQL を使って作成する
- Dockerのサービスとは
- コンテナを停止させずに docker-compose.yaml の変更を反映させたい
- 現在のタイムスタンプを「年月日時分秒」まで取得したい
- データ分析でECに生かす例
- dfをintへ変換したい
- 画像生成の処理をマルチスレッド化にしたい
- CronでSeleniumを使用するスクリプトを実行するとエラーが発生する
- Ubuntu環境でInternet ExplorerのWebDriverを使用することはできないのか
- データベースを全て削除して作り直したい
- 8コア8プロセッサーののスレッドは?
- Windowsコンテナを使用する方法
- アパートのIPアドレスを固定化する
- photoshopの切り抜きが重い
- Googletransを使いたい
- 仮想ディスプレイ(Xvfb)とは
- Google翻訳APIは、費用かかるの?
- Pythonで翻訳を無料でできないかな?
- モデルを指定してマイグレーションできる?
- Stable Diffusionのサイズ指定
- GPUのなかには、メモリも内蔵されているの?
- マイグレーションファイルはどこに作成される?
- データベースやテーブルの指定とかなかったっけ
- ChromeでIEモードはできないでしょ?
- 商用利用可能な画像生成AI Python
- OpenVINOを使用した具体的なコード
- jpgでも、一度jpgに再変換してアップしたい。
- Core i7 9700はいくつのプロセッサー?
- Lightsailでメモリーの使用率を監視したい
- ubuntu用のwebドライバーがないってこと?
- 1商品に複数のJANを割り当てる事はできるの?
- 1社が発行できるJANコードの上限値はある?
- Pythonで画像を縦1000px、横1000pxでトリミングする方法
- Amazon CloudWatchでメモリーを監視したい。
- 損益分岐点(Break-even Point)を計算し、その値をデータベースに保存する
- CPUの利用率が上がらず、処理が遅い場合
- transformersをアンインストールできない
- windowsサーバーで、ユーザーを追加したい。
- OpenVINOと組み合わせることで推論を高速化
- break_even_pointのデータベースのカラムに追加したい
- ナショナルブランドに、自社で独自のJANを割り当てる事は可能か?
- 商用利用可能で、IntelのGPUを使える画像生成AIを作りたい
- ubuntuのdjangoでIEドライバーをつかいたいんだよな
- Stable DiffusionをIntelGPUで動かして
- 画像生成を高速で行いたいんだけど、サーバーどうしたらいいかな
- seleniumで10ページごとにブラウザを再起動するとメモリが確保できるの?
- TORを使っている場合、接続がうまくいかない理由
- Windowsサーバーにリモートデスクトップで接続する
- OpenVINOとStable Diffusionを使ったサンプルコード
- 1TBのサーバー容量で、画像が800*800pxなら約何枚保存できる?
- 事業者コードを2つ用意すれば、20万点の商品を生成できるということ?
- Stable Diffusionは、IntelのGPUは使えないの?
- dataframeのJAN列で、重複削除して、最初の行だけ残したい
- GPU Intel(R) UHD Graphics 630だった
- CPUの利用が制限されているように見える、全てのCPUコアを1処理に集中させて早く終わらせたいんだ。
- Stable Diffusionは著作権を自分で保持できないよね。自分で保持できる生成AIないかな
- BASE_DIR = Path(__file__).resolve().parent.parent
- 生成AIでイラストの描画を行う際、CPUの場合とGPUの場合の描画速度はどの程度早くなる?
- 'NoneType’ object has no attribute 'group’
- マイグレートが上手く行かない場合、なにかオプションで指定したら上手く行ったんだよ前回
- 500万枚を1画像生成に60秒かかったら、どれくらいの期間で500万枚生成できるか
- Xvfb(X Virtual Framebuffer)を使用することで、cronで実行するSeleniumスクリプトが正常に動作するようになった理由
- 成功する時と、成功しない時があるんだよね。一旦メモリを解放したほうがいいのかな?
- 記事数が5000以上あるんだけど、カテゴリーの振り分けが大変なんだ、どうしよう
- 他のプログラムがうごいていて、ガベージコレクションをしたら、必要なデータも消えてしまう可能性はない?
- ディープラーニングする際に、64GBでGPU無しで、いつもメモリー不足になっていたんだけど、解消されるかな
- ページを頻繁にナビゲートする場合、メモリリークを防ぐために、一定の操作ごとにブラウザを再起動することを検討
- 'nvidia-smi’ は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
- 画像のアップロードに失敗しました。ステータスコード: 405
Method Not Allowed
画像のアップロードに失敗しました。
- Amazonのワンタイムパスワードが毎回要求される。おそらくIPアドレスが動的なためだと思うのだが、何かいい方法はないだろうか
- Windowsサーバーで、外注を使ってブラウザ操作だけしてもらいたい。最低限のユーザーの権限で良いのだが、どう設定したらいいかな
- 画像サイズはどうしたらいいかな、Webサイトを運営している人向けなんだけど、800px*800pxで今生成しているんだけど
- CPUだけで生成しているんだけど、24コアのサーバーで大体9分かかる。GPU搭載だとどれ位高速化されるノ2倍位はやくなる?
- Stable Diffusionのような、画像生成AIの商用利用可能なもので、IntelのGPU使えるものはあるかな
- 例えば、インターネットエクスプローラーのドライバーはヘッドレスモードに対応していないが、xvfbを使えば動かせる?
- 起動中のdockerコンテナのdocker-compose.yamlを編集した場合にdownさせずに反映する方法
- filename = image_path.split(r’\’)[-1] # Windowsパスの場合
windowsもlinuxも同じようにファイル名だけ取得できないかな
- ValueError: height and width have to be divisible by 8 but are 1000 and 1330.
- <svg
失敗している記事は、jpgがsvgと認識されている可能性はない?
- Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz 3.41 GHz
これはいくつプロセッサーがあるの?
- エラーが発生しました: 'latin-1’ codec can’t encode characters in position 36-41: ordinal not in range(256)
画像のアップロードに失敗しました。
- UnicodeEncodeError: 'latin-1’ codec can’t encode characters in position 36-41: ordinal not in range(256)
- 00 00 01 * * cd /home/NBSystem && python3 manage.py jenkins_build
毎月1日の0時にに実行したいんだけど、これでいい?
- FileNotFoundError: Couldn’t find any class folder in C:UsersownerPicturesGAN_tranning.
- モデルの精度を評価 平均二乗誤差(Mean Squared Error, MSE)
- MSE1000はいいの?
- 限界利益とは
- 収益とは企業や組織が商品やサービスの提供によって得る売上の総額
- 送料・商品サイズ・商品名がある。
これの実績を元データとして、他の商品の推定送料・商品サイズを推定する機械学習モデルを作りたい
- ランダムフォレストでサンプルコード書いてくれる?
- Pandas ライブラリを使用してデータを DataFrame に読み込む
- original_product_code=params.get('original_product_code’,"")
ここでreplaceしたい
- 適正送料を予測するための特徴量、ほかにどういうデータがあった方がいいと思う?
- 適正送料を予測する説明変数、自社品番・商品名・都道府県・サイズ 他に何かいいのあるかな?
- モデルを使う際、同じ特徴量がテストデータでも必要だよね?
- 目的変数が「商品別の日本全国の平均適正送料」であり、購入地意識、梱包サイズ、送料、価格などの情報を使用してその適正送料を予測したい
- 配送実績があるから、地域別の割合を考慮したい
- 例えば、関東と関西で5割の発送割合なら、関東と関西のデータだけで算出できる?
- 地域ごとの発送数を考慮して、より公平な平均送料を算出する
- 送料の損益分岐点出したい
- pythonでASINからJANに変換するプログラムかいて
- Product Advertising APIで取得できる情報一覧
- サードパーティのデータベースやウェブサイトを使用してASINとJANの対応関係を検索する注意点
- 各商品ごとに、梱包サイズデータがある。
適切な送料を割り当てたいんだけど、どうしたらいいかな
- 送料の平均ってどうやって計算するの
- ページが切り替わると、前のページの要素は消えちゃうよね
- F12の画面からJavascriptでページ遷移する
- Warning: Don’t paste code into the DevTools Console that you don’t understand or haven’t reviewed yourself. This could allow attackers to steal your identity or take control of your computer. Please type ‘allow pasting’ below to allow pasting.
これってなに
- ncaught DOMException: Failed to execute 'querySelector’ on 'Document’: 'a[href^=’javascript:__doPostBack('GridView1′,’Page$’)’]’ is not a valid
- 11ページから10ページ追加して21、31・・・と追加していきたい。待機時間は1秒 javascript
- JavaScriptリンクを500ページ目にジャンプするために埋め込む場所どこに埋め込めばいいの
- ランタイム エラー
説明: サーバーでアプリケーション エラーが発生しました。このアプリケーションの現在のカスタム エラー設定では、セキュリティ上の理由により、アプリケーション エラーの詳細をリモート表示できません。ただし、ローカル サーバー コンピューターで実行されているブラウザーで表示することはできます。
詳細: このエラー メッセージの詳細をリモート コンピューターで表示できるようにするには、現在の Web アプリケーションのルート ディレクトリにある “web.config" 構成ファイル内に、<customErrors> タグを作成してください。その後で、この <customErrors> タグで “mode" 属性を “off" に設定してください。
<!– Web.Config 構成ファイル –>
<configuration>
<system.web>
<customErrors mode="Off"/>
</system.web>
</configuration>
メモ: 現在表示されているエラー ページをカスタム エラー ページ に変更するには、アプリケーションの <customErrors> 構成タグの “defaultRedirect" 属性をカスタム エラー ページ URL に置き換えます。
<!– Web.Config 構成ファイル –>
<configuration>
<system.web>
<customErrors mode="RemoteOnly" defaultRedirect="mycustompage.htm"/>
</system.web>
</configuration>
- コンソール画面で、なにか一気に500ページに遷移とかできないかね
- ブラウザの開発者ツールを使用して、ページネーションのリンクやボタンを特定し、そのJavaScriptコードを調査します。そのJavaScriptコードを解析し、500ページ目までの遷移を行うようにカスタマイズします。どうやるの
- <a href="javascript:__doPostBack('GridView1′,’Page$331’)" style="color:Black;">…</a>
- def product_info1(self,count):
return f"ページNo:{count}"
def product_info2(self):
return f"新品番:{self.sku(“td")[3].get_text(strip=True)}"
この書き方NGなの?
- for文でselfは使わない方がいいの?
- URLが変わらないJavascriptでページ遷移するサイトがあるんだけど、ページネーションを一気に500ページの位置まで飛びたいんだけど、なんかいい方法ないかな
- //<![CDATA[
var theForm = document.forms['form1’];
if (!theForm) {
theForm = document.form1;
}
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
//]]>こんなスクリプトが書いてあるけど、これ?
- 現在のURL取得 selenium
- findelementでinputを指定
- seleniumでページHTML取得
- cronの再起動
- htmlのclassが以下のものを指定したい。
beautifulsoup
product-detail -pc
- soup(class_="product-detail pc")[0]でもいい?
- return [i(“img")[0].get_attribute(“src") for i in self.soup(class_="product-thumbnails")]
これあってる?
- VSCODEでフォーマットできない
- docker上のcronが、ホストサーバーを再起動すると動かない
- docker run –restart=always my_container
上記は、ホストOS上で実行するの?
- ubuntu@ip-172-26-11-59:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
531a0c7c5e99 ubuntu22.04_python3.10:v1.0 “/bin/bash" 4 weeks ago Up 11 minutes romantic_margulis
ubuntu@ip-172-26-11-59:~$ docker run –restart=always 531a0c7c5e99
Unable to find image '531a0c7c5e99:latest’ locally
docker: Error response from daemon: pull access denied for 531a0c7c5e99, repository does not exist or may require 'docker login’: denied: requested access to the resource is denied.
See 'docker run –help’.
- コンテナ一覧を表示
- managementとcommandsディレクトリは手動で作る必要がある?
- djangoでvalue_searchというアプリケーションのなかに、management/commandsフォルダ内部に、複数の.pyファイルを置いて、各々cronで動作させたとする。
この場合、それらは独立して動くと思うのだが、可用性はどうなる?独立して動くから、1つの.pyファイルが止まっても、他は止まらないよね
- アプリケーションを分ける必要はない?
- 原価、モール手数料、送料
上記のデータから、、確保する利益が500円とするとき、販売価格を求めよ
- モール手数料は、販売価格*モール手数料なんだ。
- Yahoo!、楽天でモール手数料のモデルを作りたい
- 色々なモデルのデータを自社品番で組み合わせたいんだけど、dataframeをつかうのかな?
- csvでpandasで読み取って、Djangoモデルへ保存したい。
- Djangoでmanagement commandでファイルを作りたい。
- driver.implicitly_wait(180) # ここでイムアウトを設定
これで設定しているんだけど、だめかな?
- 具体的にどこにsleepを追加したらいい?
- Error occurred during Crawl moriwaki: Message: unknown error: session deleted because of page crash
from unknown error: cannot determine loading status
from tab crashed
(Session info: headless chrome=114.0.5735.90)
Stacktrace:
#0 0x5633e74b94e3 <unknown>
#1 0x5633e71e8b00 <unknown>
#2 0x5633e71d1f42 <unknown>
#3 0x5633e71d09bf <unknown>
#4 0x5633e71d1162 <unknown>
#5 0x5633e71df0d5 <unknown>
#6 0x5633e71e0222 <unknown>
#7 0x5633e71f2e01 <unknown>
#8 0x5633e725c470 <unknown>
#9 0x5633e7243de3 <unknown>
#10 0x5633e72192dd <unknown>
#11 0x5633e721a34e <unknown>
#12 0x5633e74793e4 <unknown>
#13 0x5633e747d3d7 <unknown>
#14 0x5633e7487b20 <unknown>
#15 0x5633e747e023 <unknown>
#16 0x5633e744c1aa <unknown>
#17 0x5633e74a26b8 <unknown>
#18 0x5633e74a2847 <unknown>
#19 0x5633e74b2243 <unknown>
#20 0x7f7591e74ac3 <unknown>
- 現在のURLを表示selenium
- seleniumだと
- seleniumのheadlessで実行しようとすると、スマホで取得しているらしい
- GPUを無効にするってなに
- モデルへデータを格納したい
- /home/NBSystem/forest_packers/export/rf_shipping_size.csv
いつ作成されたか
- results = pd.DataFrame({
'original_product_code’: X_new_original_product_code,
'packing_size’: predicted_sizes
})
これをPackingSizeResultに保存したい
- dfを保存したいのさ
- if X_combined_new.shape[1] == X_combined.shape[1]:
# モデルを使用してサイズを予測する
predicted_sizes = rf_model.predict(X_combined_new)
# packing_sizeとoriginal_product_codeを含む新しいオブジェクトのリストを作成
# new_objects = [
# PackingSizeResult(packing_size=size, original_product_code=code)
# for size, code in zip(predicted_sizes, X_new_original_product_code)
# ]
# # 作成したオブジェクトを一括でデータベースに保存
# PackingSizeResult.objects.bulk_create(new_objects)
# 予測されたサイズとoriginal_product_codeを含むデータフレームを作成する
results = pd.DataFrame({
'original_product_code’: X_new_original_product_code,
'packing_size’: predicted_sizes
})
このresultをモデルへ保存したい。bulkで
- Error occurred during Crawl rough_and_road: Message: unknown error: session deleted because of page crash
from unknown error: cannot determine loading status
from tab crashed
(Session info: headless chrome=114.0.5735.90)
Stacktrace:
#0 0x559712dd24e3 <unknown>
#1 0x559712b01b00 <unknown>
#2 0x559712aecb69 <unknown>
#3 0x559712aec066 <unknown>
#4 0x559712aeb168 <unknown>
#5 0x559712aeafa0 <unknown>
#6 0x559712ae99bf <unknown>
#7 0x559712aea162 <unknown>
#8 0x559712af80d5 <unknown>
#9 0x559712af9222 <unknown>
#10 0x559712b0bbcb <unknown>
#11 0x559712b103ab <unknown>
#12 0x559712aea703 <unknown>
#13 0x559712b0b810 <unknown>
#14 0x559712b7521c <unknown>
#15 0x559712b5cde3 <unknown>
#16 0x559712b322dd <unknown>
#17 0x559712b3334e <unknown>
#18 0x559712d923e4 <unknown>
#19 0x559712d963d7 <unknown>
#20 0x559712da0b20 <unknown>
#21 0x559712d97023 <unknown>
#22 0x559712d651aa <unknown>
#23 0x559712dbb6b8 <unknown>
#24 0x559712dbb847 <unknown>
#25 0x559712dcb243 <unknown>
#26 0x7fd124a3dac3 <unknown>
- スクロールバーが複数ある場合、画面の最下部へ移動したいんだけど、seleniumでどうやるの?うまくいかない
- NoSuchElementException Traceback (most recent call last)
Cell In[22], line 4
2 time.sleep(1)
3 class_name_page_wrapper ="pager-block"
—-> 4 driver.find_element(By.CLASS_NAME, class_name_page_wrapper).find_element(By.LINK_TEXT, “次へ>>").click()
5 print(driver.current_url)
File ~anaconda3libsite-packagesseleniumwebdriverremotewebelement.py:417, in WebElement.find_element(self, by, value)
414 by = By.CSS_SELECTOR
415 value = f'[name="{value}"]’
–> 417 return self._execute(Command.FIND_CHILD_ELEMENT, {“using": by, “value": value})[“value"]
File ~anaconda3libsite-packagesseleniumwebdriverremotewebelement.py:395, in WebElement._execute(self, command, params)
393 params = {}
394 params[“id"] = self._id
–> 395 return self._parent.execute(command, params)
File ~anaconda3libsite-packagesseleniumwebdriverremotewebdriver.py:347, in WebDriver.execute(self, driver_command, params)
345 response = self.command_executor.execute(driver_command, params)
346 if response:
–> 347 self.error_handler.check_response(response)
348 response[“value"] = self._unwrap_value(response.get(“value", None))
349 return response
File ~anaconda3libsite-packagesseleniumwebdriverremoteerrorhandler.py:229, in ErrorHandler.check_response(self, response)
227 alert_text = value[“alert"].get(“text")
228 raise exception_class(message, screen, stacktrace, alert_text) # type: ignore[call-arg] # mypy is not smart enough here
–> 229 raise exception_class(message, screen, stacktrace)
NoSuchElementException: Message: no such element: Unable to locate element: {“method":"link text","selector":"次へ>>"}
(Session info: chrome-headless-shell=122.0.6261.94); For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#no-such-element-exception
Stacktrace:
GetHandleVerifier [0x00B98D03+51395]
(No symbol) [0x00B05F61]
(No symbol) [0x009BE13A]
(No symbol) [0x009F62BB]
(No symbol) [0x009F63EB]
(No symbol) [0x009EE001]
(No symbol) [0x00A13ED4]
(No symbol) [0x009EDF7E]
(No symbol) [0x00A14124]
(No symbol) [0x00A2A570]
(No symbol) [0x00A13C26]
(No symbol) [0x009EC629]
(No symbol) [0x009ED40D]
GetHandleVerifier [0x00F168D3+3712147]
GetHandleVerifier [0x00F55CBA+3971194]
GetHandleVerifier [0x00F50FA8+3951464]
GetHandleVerifier [0x00C49D09+776393]
(No symbol) [0x00B11734]
(No symbol) [0x00B0C618]
(No symbol) [0x00B0C7C9]
(No symbol) [0x00AFDDF0]
BaseThreadInitThunk [0x7548FCC9+25]
RtlGetAppContainerNamedObjectPath [0x76EE7C5E+286]
RtlGetAppContainerNamedObjectPath [0x76EE7C2E+238]
- headlessモードにすると取得できなくなる
- class_name_page_wrapper ="pager-block"
driver.find_element(By.CLASS_NAME, class_name_page_wrapper).find_element(By.LINK_TEXT, “次へ>>").click()
- 先のコードに変換して
- TimeoutException Traceback (most recent call last)
Cell In[23], line 9
7 # 要素が表示されるまで待機する
8 wait = WebDriverWait(driver, 10)
—-> 9 page_wrapper = wait.until(EC.visibility_of_element_located((By.CLASS_NAME, class_name_page_wrapper)))
11 # “次へ>>" リンクが表示されるまで待機する
12 next_link = wait.until(EC.visibility_of_element_located((By.LINK_TEXT, “次へ>>")))
File ~anaconda3libsite-packagesseleniumwebdriversupportwait.py:105, in WebDriverWait.until(self, method, message)
103 if time.monotonic() > end_time:
104 break
–> 105 raise TimeoutException(message, screen, stacktrace)
TimeoutException: Message:
- 追加の対処
- class_name_page_wrapper ="search-main-contents"
# print(driver.page_source)
driver.find_element(By.CLASS_NAME, class_name_page_wrapper).find_element(By.LINK_TEXT, “次へ>>").click()
このclass内で、下から探索して次へを探してほしい
- BLOBで保存したい
- File “/usr/local/lib/python3.10/dist-packages/django/utils/asyncio.py", line 26, in inner
return func(*args, **kwargs)
File “/usr/local/lib/python3.10/dist-packages/django/db/backends/base/base.py", line 274, in ensure_connection
with self.wrap_database_errors:
File “/usr/local/lib/python3.10/dist-packages/django/db/utils.py", line 91, in __exit__
raise dj_exc_value.with_traceback(traceback) from exc_value
File “/usr/local/lib/python3.10/dist-packages/django/db/backends/base/base.py", line 275, in ensure_connection
self.connect()
File “/usr/local/lib/python3.10/dist-packages/django/utils/asyncio.py", line 26, in inner
return func(*args, **kwargs)
File “/usr/local/lib/python3.10/dist-packages/django/db/backends/base/base.py", line 256, in connect
self.connection = self.get_new_connection(conn_params)
File “/usr/local/lib/python3.10/dist-packages/django/utils/asyncio.py", line 26, in inner
return func(*args, **kwargs)
File “/usr/local/lib/python3.10/dist-packages/django/db/backends/mysql/base.py", line 256, in get_new_connection
connection = Database.connect(**conn_params)
File “/usr/local/lib/python3.10/dist-packages/MySQLdb/__init__.py", line 121, in Connect
return Connection(*args, **kwargs)
File “/usr/local/lib/python3.10/dist-packages/MySQLdb/connections.py", line 195, in __init__
super().__init__(*args, **kwargs2)
django.db.utils.OperationalError: (1049, “Unknown database 'nbsystem'")
- Traceback (most recent call last):
File “/home/NBSystem/manage.py", line 22, in <module>
main()
File “/home/NBSystem/manage.py", line 18, in main
execute_from_command_line(sys.argv)
File “/usr/local/lib/python3.10/dist-packages/django/core/management/__init__.py", line 442, in execute_from_command_line
utility.execute()
File “/usr/local/lib/python3.10/dist-packages/django/core/management/__init__.py", line 436, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File “/usr/local/lib/python3.10/dist-packages/django/core/management/base.py", line 413, in run_from_argv
self.execute(*args, **cmd_options)
File “/usr/local/lib/python3.10/dist-packages/django/core/management/base.py", line 459, in execute
output = self.handle(*args, **options)
File “/usr/local/lib/python3.10/dist-packages/django/core/management/base.py", line 107, in wrapper
res = handle_func(*args, **kwargs)
File “/usr/local/lib/python3.10/dist-packages/django/core/management/commands/migrate.py", line 356, in handle
post_migrate_state = executor.migrate(
File “/usr/local/lib/python3.10/dist-packages/django/db/migrations/executor.py", line 135, in migrate
state = self._migrate_all_forwards(
File “/usr/local/lib/python3.10/dist-packages/django/db/migrations/executor.py", line 167, in _migrate_all_forwards
state = self.apply_migration(
File “/usr/local/lib/python3.10/dist-packages/django/db/migrations/executor.py", line 252, in apply_migration
state = migration.apply(state, schema_editor)
File “/usr/local/lib/python3.10/dist-packages/django/db/migrations/migration.py", line 132, in apply
operation.database_forwards(
File “/usr/local/lib/python3.10/dist-packages/django/db/migrations/operations/fields.py", line 235, in database_forwards
schema_editor.alter_field(from_model, from_field, to_field)
File “/usr/local/lib/python3.10/dist-packages/django/db/backends/base/schema.py", line 880, in alter_field
self._alter_field(
File “/usr/local/lib/python3.10/dist-packages/django/db/backends/base/schema.py", line 1137, in _alter_field
self.execute(
File “/usr/local/lib/python3.10/dist-packages/django/db/backends/base/schema.py", line 201, in execute
cursor.execute(sql, params)
File “/usr/local/lib/python3.10/dist-packages/django/db/backends/utils.py", line 122, in execute
return super().execute(sql, params)
File “/usr/local/lib/python3.10/dist-packages/django/db/backends/utils.py", line 79, in execute
return self._execute_with_wrappers(
File “/usr/local/lib/python3.10/dist-packages/django/db/backends/utils.py", line 92, in _execute_with_wrappers
return executor(sql, params, many, context)
File “/usr/local/lib/python3.10/dist-packages/django/db/backends/utils.py", line 100, in _execute
with self.db.wrap_database_errors:
File “/usr/local/lib/python3.10/dist-packages/django/db/utils.py", line 91, in __exit__
raise dj_exc_value.with_traceback(traceback) from exc_value
File “/usr/local/lib/python3.10/dist-packages/django/db/backends/utils.py", line 105, in _execute
return self.cursor.execute(sql, params)
File “/usr/local/lib/python3.10/dist-packages/django/db/backends/mysql/base.py", line 76, in execute
return self.cursor.execute(query, args)
File “/usr/local/lib/python3.10/dist-packages/MySQLdb/cursors.py", line 179, in execute
res = self._query(mogrified_query)
File “/usr/local/lib/python3.10/dist-packages/MySQLdb/cursors.py", line 330, in _query
db.query(q)
File “/usr/local/lib/python3.10/dist-packages/MySQLdb/connections.py", line 261, in query
_mysql.connection.query(self, query)
django.db.utils.OperationalError: (1118, 'Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs’)
- .save()って?
- Error occurred during Scraping pmc: (1406, “Data too long for column 'related_products’ at row 1")
- BLOB ってなに
- File “<frozen importlib._bootstrap>", line 688, in _load_unlocked
File “<frozen importlib._bootstrap_external>", line 883, in exec_module
File “<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File “/home/NBSystem/value_search/models.py", line 153, in <module>
class DeliveryData(models.Model):
File “/home/NBSystem/value_search/models.py", line 169, in DeliveryData
consumption_tax = models.models.CharField(max_length=100)
AttributeError: module 'django.db.models’ has no attribute 'models’. Did you mean: 'Model’?
- return executor(sql, params, many, context)
File “/usr/local/lib/python3.10/dist-packages/django/db/backends/utils.py", line 100, in _execute
with self.db.wrap_database_errors:
File “/usr/local/lib/python3.10/dist-packages/django/db/utils.py", line 91, in __exit__
raise dj_exc_value.with_traceback(traceback) from exc_value
File “/usr/local/lib/python3.10/dist-packages/django/db/backends/utils.py", line 105, in _execute
return self.cursor.execute(sql, params)
File “/usr/local/lib/python3.10/dist-packages/django/db/backends/sqlite3/base.py", line 329, in execute
return super().execute(query, params)
django.db.utils.IntegrityError: UNIQUE constraint failed: value_search_deliverydata.original_number
- このエラーが出たらスキップしたいんだけど
- value_search.models.ShippingArea.DoesNotExist: ShippingArea matching query does not exist.
これもパスしたい
- size_weighted_avg_dfもモデルへ格納したい
- # size_weighted_avg_dfからデータを取得してモデルに保存
for index, row in size_weighted_avg_df.iterrows():
size = row['サイズ’]
weighted_average = row['加重平均送料’]
# 新しいモデルオブジェクトを作成してデータを設定
size_weighted_average = SizeWeightedAverage(size=size, weighted_average=weighted_average)
# データを保存
size_weighted_average.save()
上記はいつ実行されるの?
- DeliveryDataに保存したい
- local/lib/python3.10/dist-packages/django/db/models/fields/__init__.py", line 1013, in get_db_prep_save
return self.get_db_prep_value(value, connection=connection, prepared=False)
File “/usr/local/lib/python3.10/dist-packages/django/db/models/fields/__init__.py", line 1530, in get_db_prep_value
value = self.get_prep_value(value)
File “/usr/local/lib/python3.10/dist-packages/django/db/models/fields/__init__.py", line 1525, in get_prep_value
return self.to_python(value)
File “/usr/local/lib/python3.10/dist-packages/django/db/models/fields/__init__.py", line 1491, in to_python
raise exceptions.ValidationError(
django.core.exceptions.ValidationError: ['“12月1日” は無効な日付形式です。YYYY-MM-DD 形式にしなければなりません。’]
- File “/usr/local/lib/python3.10/dist-packages/django/db/models/sql/compiler.py", line 1746, in <listcomp>
[
File “/usr/local/lib/python3.10/dist-packages/django/db/models/sql/compiler.py", line 1747, in <listcomp>
self.prepare_value(field, self.pre_save_val(field, obj))
File “/usr/local/lib/python3.10/dist-packages/django/db/models/sql/compiler.py", line 1686, in prepare_value
return field.get_db_prep_save(value, connection=self.connection)
File “/usr/local/lib/python3.10/dist-packages/django/db/models/fields/__init__.py", line 1824, in get_db_prep_save
self.to_python(value), self.max_digits, self.decimal_places
File “/usr/local/lib/python3.10/dist-packages/django/db/models/fields/__init__.py", line 1807, in to_python
raise exceptions.ValidationError(
django.core.exceptions.ValidationError: ['“-” は10進浮動小数値にしなければなりません。’]
- 地区発送割合送料
関東50%468
関西50%523
上記なら、平均送料は、(465+523)/2で495になるよね。
じゃあ、
地区発送割合送料
関東69%468
関西31%523
上記ならどうなる?
- 梱包サイズ毎に加重平均送料を算出してほしい
- 地区発送割合
関東39%
関西17%
九州10%
中部9%
信越7%
中国5%
北東北3%
四国3%
北海道2%
南東北2%
北陸2%
上記の発送割合の際、商品サイズ毎に損益分岐点の価格を知りたいんだ。どうしたらいい
- 発送割合2%2%2%39%7%2%9%17%5%3%10%
サイズ大きさ重量北海道北東北南東北関東信越北陸中部関西中国四国九州沖縄
(3辺計)北海道青森・岩手宮城・山形茨城・栃木新潟・長野富山・石川岐阜・静岡滋賀・京都鳥取・島根徳島・香川福岡・佐賀沖縄
秋田福島群馬・埼玉福井愛知・三重大阪・兵庫岡山・広島愛媛・高知長崎・熊本
千葉・東京奈良山口大分・宮崎
神奈川・山梨和歌山鹿児島
6060cm以内2kg以内8205234904684904904905236337438201,364
8080cm以内5kg以内8535454904904904904905456557658531,914
100100cm以内10kg以内9085785235235235235235786887989082,486
120120cm以内15kg以内9636335785785785785786337438539633,036
140140cm以内20kg以内1,0181,0736886886886886887437989081,0183,608
160160cm以内25kg以内1,2389088538538538538539089631,0731,2384,158
180180cm以内30kg以内2,8382,5082,3982,3982,3982,3982,3982,5082,6182,6182,8384,708
200200cm以内30kg以内3,2782,9482,8382,8382,8382,8382,8382,9483,0583,0583,2785,258
上記の発送実績がある。
発送割合を考慮して、サイズ毎に適正価格を算出せよ
- 60サイズの割合が100%と仮定して。60サイズだけでいいよ。
- 地区発送割合送料X
関東39%468182
関西17%52390
九州10%82084
中部9%49045
信越7%49034
中国5%49025
北東北3%52318
四国3%74325
北海道2%82019
南東北2%4908
北陸2%4908
538
この表のXに当たる指標はなんだ
- 地区発送割合送料
関東39%468
関西17%523
関東+関西=50%の発送割合の場合、平均送料を求めよ
- 地区発送割合送料
関東39%468
関西17%523
関東+関西=10%の発送割合の場合、平均送料を求めよ
- 地区発送割合送料
関東39%468
関西17%523
関東+関西=50%の発送割合の場合の送料を求めよ
- リトライ機構の導入
- df.at[0, “html_content"] = requests.get(i.find_element(By.TAG_NAME,"a").get_attribute(“href")).text
ここがエラー部分なんだけど、ここだけ3回のリトライとかできる?引き数だけ入れてとか
- requestsのオプション一覧
- <table class="grid-look">
<thead class="product-grid-top">
<tr>
<td class="nav prev"> </td>
<td><div class="swatch-option image " option-type="2″ option-id="1539″ option-label="ALL BLACK" option-tooltip-thumb="https://media-www.ec.rs-taichi.com/catalog/product/cache/79cd194851544f88bafc552bf5216e5d/r/s/rst465bk02.jpg" option-tooltip-value="https://media-www.ec.rs-taichi.com/catalog/product/cache/455d758771d3747e7d5f3337b2de6a2c/r/s/rst465bk02.jpg" option-attr-code="color" style="background:url(https://media-www.ec.rs-taichi.com/catalog/product/cache/455d758771d3747e7d5f3337b2de6a2c/r/s/rst465bk02.jpg) no-repeat center; background-size:initial;"></div><div>ALL BLACK</div></td>
<td><div class="swatch-option image " option-type="2″ option-id="1346″ option-label="BLACK" option-tooltip-thumb="https://media-www.ec.rs-taichi.com/catalog/product/cache/79cd194851544f88bafc552bf5216e5d/r/s/rst465bk01.jpg" option-tooltip-value="https://media-www.ec.rs-taichi.com/catalog/product/cache/455d758771d3747e7d5f3337b2de6a2c/r/s/rst465bk01.jpg" option-attr-code="color" style="background:url(https://media-www.ec.rs-taichi.com/catalog/product/cache/455d758771d3747e7d5f3337b2de6a2c/r/s/rst465bk01.jpg) no-repeat center; background-size:initial;"></div><div>BLACK</div></td>
<td><div class="swatch-option image " option-type="2″ option-id="1570″ option-label="BLACK/GRAY" option-tooltip-thumb="https://media-www.ec.rs-taichi.com/catalog/product/cache/79cd194851544f88bafc552bf5216e5d/r/s/rst465bk71.jpg" option-tooltip-value="https://media-www.ec.rs-taichi.com/catalog/product/cache/455d758771d3747e7d5f3337b2de6a2c/r/s/rst465bk71.jpg" option-attr-code="color" style="background:url(https://media-www.ec.rs-taichi.com/catalog/product/cache/455d758771d3747e7d5f3337b2de6a2c/r/s/rst465bk71.jpg) no-repeat center; background-size:initial;"></div><div>BLACK/GRAY</div></td>
<td><div class="swatch-option image " option-type="2″ option-id="1355″ option-label="BLACK/RED" option-tooltip-thumb="https://media-www.ec.rs-taichi.com/catalog/product/cache/79cd194851544f88bafc552bf5216e5d/r/s/rst465bk11.jpg" option-tooltip-value="https://media-www.ec.rs-taichi.com/catalog/product/cache/455d758771d3747e7d5f3337b2de6a2c/r/s/rst465bk11.jpg" option-attr-code="color" style="background:url(https://media-www.ec.rs-taichi.com/catalog/product/cache/455d758771d3747e7d5f3337b2de6a2c/r/s/rst465bk11.jpg) no-repeat center; background-size:initial;"></div><div>BLACK/RED</div></td>
<td><div class="swatch-option image " option-type="2″ option-id="1537″ option-label="BLACK/WHITE" option-tooltip-thumb="https://media-www.ec.rs-taichi.com/catalog/product/cache/79cd194851544f88bafc552bf5216e5d/r/s/rst465bk51.jpg" option-tooltip-value="https://media-www.ec.rs-taichi.com/catalog/product/cache/455d758771d3747e7d5f3337b2de6a2c/r/s/rst465bk51.jpg" option-attr-code="color" style="background:url(https://media-www.ec.rs-taichi.com/catalog/product/cache/455d758771d3747e7d5f3337b2de6a2c/r/s/rst465bk51.jpg) no-repeat center; background-size:initial;"></div><div>BLACK/WHITE</div></td>
</tr>
</thead>
<tbody id="product-grid" class="product-grid-center">
<tr class="item">
<td>
<div class="swatch-option text " option-type="0″ option-id="1801″ option-label="S" option-tooltip-thumb="" option-tooltip-value="" option-attr-code="size">S</div> </td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>廃番</span>
</td>
</tr>
<tr class="item">
<td>
<div class="swatch-option text " option-type="0″ option-id="1796″ option-label="M" option-tooltip-thumb="" option-tooltip-value="" option-attr-code="size">M</div> </td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>廃番</span>
</td>
</tr>
<tr class="item">
<td>
<div class="swatch-option text " option-type="0″ option-id="1795″ option-label="L" option-tooltip-thumb="" option-tooltip-value="" option-attr-code="size">L</div> </td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>廃番</span>
</td>
</tr>
<tr class="item">
<td>
<div class="swatch-option text " option-type="0″ option-id="1800″ option-label="XL" option-tooltip-thumb="" option-tooltip-value="" option-attr-code="size">XL</div> </td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>廃番</span>
</td>
</tr>
<tr class="item">
<td>
<div class="swatch-option text " option-type="0″ option-id="2036″ option-label="XXL" option-tooltip-thumb="" option-tooltip-value="" option-attr-code="size">XXL</div> </td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>廃番</span>
</td>
</tr>
</tbody>
</table>
上記の在庫情報がある。
<table class="item_size" style="margin-left: auto; margin-right: auto;" border="1″>
<tbody>
<tr>
<td class="xl68″ style="text-align: left; font-weight: bold; font-size: 14px;" width="250″ height="24″>商品番号</td>
<td class="xl68″ style="text-align: left; font-weight: bold; font-size: 14px;" width="250″>Color</td>
<td class="xl68″ style="text-align: left; font-weight: bold; font-size: 14px;" width="250″>Size</td>
<td class="xl68″ style="text-align: left; font-weight: bold; font-size: 14px;" width="250″>JanCode</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RST465BK01L</td>
<td class="xl68″ style="text-align: left;">BLACK</td>
<td class="xl68″ style="text-align: left;">L</td>
<td class="xl68″ style="text-align: left;">4997035085996</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RST465BK01M</td>
<td class="xl68″ style="text-align: left;">BLACK</td>
<td class="xl68″ style="text-align: left;">M</td>
<td class="xl68″ style="text-align: left;">4997035086009</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RST465BK01S</td>
<td class="xl68″ style="text-align: left;">BLACK</td>
<td class="xl68″ style="text-align: left;">S</td>
<td class="xl68″ style="text-align: left;">4997035086016</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RST465BK01XL</td>
<td class="xl68″ style="text-align: left;">BLACK</td>
<td class="xl68″ style="text-align: left;">XL</td>
<td class="xl68″ style="text-align: left;">4997035086023</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RST465BK01XXL</td>
<td class="xl68″ style="text-align: left;">BLACK</td>
<td class="xl68″ style="text-align: left;">XXL</td>
<td class="xl68″ style="text-align: left;">4997035086030</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RST465BK02L</td>
<td class="xl68″ style="text-align: left;">ALL BLACK</td>
<td class="xl68″ style="text-align: left;">L</td>
<td class="xl68″ style="text-align: left;">4997035086238</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RST465BK02M</td>
<td class="xl68″ style="text-align: left;">ALL BLACK</td>
<td class="xl68″ style="text-align: left;">M</td>
<td class="xl68″ style="text-align: left;">4997035086245</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RST465BK02S</td>
<td class="xl68″ style="text-align: left;">ALL BLACK</td>
<td class="xl68″ style="text-align: left;">S</td>
<td class="xl68″ style="text-align: left;">4997035086252</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RST465BK02XL</td>
<td class="xl68″ style="text-align: left;">ALL BLACK</td>
<td class="xl68″ style="text-align: left;">XL</td>
<td class="xl68″ style="text-align: left;">4997035086269</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RST465BK02XXL</td>
<td class="xl68″ style="text-align: left;">ALL BLACK</td>
<td class="xl68″ style="text-align: left;">XXL</td>
<td class="xl68″ style="text-align: left;">4997035086276</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RST465BK11L</td>
<td class="xl68″ style="text-align: left;">BLACK/RED</td>
<td class="xl68″ style="text-align: left;">L</td>
<td class="xl68″ style="text-align: left;">4997035086047</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RST465BK11M</td>
<td class="xl68″ style="text-align: left;">BLACK/RED</td>
<td class="xl68″ style="text-align: left;">M</td>
<td class="xl68″ style="text-align: left;">4997035086054</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RST465BK11S</td>
<td class="xl68″ style="text-align: left;">BLACK/RED</td>
<td class="xl68″ style="text-align: left;">S</td>
<td class="xl68″ style="text-align: left;">4997035086061</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RST465BK11XL</td>
<td class="xl68″ style="text-align: left;">BLACK/RED</td>
<td class="xl68″ style="text-align: left;">XL</td>
<td class="xl68″ style="text-align: left;">4997035086078</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RST465BK11XXL</td>
<td class="xl68″ style="text-align: left;">BLACK/RED</td>
<td class="xl68″ style="text-align: left;">XXL</td>
<td class="xl68″ style="text-align: left;">4997035086085</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RST465BK51L</td>
<td class="xl68″ style="text-align: left;">BLACK/WHITE</td>
<td class="xl68″ style="text-align: left;">L</td>
<td class="xl68″ style="text-align: left;">4997035086092</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RST465BK51M</td>
<td class="xl68″ style="text-align: left;">BLACK/WHITE</td>
<td class="xl68″ style="text-align: left;">M</td>
<td class="xl68″ style="text-align: left;">4997035086108</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RST465BK51S</td>
<td class="xl68″ style="text-align: left;">BLACK/WHITE</td>
<td class="xl68″ style="text-align: left;">S</td>
<td class="xl68″ style="text-align: left;">4997035086115</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RST465BK51XL</td>
<td class="xl68″ style="text-align: left;">BLACK/WHITE</td>
<td class="xl68″ style="text-align: left;">XL</td>
<td class="xl68″ style="text-align: left;">4997035086122</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RST465BK51XXL</td>
<td class="xl68″ style="text-align: left;">BLACK/WHITE</td>
<td class="xl68″ style="text-align: left;">XXL</td>
<td class="xl68″ style="text-align: left;">4997035086139</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RST465BK71L</td>
<td class="xl68″ style="text-align: left;">BLACK/GRAY</td>
<td class="xl68″ style="text-align: left;">L</td>
<td class="xl68″ style="text-align: left;">4997035086184</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RST465BK71M</td>
<td class="xl68″ style="text-align: left;">BLACK/GRAY</td>
<td class="xl68″ style="text-align: left;">M</td>
<td class="xl68″ style="text-align: left;">4997035086191</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RST465BK71S</td>
<td class="xl68″ style="text-align: left;">BLACK/GRAY</td>
<td class="xl68″ style="text-align: left;">S</td>
<td class="xl68″ style="text-align: left;">4997035086207</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RST465BK71XL</td>
<td class="xl68″ style="text-align: left;">BLACK/GRAY</td>
<td class="xl68″ style="text-align: left;">XL</td>
<td class="xl68″ style="text-align: left;">4997035086214</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RST465BK71XXL</td>
<td class="xl68″ style="text-align: left;">BLACK/GRAY</td>
<td class="xl68″ style="text-align: left;">XXL</td>
<td class="xl68″ style="text-align: left;">4997035086221</td>
</tr>
</tbody>
</table>
上記のJAN情報がある。
beautifulsoupで付け合わせしたいんだけど、どうやったらいいかわかる?
- def shop(name,【A】, 【B】):
print(“flowershop:", name)
keys = sorted(argsX.keys())
for kw in keys:
print(kw, “:", argsX[kw])
for Y in argsY:
print(Y)
AとBに入るのは?
- 【A】**argsX 【B】*argsYこれは?
- 関数注釈(アノテーション)は関数の__annotations__属性にディクショナリとして格納され、関数のほかの部分にはいかなる影響も及ぼさない。
- 例えば「def func(a: int, b:str) -> value」と関数を記述したときにアノテーションに該当するものは「-> value」のみである。
- アノテーションって戻り値の型ってこと?
- InvalidArgumentException Traceback (most recent call last)
Cell In[6], line 9
7 driver.find_elements(By.TAG_NAME, “tbody")[-2].find_elements(By.TAG_NAME,"td")[-1].find_element(By.LINK_TEXT, “…").click()
8 else:
—-> 9 driver.find_elements(By.TAG_NAME, “tbody")[-2].find_element(By.LINK_TEXT, count).click()
10 # driver.find_elements(By.LINK_TEXT,"…")[-1].click()
11 driver.find_elements(By.TAG_NAME, “tbody")[-2].find_elements(By.TAG_NAME,"td")[-1].find_element(By.LINK_TEXT, “…").click()
File c:UsersAdministratorDocumentstask_schedulerupdate_suruzo_price_searchLibsite-packagesseleniumwebdriverremotewebelement.py:416, in WebElement.find_element(self, by, value)
413 by = By.CSS_SELECTOR
414 value = f'[name="{value}"]’
–> 416 return self._execute(Command.FIND_CHILD_ELEMENT, {“using": by, “value": value})[“value"]
File c:UsersAdministratorDocumentstask_schedulerupdate_suruzo_price_searchLibsite-packagesseleniumwebdriverremotewebelement.py:394, in WebElement._execute(self, command, params)
392 params = {}
393 params[“id"] = self._id
–> 394 return self._parent.execute(command, params)
File c:UsersAdministratorDocumentstask_schedulerupdate_suruzo_price_searchLibsite-packagesseleniumwebdriverremotewebdriver.py:347, in WebDriver.execute(self, driver_command, params)
345 response = self.command_executor.execute(driver_command, params)
346 if response:
–> 347 self.error_handler.check_response(response)
348 response[“value"] = self._unwrap_value(response.get(“value", None))
349 return response
…
(No symbol) [0x00A8DDF0]
BaseThreadInitThunk [0x75FE6A39+25]
RtlGetFullPathName_UEx [0x77BD800D+173]
RtlGetFullPathName_UEx [0x77BD7FDB+123]
- 11、21、31、41で別処理をしたい、python
- 11、21、31、41・・・91で別処理をしたい、python
- もっとスマートにしたい。1の位が1の時に別の処理をしたいんだ
- コンポジットってなに
- n % x == 0これは素数なの?
- 素数かどうかを判定するには?
- N=3なら?
- **0.5は平方根なの?
- 平方根を計算してみて、いくつか
- while i < range(len(Zen)):
これどういう意味
- ttyデバイス
- 標準入力がttyデバイスに接続された状態で起動した場合は、コマンドを対話的に読み込んで実行するが、引数にファイル名を与えたり、標準入力からファイルを与えて起動した場合は、このファイルに入った「スクリプト」を読み込んで実行する。
- 切り下げ除算を行って整数解を得たい場合(剰余を捨てたい場合)は「 / 」を使い、剰余のみ得たい場合は「 // 」を使う。
- 「 + 」や「 – 」などの記号はオペランドと呼ばれている?
- Pythonで除算はつねにfloatを返すの?
- 対話モードでは、最後に表示した式を変数「**」(アスタリスク2つ)に代入してある。
- 文字列リテラルを複数行にわたり書く一つの方法は、トリプルクオートを使う方法である。最初の改行などの行末文字が文字列に含まれることを避けたい場合は、行末に何を置く?
- multiline_string = “""
This is a
multiline
string.
“""
これならどうなる
- 対話型インタープリタでは文字列は引用符に囲まれ、特殊文字はバックスラッシュでエスケープされた状態で出力される。print()関数では全体を囲む引用符が除去され、エスケープ文字や特殊文字がプリントされた状態で出力される。
- 具体例をだして
- 次の結果を得たい場合、コード【A】【B】に入る組み合わせとして適切なものはどれか。なお【A】は★aの行と、【B】は★bの行と同じ数の空白でインデントされている。
[ 実行結果 ]
2 is a prime number
3 is a prime number
4 equals 2 * 2
5 is a prime number
6 equals 2 * 3
7 is a prime number
8 equals 2 * 4
9 equals 3 * 3
[ コード ]
for n in range(2, 10):
for x in range(2 ,n): …★b
if n % x == 0:
print(n, 'equals’, x, '*’, n//x) …★a
【A】
【B】
print(n,’is a prime number’)
- Pythonは柔軟な配列や集合、ディクショナリといった、非常に高水準のデータ型を組み込みで持つ。データ型の一般性が高いためPythonの対応可能な問題領域はAwkより広いが、Perlと比べると同程度である。
これどこが間違ってる?
- インタープリタがスクリプト名(スクリプトのファイル名)と続く引数群を知らされると、これらは文字列のリストとなる。import listitems を実行することで、このリストにアクセスできる。
どこがちがう?
- cronで毎週日曜日の0時から実行させたい
- シェルスクリプト
- :4の4は、インデックス番号ではなく、何個の数をカウントするかっていうこと?
- prog = re.compile('(K|S)us(a|u)n(a|o)(o|m)?g?i?(saya)?’, re.IGNORECASE)
これはどういう意味
- printのendで改行するには
- input_line = input()
print(“+"*10,f"+{input_line}+","+"*10,end="n")
改行されない
- あなたは、高速道路の管理運営を仕事にしています。
そこで、運転者に道路がどの程度渋滞しているかを知らせるシステムを作ることにしました。
ある道路の車の数と、各車の車間距離が与えられるので、車間距離が M メートル以下の場合を渋滞と定義したとき、渋滞の区間が合計で何メートルあるか求めるプログラムを作成してください。なお、車の車体の長さは無視して計算してください。
入力は以下のフォーマットで与えられます。
N M
A_1
A_2
…
A_{N-1}
・1 行目には、車の数を表す整数 N と、渋滞を定義する整数 M がこの順で半角スペース区切りで与えられます。
・続く N – 1 行目の i 行目 (1 ≦ i ≦ N – 1) には、先頭から i 番目の車と i + 1 番目の車の車間距離を表す整数 A_i が与えられます。
・入力は合計で N 行となり、入力値最終行の末尾に改行が 1 つ入ります。
すべてのテストケースにおいて、以下の条件をみたします。
・1 ≦ N ≦ 1,000
・1 ≦ M ≦ 100
・1 ≦ A_i ≦ 200 (1 ≦ i ≦ N – 1)
入力例1
5 10
5
6
25
4
出力例1
15
入力例2
4 30
30
10
40
出力例2
40
- <table class="grid-look">
<thead class="product-grid-top">
<tr>
<td class="nav prev"> </td>
<td><div class="swatch-option image " option-type="2″ option-id="2351″ option-label="GRAY/BLACK(MC5SF)" option-tooltip-thumb="https://media-www.ec.rs-taichi.com/catalog/product/cache/79cd194851544f88bafc552bf5216e5d/h/j/hjh194gy01t.jpg" option-tooltip-value="https://media-www.ec.rs-taichi.com/catalog/product/cache/455d758771d3747e7d5f3337b2de6a2c/h/j/hjh194gy01t.jpg" option-attr-code="color" style="background:url(https://media-www.ec.rs-taichi.com/catalog/product/cache/455d758771d3747e7d5f3337b2de6a2c/h/j/hjh194gy01t.jpg) no-repeat center; background-size:initial;"></div><div>GRAY/BLACK(MC5SF)</div></td>
<td><div class="swatch-option image " option-type="2″ option-id="2350″ option-label="WHITE/BLUE(MC2SF)" option-tooltip-thumb="https://media-www.ec.rs-taichi.com/catalog/product/cache/79cd194851544f88bafc552bf5216e5d/h/j/hjh194wh01t.jpg" option-tooltip-value="https://media-www.ec.rs-taichi.com/catalog/product/cache/455d758771d3747e7d5f3337b2de6a2c/h/j/hjh194wh01t.jpg" option-attr-code="color" style="background:url(https://media-www.ec.rs-taichi.com/catalog/product/cache/455d758771d3747e7d5f3337b2de6a2c/h/j/hjh194wh01t.jpg) no-repeat center; background-size:initial;"></div><div>WHITE/BLUE(MC2SF)</div></td>
<td><div class="swatch-option image " option-type="2″ option-id="1401″ option-label="BLACK/RED(MC1SF)" option-tooltip-thumb="https://media-www.ec.rs-taichi.com/catalog/product/cache/79cd194851544f88bafc552bf5216e5d/h/j/hjh194re01t.jpg" option-tooltip-value="https://media-www.ec.rs-taichi.com/catalog/product/cache/455d758771d3747e7d5f3337b2de6a2c/h/j/hjh194re01t.jpg" option-attr-code="color" style="background:url(https://media-www.ec.rs-taichi.com/catalog/product/cache/455d758771d3747e7d5f3337b2de6a2c/h/j/hjh194re01t.jpg) no-repeat center; background-size:initial;"></div><div>BLACK/RED(MC1SF)</div></td>
<td><div class="swatch-option image " option-type="2″ option-id="1377″ option-label="BLACK/YELLOW(MC4HSF)" option-tooltip-thumb="https://media-www.ec.rs-taichi.com/catalog/product/cache/79cd194851544f88bafc552bf5216e5d/h/j/hjh194ye01t.jpg" option-tooltip-value="https://media-www.ec.rs-taichi.com/catalog/product/cache/455d758771d3747e7d5f3337b2de6a2c/h/j/hjh194ye01t.jpg" option-attr-code="color" style="background:url(https://media-www.ec.rs-taichi.com/catalog/product/cache/455d758771d3747e7d5f3337b2de6a2c/h/j/hjh194ye01t.jpg) no-repeat center; background-size:initial;"></div><div>BLACK/YELLOW(MC4HSF)</div></td>
</tr>
</thead>
<tbody id="product-grid" class="product-grid-center">
<tr class="item">
<td>
<div class="swatch-option text " option-type="0″ option-id="1801″ option-label="S" option-tooltip-thumb="" option-tooltip-value="" option-attr-code="size">S</div> </td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>廃番</span>
</td>
</tr>
<tr class="item">
<td>
<div class="swatch-option text " option-type="0″ option-id="1796″ option-label="M" option-tooltip-thumb="" option-tooltip-value="" option-attr-code="size">M</div> </td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>廃番</span>
</td>
</tr>
<tr class="item">
<td>
<div class="swatch-option text " option-type="0″ option-id="1795″ option-label="L" option-tooltip-thumb="" option-tooltip-value="" option-attr-code="size">L</div> </td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>廃番</span>
</td>
</tr>
<tr class="item">
<td>
<div class="swatch-option text " option-type="0″ option-id="1800″ option-label="XL" option-tooltip-thumb="" option-tooltip-value="" option-attr-code="size">XL</div> </td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>廃番</span>
</td>
</tr>
</tbody>
</table>
上記のテーブルがある。これを、以下に格納したい。
self.stock_df = pd.DataFrame(data, columns=['Color’, 'Size’, 'Stock’])
- 'Color’, 'Size’, 'Stock’
GRAY/BLACK(MC5SF) ,"S","廃番"
GRAY/BLACK(MC5SF) ,"M","廃番"
GRAY/BLACK(MC5SF) ,"L","廃番"
WHITE/BLUE(MC2SF) ,"S","廃番"
WHITE/BLUE(MC2SF) ,"M","廃番"
- 'Color’, 'Size’, 'Stock’
GRAY/BLACK(MC5SF) ,"S","廃番"
GRAY/BLACK(MC5SF) ,"M","廃番"
GRAY/BLACK(MC5SF) ,"L","廃番"
WHITE/BLUE(MC2SF) ,"S","廃番"
WHITE/BLUE(MC2SF) ,"M","廃番"
上記のような出力にしたいんだ。さっきのテーブルから
- <table class="grid-look">
<thead class="product-grid-top">
<tr>
<td class="nav prev"> </td>
<td>GRAY/BLACK(MC5SF)</td>
<td>WHITE/BLUE(MC2SF)</td>
<td>BLACK/RED(MC1SF)</td>
<td>BLACK/YELLOW(MC4HSF)</td>
</tr>
</thead>
<tbody id="product-grid" class="product-grid-center">
<tr class="item">
<td>S</td>
<td>廃番</td>
<td>廃番</td>
<td>廃番</td>
<td>廃番</td>
</tr>
<tr class="item">
<td>M</td>
<td>廃番</td>
<td>廃番</td>
<td>廃番</td>
<td>廃番</td>
</tr>
<tr class="item">
<td>L</td>
<td>廃番</td>
<td>廃番</td>
<td>廃番</td>
<td>廃番</td>
</tr>
<tr class="item">
<td>XL</td>
<td>廃番</td>
<td>廃番</td>
<td>廃番</td>
<td>廃番</td>
</tr>
</tbody>
</table>
“""
上記の情報から、下記の出力をdataframeでだしたい。
Color,Size,Stock
GRAY/BLACK(MC5SF),S,廃番
GRAY/BLACK(MC5SF),M,廃番
GRAY/BLACK(MC5SF),L,廃番
WHITE/BLUE(MC2SF),S,廃番
WHITE/BLUE(MC2SF),M,廃番
- Django デバッグ
- データは入っているはずなんだ。
- Pythonのエラーは、構文エラーと例外エラーがあるの?
- with open(“file.txt") as f:
for line in f:
print(line, end="")
これはなに
- 名前空間とは
- コマンドライン上で「python3 script.py one two three four five」を実行したときに、以下の結果を得たい。コード2行目の【A】に入るものとして正しいものはどれか。
[ 実行結果 ]
['one’, 'two’, 'three’]
[ コード ]
import sys
print(【A】)
- 違反のある行を表示し、最後にエラーが検知された点を小さな矢印で示す。エラーは矢印より後のトークンが原因である。
これの答えは?
- パーサ(構文解釈器)は違反のある行を表示し、最後にエラーが検知された点を小さな矢印で示す。エラーは矢印より後のトークンが原因である。
- (1, 2, 3, 4,6) > (1, 2, 5)これはどういう意味
- (1, 2, 4, 6,6) > (1, 2, 5)
Falseとなった
- 等しくない数が含まれているかということ?
- 'PHP’ < 'Perl’ < 'Python’
これはどういう意味
- 'Php’ < 'Perl’ < 'Python’
これだとFalseになるのはなぜ
- あるモジュールがインポートされるときにインタープリタが検索する順序は、まずビルトインモジュール、次にsys.path変数で得られるディレクトリ、最後にシンボリックリンクを置いてあるディレクトリである。
- import sys
dir(sys)
このファイルはなに?
- import math
print('{1:.3f}, {0:.5f}’.format(math.pi, math.e))
これはなに
- try:
int_a = int(input('整数a:’))
int_b = int(input('整数b:’))
print(int_a ** 2)
print((int_a ** 2) / int_b)
except(ValueError) as v:
print(type(v))
print('C’)
except(ZeroDivisionError) :
print('D’)
except:
print('E’)
else:
print('F’)
finally:
print('G’)
この場合、elseって使えるの?
- finallyとはどうちがう
- 演算子の周囲やカンマの後ろ、カッコの内側にもスペースを入れ読みやすさに配慮すべきである。
- [ 実行結果 ]
deque(['cow’, 'dog’, 'elephant’, 'fox’])
[ コード ]
from 【A】 import deque
queue = deque([“bear", “cow", “dog", “elephant","fox"])
queue.append(“goat")
【B】
queue.pop()
print(queue)
- dequeの基本的な使い方おしえて
- queue.removeleft(“bear")
- queue.delete()
- Zen = 'ExplicitIsBetterThanImplicit’
print(Zen[1:20:3])
このリストの絞り込み説明して
- Zen[0] = 'J’
TypeError Traceback (most recent call last)
Cell In[37], line 1
—-> 1 Zen[0] = 'J’
TypeError: 'str’ object does not support item assignment
- pythonでthenって使える?
- elifってあるけど、elseifでも使える?Python
- def culc(a, b=1, squares=[], cubes=[]):
squares.append(a ** 2)
cubes.append(b ** 3)
return squares, cubes
print(culc(1))
print(culc(2, 3))
print(culc(3, 4))
print(culc(4, 5))
defの中のsquaresのリストは、初期化されないの?
- 関数のキーワード引き数で=[]となっていたら、最初だけ初期化されると覚えておけばいい?
- *arguments, **keywordsこれはどういう意味
- ASCIIってなに?UTF8とどう違うの
- 国際的な環境で使用する予定のコードでは、PythonのデフォルトであるUTF-8か、さらにプレーンなASCIIが常に最良である。
- ・・・なのか
- インタープリタを対話モードで起動すると、はじめにバージョンと著作権からはじまるメッセージが、その後にプライマリプロンプトが表示される。
- 著作権はどれ
- プログラムの冒頭で「# coding: (エンコーディング方式)」のようにすると、デフォルト以外のエンコーディングを使うことも可能である。
- サンプル書いて
- cp932もできる?
- f = d // c
この//ってなに
- Zen = 'NowIsBetterThanNever’
print('{}{}{}{}’.format(Zen[5], Zen[10], Zen[-7], Zen[-3:-1]))
これ説明して
- セカンダリプロンプトは?
- 対話モードで何するの?
- python -i script.pyこれはどうなるの
- デバッグや実験ってたとえば?変数の中をみたり?
- プライマリプロンプトの記号は「>>>」である。
- def product_info2(self):
return self.soup(id="additional")[0]
これだとエラーになる
- データベースに格納するのに、オブジェクト型だからではないか?
- def stock(self):
if len(self.tds) == 3:
color=self.sku(“td")[1].get_text(strip=True)
size= self.sku(“td")[2].get_text(strip=True)
self.stock_df=self.stock_df[(self.stock_df[“Color"]==color) & (self.stock_df[“Size"]==size)]
return self.stock_df[“Stock"].values[0]
elif len(self.tds) == 2:
# color=self.sku(“td")[1].get_text(strip=True)
# print(self.sku(“td")[2].get_text(strip=True))
size= self.sku(“td")[2].get_text(strip=True)
self.stock_df=self.stock_df[(self.stock_df[“Size"]==size)]
print(“:"*50)
return str(self.stock_df[“Stock"].values[0])
else:
return None
- オープンソースのソフトウエアってなに?Pythonはちがうの?
- Pythonでスクリプトファイルを走らせた後に、対話モードにはいるは?
- HTMLが元データなんだけど
- <table class="grid-look">
<thead class="product-grid-top">
<tr>
<td class="nav prev"> </td>
<td><div class="swatch-option image " option-type="2″ option-id="1346″ option-label="BLACK" option-tooltip-thumb="https://media-www.ec.rs-taichi.com/catalog/product/cache/79cd194851544f88bafc552bf5216e5d/r/s/rsu500tbk01.jpg" option-tooltip-value="https://media-www.ec.rs-taichi.com/catalog/product/cache/455d758771d3747e7d5f3337b2de6a2c/r/s/rsu500tbk01.jpg" option-attr-code="color" style="background:url(https://media-www.ec.rs-taichi.com/catalog/product/cache/455d758771d3747e7d5f3337b2de6a2c/r/s/rsu500tbk01.jpg) no-repeat center; background-size:initial;"></div><div>BLACK</div></td>
<td><div class="swatch-option image " option-type="2″ option-id="1347″ option-label="GRAY" option-tooltip-thumb="https://media-www.ec.rs-taichi.com/catalog/product/cache/79cd194851544f88bafc552bf5216e5d/r/s/rsu500tgy01.jpg" option-tooltip-value="https://media-www.ec.rs-taichi.com/catalog/product/cache/455d758771d3747e7d5f3337b2de6a2c/r/s/rsu500tgy01.jpg" option-attr-code="color" style="background:url(https://media-www.ec.rs-taichi.com/catalog/product/cache/455d758771d3747e7d5f3337b2de6a2c/r/s/rsu500tgy01.jpg) no-repeat center; background-size:initial;"></div><div>GRAY</div></td>
</tr>
</thead>
<tbody id="product-grid" class="product-grid-center">
<tr class="item">
<td>
<div class="swatch-option text " option-type="0″ option-id="1801″ option-label="S" option-tooltip-thumb="" option-tooltip-value="" option-attr-code="size">S</div> </td>
<td class="no-line-height">
<span>在庫有り</span>
</td>
<td class="no-line-height">
<span>在庫有り</span>
</td>
</tr>
<tr class="item">
<td>
<div class="swatch-option text " option-type="0″ option-id="1796″ option-label="M" option-tooltip-thumb="" option-tooltip-value="" option-attr-code="size">M</div> </td>
<td class="no-line-height">
<span>在庫有り</span>
</td>
<td class="no-line-height">
<span>在庫有り</span>
</td>
</tr>
<tr class="item">
<td>
<div class="swatch-option text " option-type="0″ option-id="1795″ option-label="L" option-tooltip-thumb="" option-tooltip-value="" option-attr-code="size">L</div> </td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>在庫有り</span>
</td>
</tr>
<tr class="item">
<td>
<div class="swatch-option text " option-type="0″ option-id="1800″ option-label="XL" option-tooltip-thumb="" option-tooltip-value="" option-attr-code="size">XL</div> </td>
<td class="no-line-height">
<span>在庫有り</span>
</td>
<td class="no-line-height">
<span>在庫有り</span>
</td>
</tr>
</tbody>
</table>
このHTMLをDataFrameに入れる事できる?
- data変数の中はどうなってるの
- from bs4 import BeautifulSoup
import pandas as pd
# HTMLデータ
html = “""
<table class="grid-look">
<thead class="product-grid-top">
<tr>
<td>Color</td>
<td>Size</td>
<td>Stock</td>
</tr>
</thead>
<tbody id="product-grid" class="product-grid-center">
<tr class="item">
<td>BLACK</td>
<td>S</td>
<td>在庫有り</td>
</tr>
<tr class="item">
<td>BLACK</td>
<td>M</td>
<td>在庫有り</td>
</tr>
<tr class="item">
<td>GRAY</td>
<td>L</td>
<td>廃番</td>
</tr>
<tr class="item">
<td>BLACK</td>
<td>XL</td>
<td>在庫有り</td>
</tr>
</tbody>
</table>
“""
# BeautifulSoupでHTMLを解析
soup = BeautifulSoup(html, 'html.parser’)
# データを抽出してリストに格納
data = []
for tr in soup.find_all('tbody’)[0].find_all('tr’):
tds = tr.find_all('td’)
if len(tds) == 3:
data.append([tds[0].text.strip(), tds[1].text.strip(), tds[2].text.strip()])
# データをDataFrameに変換
df = pd.DataFrame(data, columns=['Color’, 'Size’, 'Stock’])
# 結果を表示
df
このdfから、BLACKのMを探す方法
- size="M"
color="BLACK"
pic_df=df[(df[“Color"]==color) & (df[“Size"]==size)]
pic_df.loc[:,"Stock"]
Stockのテキストほしい
- def product_info1(self):
return self.soup(id_="attributedescription")[0]
id_でよかったっけ?
- exceptで回避できないか
- <table class="grid-look">
<thead class="product-grid-top">
<tr>
<td class="nav prev"> </td>
<td><div class="swatch-option image " option-type="2″ option-id="1346″ option-label="BLACK" option-tooltip-thumb="https://media-www.ec.rs-taichi.com/catalog/product/cache/79cd194851544f88bafc552bf5216e5d/r/s/rsu500tbk01.jpg" option-tooltip-value="https://media-www.ec.rs-taichi.com/catalog/product/cache/455d758771d3747e7d5f3337b2de6a2c/r/s/rsu500tbk01.jpg" option-attr-code="color" style="background:url(https://media-www.ec.rs-taichi.com/catalog/product/cache/455d758771d3747e7d5f3337b2de6a2c/r/s/rsu500tbk01.jpg) no-repeat center; background-size:initial;"></div><div>BLACK</div></td>
<td><div class="swatch-option image " option-type="2″ option-id="1347″ option-label="GRAY" option-tooltip-thumb="https://media-www.ec.rs-taichi.com/catalog/product/cache/79cd194851544f88bafc552bf5216e5d/r/s/rsu500tgy01.jpg" option-tooltip-value="https://media-www.ec.rs-taichi.com/catalog/product/cache/455d758771d3747e7d5f3337b2de6a2c/r/s/rsu500tgy01.jpg" option-attr-code="color" style="background:url(https://media-www.ec.rs-taichi.com/catalog/product/cache/455d758771d3747e7d5f3337b2de6a2c/r/s/rsu500tgy01.jpg) no-repeat center; background-size:initial;"></div><div>GRAY</div></td>
</tr>
</thead>
<tbody id="product-grid" class="product-grid-center">
<tr class="item">
<td>
<div class="swatch-option text " option-type="0″ option-id="1801″ option-label="S" option-tooltip-thumb="" option-tooltip-value="" option-attr-code="size">S</div> </td>
<td class="no-line-height">
<span>在庫有り</span>
</td>
<td class="no-line-height">
<span>在庫有り</span>
</td>
</tr>
<tr class="item">
<td>
<div class="swatch-option text " option-type="0″ option-id="1796″ option-label="M" option-tooltip-thumb="" option-tooltip-value="" option-attr-code="size">M</div> </td>
<td class="no-line-height">
<span>在庫有り</span>
</td>
<td class="no-line-height">
<span>在庫有り</span>
</td>
</tr>
<tr class="item">
<td>
<div class="swatch-option text " option-type="0″ option-id="1795″ option-label="L" option-tooltip-thumb="" option-tooltip-value="" option-attr-code="size">L</div> </td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>在庫有り</span>
</td>
</tr>
<tr class="item">
<td>
<div class="swatch-option text " option-type="0″ option-id="1800″ option-label="XL" option-tooltip-thumb="" option-tooltip-value="" option-attr-code="size">XL</div> </td>
<td class="no-line-height">
<span>在庫有り</span>
</td>
<td class="no-line-height">
<span>在庫有り</span>
</td>
</tr>
</tbody>
</table>
上記のデータと、下記のデータを付け合わせたい。
<table class="item_size" style="margin-left: auto; margin-right: auto;" border="1″>
<tbody>
<tr>
<td class="xl68″ style="text-align: left; font-weight: bold; font-size: 14px;" width="250″ height="24″>商品番号</td>
<td class="xl68″ style="text-align: left; font-weight: bold; font-size: 14px;" width="250″>Color</td>
<td class="xl68″ style="text-align: left; font-weight: bold; font-size: 14px;" width="250″>Size</td>
<td class="xl68″ style="text-align: left; font-weight: bold; font-size: 14px;" width="250″>JanCode</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RSU500BK01L</td>
<td class="xl68″ style="text-align: left;">BLACK</td>
<td class="xl68″ style="text-align: left;">L</td>
<td class="xl68″ style="text-align: left;">4997035046706</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RSU500BK01M</td>
<td class="xl68″ style="text-align: left;">BLACK</td>
<td class="xl68″ style="text-align: left;">M</td>
<td class="xl68″ style="text-align: left;">4997035046713</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RSU500BK01S</td>
<td class="xl68″ style="text-align: left;">BLACK</td>
<td class="xl68″ style="text-align: left;">S</td>
<td class="xl68″ style="text-align: left;">4997035046720</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RSU500BK01XL</td>
<td class="xl68″ style="text-align: left;">BLACK</td>
<td class="xl68″ style="text-align: left;">XL</td>
<td class="xl68″ style="text-align: left;">4997035046737</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RSU500GY01L</td>
<td class="xl68″ style="text-align: left;">GRAY</td>
<td class="xl68″ style="text-align: left;">L</td>
<td class="xl68″ style="text-align: left;">4997035040247</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RSU500GY01M</td>
<td class="xl68″ style="text-align: left;">GRAY</td>
<td class="xl68″ style="text-align: left;">M</td>
<td class="xl68″ style="text-align: left;">4997035040254</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RSU500GY01S</td>
<td class="xl68″ style="text-align: left;">GRAY</td>
<td class="xl68″ style="text-align: left;">S</td>
<td class="xl68″ style="text-align: left;">4997035040261</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RSU500GY01XL</td>
<td class="xl68″ style="text-align: left;">GRAY</td>
<td class="xl68″ style="text-align: left;">XL</td>
<td class="xl68″ style="text-align: left;">4997035040278</td>
</tr>
</tbody>
</table>
- 常にtorを起動しておきたい
- import requests
# Tor プロキシの設定
proxies = {
'http’: 'socks5h://127.0.0.1:9050’,
'https’: 'socks5h://127.0.0.1:9050’
}
# リクエストを送信
response = requests.get('http://example.com’, proxies=proxies)
# 応答を表示
print(response.text)
ちなみに、torを使いたくない場合はどうしたらいいの?
- proxies=proxiesのオプションを省略すればいいのか
- User
import requests
# Tor プロキシの設定
proxies = {
'http’: 'socks5h://127.0.0.1:9050’,
'https’: 'socks5h://127.0.0.1:9050’
}
# リクエストを送信
response = requests.get('http://example.com’, proxies=proxies)
# 応答を表示
print(response.text)
現在のIPアドレスを表示できる?
- response = requests.get('https://api.ipify.org’,proxies=proxies)
print(“現在のTOR IPアドレス:", response.text)
こうすればtorが表示される?
- linuxで現在のUbuntuのバージョン確認したい
- Error occurred during Crawl pmc: ('Connection aborted.’, ConnectionResetError(104, 'Connection reset by peer’))
- これは、相手サーバーから切断されたってこと?
- def fetch_product_url(self):
“""_詳細ページのHTML等の取得_
Returns:
df: _DataFrameで現時点URLにいる一覧ページ上のHTML情報を返す_
“""
df = pd.DataFrame()
# for index, i in tqdm(enumerate(self.driver.find_element(By.CLASS_NAME, “productList").find_elements(By.TAG_NAME, “a"))):
for index, i in tqdm(enumerate(self.fetch_product_loop_url_atag()),total=len(self.fetch_product_loop_url_atag())):
try:
self.logger.info(f’detail_url:{i.get_attribute(“href")}’)#現在の詳細ページを追跡
df.at[0, “crawl_site_id"] = self.crawl_site_id
df.at[0, “url"] = i.get_attribute(“href")
try:
df.at[0, “html_content"] = requests.get(i.get_attribute(“href")).text
except:#リトライ面倒の為
pass
df.at[0, “html_sub_content"] = self.fetch_sub_content(i)
df.at[0, “crawl_timestamp"] = timezone.now()
self.update_or_create_crawl_data(df)# クロールデータをテーブルへ書き込み
df = pd.DataFrame()#メモリ解放
sleep(self.sleep_time) #時間待機
except Exception as e:
try:
self.logger.error(f"Error fetching HTML content for URL: {i.get_attribute('href’)}. Error: {e}")
except:
pass
continue
# df = df.drop_duplicates(subset=[“url"])
return df
上記のrequests.get(i.get_attribute(“href")).textの部分だけを、torを使って海外IP経由で取得できる?
- torは毎回アクセスするたびにIPアドレスは変わるの?それとも、時間によって変わるの?
- ここは日本だけど、海外からアクセスしたら、英語でWEBページの情報を取得する可能性もありうる?
- import requests
# Tor プロキシの設定
proxies = {
'http’: 'socks5h://127.0.0.1:9050’,
'https’: 'socks5h://127.0.0.1:9050’
}
# リクエストを送信
response = requests.get('http://example.com’, proxies=proxies)
# 応答を表示
print(response.text)
torの設定をしたい。linux
- root@531a0c7c5e99:/home/NBSystem# service mysql start
mysql: unrecognized service
- root@531a0c7c5e99:/home/NBSystem# ls /etc/init.d/
cron dbus hwclock.sh procps udev x11-common
- root@531a0c7c5e99:/home/NBSystem# service mysql start
* Starting MySQL database server mysqld su: warning: cannot change directory to /nonexistent: No such file or directory
[ OK ]
root@531a0c7c5e99:/home/NBSystem#
- root@531a0c7c5e99:/home/NBSystem# mysql -u nbsystem.cxiyempxoldu.ap-northeast-1.rds.amazonaws.com -p 3306
Enter password:
ERROR 1045 (28000): Access denied for user 'nbsystem.cxiyempxoldu.ap-northeast-1.rds.amazona’@’localhost’ (using password: YES)
- Windows Server 2022 Datacenter Editionってなに
- ピアリングってなに
- パブリックアクセス可能ってなに?
- root@531a0c7c5e99:/home/NBSystem# mysql
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock’ (2)
- root@531a0c7c5e99:/home/NBSystem# systemctl status mysql
System has not been booted with systemd as init system (PID 1). Can’t operate.
Failed to connect to bus: Host is down
- tensorflowは何なの?深層学習用?
- root@531a0c7c5e99:/home/NBSystem# pip install mysqlclient
Collecting mysqlclient
Downloading mysqlclient-2.2.4.tar.gz (90 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 90.4/90.4 kB 2.6 MB/s eta 0:00:00
Installing build dependencies … done
Getting requirements to build wheel … error
error: subprocess-exited-with-error
× Getting requirements to build wheel did not run successfully.
│ exit code: 1
─> [27 lines of output]
/bin/sh: 1: pkg-config: not found
/bin/sh: 1: pkg-config: not found
/bin/sh: 1: pkg-config: not found
Trying pkg-config –exists mysqlclient
Command 'pkg-config –exists mysqlclient’ returned non-zero exit status 127.
Trying pkg-config –exists mariadb
Command 'pkg-config –exists mariadb’ returned non-zero exit status 127.
Trying pkg-config –exists libmariadb
Command 'pkg-config –exists libmariadb’ returned non-zero exit status 127.
Traceback (most recent call last):
File “/usr/local/lib/python3.10/dist-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 353, in <module>
main()
File “/usr/local/lib/python3.10/dist-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 335, in main
json_out['return_val’] = hook(**hook_input['kwargs’])
File “/usr/local/lib/python3.10/dist-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 118, in get_requires_for_build_wheel
return hook(config_settings)
File “/tmp/pip-build-env-bb85zjyc/overlay/local/lib/python3.10/dist-packages/setuptools/build_meta.py", line 325, in get_requires_for_build_wheel
return self._get_build_requires(config_settings, requirements=['wheel’])
File “/tmp/pip-build-env-bb85zjyc/overlay/local/lib/python3.10/dist-packages/setuptools/build_meta.py", line 295, in _get_build_requires
self.run_setup()
File “/tmp/pip-build-env-bb85zjyc/overlay/local/lib/python3.10/dist-packages/setuptools/build_meta.py", line 311, in run_setup
exec(code, locals())
File “<string>", line 155, in <module>
File “<string>", line 49, in get_config_posix
File “<string>", line 28, in find_package_name
Exception: Can not find valid pkg-config name.
Specify MYSQLCLIENT_CFLAGS and MYSQLCLIENT_LDFLAGS env vars manually
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error
× Getting requirements to build wheel did not run successfully.
│ exit code: 1
─> See above for output.
note: This error originates from a subprocess, and is likely not a problem with pip.
- root@531a0c7c5e99:/home/NBSystem# python3 manage.py dbshell
CommandError: You appear not to have the 'mysql’ program installed or on your path.
root@531a0c7c5e99:/home/NBSystem#
- djangoでmysqlへ接続したい。
やり方教えて
- root@531a0c7c5e99:/home/NBSystem# python3 manage.py makemigrations
/usr/local/lib/python3.10/dist-packages/django/core/management/commands/makemigrations.py:105: RuntimeWarning: Got an error checking a consistent migration history performed for database connection 'default’: (2003, “Can’t connect to MySQL server on 'nbsystem.cxiyempxoldu.ap-northeast-1.rds.amazonaws.com:3306’ (110)")
warnings.warn(
No changes detected
- RDSでMYSQLの設定方法
- パブリックアクセスは不可能にしているんだけど
- 平均なんだね
- pythonのreplaceを辞書型でスマートに置換できないかな?
- self.soup(class_="sales")[0].get_text(strip=True).replace(“円(税込)","").replace(“,","")
このreplaceをスマートにした
- self.soup(class_="sales")[0].get_text(strip=True).replace(“円(税込)","").replace(“,","")
辞書型で変数にいれてreplaceしたいの
- 2xを積分すると?
- 関数名にsやvが使われるのはなぜ?何か理由がある?
- dtってなに?
- xの上に横棒の表記ってなに?
- これってなに?小なりイコール?
- ≦この2つはどうちがうの?
- 微分を知る事でなにがいいの?
- データの解析: 統計学や機械学習などのデータ解析の分野では、微分がデータのパターンやトレンドを理解するのに使用されます。データの微分を計算することで、変化の速度や傾向を把握し、データの特性を分析することができます。
くわしく
- バイクの通販で微分って何か役立つ場面あるかな?
- 積分の役割
- 機械学習で積分はどのような役割がある?
- 積分は面積だよね、何に役立つの?
- 機械学習においては?
- self.driver.find_element(By.CLASS_NAME, “list").find_elements(By.TAG_NAME, “a")
このAタグを重複削除してループさせたい
- 「pip list パッケージ名」で、ある特定のパッケージの詳細情報が表示される。
これが誤っている部分はどこ
- デフォルト設定ではユーザーディレクトリの「.python_history」ファイルにヒストリが保存される。ヒストリは対話型インタープリタセッションで利用できる。
このヒストリーのサンプルみせて
- WEB開発って具体的にどういう事?
- tensorflowってなに?
- AIの中に、深層学習と機械学習があるんじゃないの?
- tensorflowでバイクのECでなにかできるかな?
- Eコマース
- TensorflowでバイクのEコマースになにか活用できることあるかな?アイデアちょうだい
- ほかに、なにかECの販促に役立つことないかな
- [i.get(“href")for i in self.soup(class_="productTileList grid grid-pc-x4 grid-tb-x2 grid-sp-x1 crossSell")[0](“a")]
リスト内の重複データを削除したい
- プログラムの開発工程教えて
- global ってなに?nonlocalとはちがうの?
- いつもだと、returnしてグローバル変数を変えていたけど、global変数使った方がいいの?
- random.choiceってなに
- random.sampleってなに
- uniqueって重複するっていう意味?重複しないはなんていうの?
- 対話モードでrandomモジュールを用い以下のような各結果を得たい場合、各コード【A】~【C】に入る正しい組み合わせはどれか。
>>> import random
>>> random.【A】(['apple’, 'pear’, 'banana’])
'apple’
>>> random.【B】(range(10),3)
[3, 7, 5]
>>> random.【C】(5)
4
【A】choice 【B】random 【C】rand
【A】choice 【B】sample 【C】rand
【A】choice 【B】sample 【C】randrange
【A】sample 【B】choice 【C】rand
【A】sample 【B】random 【C】randrange
- nonlocalってなに
- 合わなければ合う郷に入れと?
- コンパイル済みのモジュールはプラットフォーム非依存なので、ひとつのライブラリを異なるアーキテクチャのシステム間で共有できる。
- コンパイルとは
- パッケージとは、「ドット区切モジュール名」を使って、Pythonのモジュールを構築する方法である。
- 発生した例外に値が付随することもあり、これを例外の引数と呼ぶ。except 節では、例外名の後に変数を指定することができる。この変数は例外インスタンスに結び付けられており、instance.args に例外インスタンス生成時の引数が格納される。
- 次の実行結果を得たい場合、コードの【A】【B】【C】に入る組み合わせとして適切なものはどれか。
[ 実行結果 ]
David is a
strategic
AI
[コード]
class wexal(Exception):
pass
name = 'David’
def func(name: int):
try:
if name != 0:
raise_his_character(name)
except wexal:
print('【A】’)
raise Exception
def raise_his_character(a):
print(a, '【B】’)
raise wexal
print('【C】’)
try:
func(name)
except Exception:
print('【D】’)
【A】strategic 【B】is a 【C】naughty boy 【D】AI
【A】is a 【B】strategic 【C】naughty boy 【D】AI
【A】strategic 【B】is a 【C】AI 【D】naughty boy
【A】naughty boy 【B】is a 【C】strategic 【D】AI
【A】AI 【B】strategic 【C】is a 【D】naughty boy
- func(name: int)
とint型を指定されているのに、Davidを渡せるのはなぜ?
- docstringを表示するには?
- 次の実行結果を得たい場合に、コードの2行目(★印の行)を代替するものとして正しいものはどれか。
[実行結果]
[(1, 4, 8), (3, 9, 27), (5, 25, 125)]
[コード]
matrix = [[1, 3, 5], [4, 9, 25], [8, 27, 125]]
power = [[row[i] for row in matrix] for i in range(3)] ★
print(power)
power = list(zip(*matrix))
power = list(sum(*matrix))
power = list(zip(matrix))
power = set(sum(*matrix))
- combs = [[a,b] for a in [3,2,5] for b in [1,2,3] if a = b]
[]内の計算される順番解説して
- ディクショナリに対する帰属性判定演算子「in」「not in」による判定において、「含まれるかどうか」の判定の対象は「キー」ではなく「値」である。
これが間違っている箇所は
- 'Matplotlib’ > 'NumPy’ > 'pandas’ > 'scikit-learn’
なぜこれはFalseになるの?
- 郷にいては郷に従え
- 多次元配列って、2次元以上?
- numpyとセットでつかうライブラリってあるの?
- SciPyって?
- docstringの1行目は、常にオブジェクトの目的の短く簡潔な要約を記述し、大文字で始まりピリオドで終わる行とすべきである。
- 何で以下になるの?計算過程を教えて
行列の乗算:
[[19 22]
[43 50]]
- 行列の乗算をして何かいいことあるの?
- numpyで扱うのは、基本数値なの?
- numpyで良く使う処理ってどんなのがあるの?
- 配列の比較と論理演算: 配列の要素ごとの比較や論理演算を行うことができます。
ファイルの入出力: テキストファイルやバイナリファイルからデータを読み込み、配列をファイルに書き込むことができます。
この2つ教えて
- pandasで3次元配列とかつかえるの?
- 底の記載がない場合は、底は10とかんがえたらいいの?それともネイぴあ数?
- # 各要素の自然対数
log_arr = np.log(arr)
これはなに
- np.exp(arr)
これはなに、具体的に
- # 行列の加算
matrix_addition = np.add(arr1, arr2)
# 行列の乗算
matrix_multiplication = np.dot(matrix1, matrix2)
これについて解説して
- 具体例希望
- 乗算ってなに
- import numpy as np
# 2つの行列を定義
matrix1 = np.array([[1, 2],
[3, 4]])
matrix2 = np.array([[5, 6],
[7, 8]])
# 行列の乗算
matrix_multiplication = np.dot(matrix1, matrix2)
print(“行列の乗算:")
print(matrix_multiplication)
これがわからん
- array([[ 1, 2, 3, 4, 5],
[ 6, 7, 8, 9, 10],
[11, 12, 13, 14, 15]])
np.exp(arr)
これはなに
- 指数関数は、ネイピア数(e 2.71828)を底とする指数関数
これの指数関数ってどういうメリットがあるの?使い道は?
- ネイピア数ってなに
- # 転置
transposed_arr = arr.T
これはなに?
- arr.reshape(2, 3)
これはなに?
- # インデックスとスライスの同時利用
index_slice_arr = arr[1, 3:5]
これはどういう意味?
- 具体的なサンプルコード頂戴
- arr.ndim
ndimの略は?
- シグモイド関数みたいな感じ?
- 一様分布って?
- shape = arr.shape
これは、要素の数?
- pandasで読み込んでnumpyに変換できる?
- numpyのチートシート
- random_arr = np.random.rand(3, 3)
これは、0~1の間でランダムな数値を表示するの?
- numpy使わなくてもPandasでいいんじゃない?
- 具体的にどんな処理をするのnumpyで
- 機械学習でnumpyはどう利点がある?
- セキュリティ警告を無効にしたい
- これから機械学習を本格的にしていこうと思うんだけど、なにをしたらいいかな
- Scikit-learn、TensorFlowの違いってなに?
- 高度なモデルの開発ってなに?
- numpyって何に使う?
- csvを読み込むこともできるの?
- bashで
- (venv) ec-server@ecserver:/home/share/jenkins_build$ python3 Jenkins_buld.py
メッセージが送信されました。
Traceback (most recent call last):
File “Jenkins_buld.py", line 68, in <module>
driver = webdriver.Chrome(options=chrome_options)
File “/home/share/jenkins_build/venv/lib/python3.8/site-packages/selenium/webdriver/chrome/webdriver.py", line 45, in __init__
super().__init__(
File “/home/share/jenkins_build/venv/lib/python3.8/site-packages/selenium/webdriver/chromium/webdriver.py", line 61, in __init__
super().__init__(command_executor=executor, options=options)
File “/home/share/jenkins_build/venv/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 209, in __init__
self.start_session(capabilities)
File “/home/share/jenkins_build/venv/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 293, in start_session
response = self.execute(Command.NEW_SESSION, caps)[“value"]
File “/home/share/jenkins_build/venv/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 348, in execute
self.error_handler.check_response(response)
File “/home/share/jenkins_build/venv/lib/python3.8/site-packages/selenium/webdriver/remote/errorhandler.py", line 229, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.SessionNotCreatedException: Message: session not created: Chrome failed to start: exited normally.
(session not created: DevToolsActivePort file doesn’t exist)
(The process started from chrome location /home/ec-server/.cache/selenium/chrome/linux64/123.0.6312.86/chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
Stacktrace:
#0 0x55fe444e88a3 <unknown>
#1 0x55fe441de8c6 <unknown>
#2 0x55fe44212d34 <unknown>
#3 0x55fe4420ed3d <unknown>
#4 0x55fe44257aed <unknown>
#5 0x55fe4424b343 <unknown>
#6 0x55fe4421c593 <unknown>
#7 0x55fe4421cf5e <unknown>
#8 0x55fe444ac88b <unknown>
#9 0x55fe444b07e5 <unknown>
#10 0x55fe4449a5b1 <unknown>
#11 0x55fe444b1372 <unknown>
#12 0x55fe4447f8bf <unknown>
#13 0x55fe444d7768 <unknown>
#14 0x55fe444d793b <unknown>
#15 0x55fe444e79f4 <unknown>
#16 0x7f6fe2f2a609 start_thread
- Traceback (most recent call last):
File “Jenkins_buld.py", line 68, in <module>
driver = webdriver.Chrome(options=chrome_options)
File “/home/share/jenkins_build/venv/lib/python3.8/site-packages/selenium/webdriver/chrome/webdriver.py", line 45, in __init__
super().__init__(
File “/home/share/jenkins_build/venv/lib/python3.8/site-packages/selenium/webdriver/chromium/webdriver.py", line 61, in __init__
super().__init__(command_executor=executor, options=options)
File “/home/share/jenkins_build/venv/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 209, in __init__
self.start_session(capabilities)
File “/home/share/jenkins_build/venv/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 293, in start_session
response = self.execute(Command.NEW_SESSION, caps)[“value"]
File “/home/share/jenkins_build/venv/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 348, in execute
self.error_handler.check_response(response)
File “/home/share/jenkins_build/venv/lib/python3.8/site-packages/selenium/webdriver/remote/errorhandler.py", line 229, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.SessionNotCreatedException: Message: session not created: Chrome failed to start: exited normally.
(session not created: DevToolsActivePort file doesn’t exist)
(The process started from chrome location google-chrome-stable is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
Stacktrace:
#0 0x55a62db66f83 <unknown>
#1 0x55a62d81fcf7 <unknown>
#2 0x55a62d85760e <unknown>
#3 0x55a62d85426e <unknown>
#4 0x55a62d8a480c <unknown>
#5 0x55a62d898e53 <unknown>
#6 0x55a62d860dd4 <unknown>
#7 0x55a62d8621de <unknown>
#8 0x55a62db2b531 <unknown>
#9 0x55a62db2f455 <unknown>
#10 0x55a62db17f55 <unknown>
#11 0x55a62db300ef <unknown>
#12 0x55a62dafb99f <unknown>
#13 0x55a62db54008 <unknown>
#14 0x55a62db541d7 <unknown>
#15 0x55a62db66124 <unknown>
#16 0x7f64a7c68609 start_thread
- print(driver.page_source())
- 保護されていない通信とブラウザに表示されていて、証明書が無効だと、表示されている。
これだと、seleniumは上手く動作しないのかな
- <div class="app-sign-in-register__content-inner"><h1>Sign in to Jenkins</h1><form method="post" name="login" action="j_spring_security_check"><div><label class="app-sign-in-register__form-label" for="j_username">ユーザー名</label><input autocorrect="off" autocomplete="off" name="j_username" id="j_username" type="text" autofocus="autofocus" class="jenkins-input " autocapitalize="off"></div><div><label class="app-sign-in-register__form-label" for="j_password">パスワード</label><input name="j_password" id="j_password" type="password" class="jenkins-input “></div><div class="jenkins-checkbox"><input type="checkbox" id="remember_me" name="remember_me"><label for="remember_me">サインインしたままにする</label></div><input name="from" type="hidden" value="/"><button type="submit" name="Submit" class="jenkins-button jenkins-button–primary">サインイン</button></form><div class="footer"></div></div>
要素あってるよね?
- —————————————————————————
AttributeError Traceback (most recent call last)
File ~anaconda3libsite-packagesseleniumwebdrivercommondriver_finder.py:38, in DriverFinder.get_path(service, options)
37 try:
—> 38 path = SeleniumManager().driver_location(options) if path is None else path
39 except Exception as err:
File ~anaconda3libsite-packagesseleniumwebdrivercommonselenium_manager.py:87, in SeleniumManager.driver_location(self, options)
80 “""Determines the path of the correct driver.
81
82 :Args:
83 – browser: which browser to get the driver path for.
84 :Returns: The driver path to use
85 “""
—> 87 browser = options.capabilities[“browserName"]
89 args = [str(self.get_binary()), “–browser", browser]
AttributeError: 'str’ object has no attribute 'capabilities’
During handling of the above exception, another exception occurred:
AttributeError Traceback (most recent call last)
Cell In[167], line 14
8 chrome_options.add_argument(“–headless") # headlessモードを有効にする
9 # ChromeDriverのパスを取得
10 # chrome_driver_path = ChromeDriverManager().install()
11
12 # ChromeDriverを起動
13 # driver = webdriver.Chrome(options=chrome_options)
—> 14 driver = webdriver.Chrome(ChromeDriverManager().install())
15 # options = webdriver.ChromeOptions()
16 # options.add_argument(“–headless") # ヘッドレスモードでChromeを起動する場合
17 # driver = webdriver.Chrome(ChromeDriverManager().install())
18
19
20 # ログイン
21 login(driver,login_url,login_id,login_pass)
File ~anaconda3libsite-packagesseleniumwebdriverchromewebdriver.py:45, in WebDriver.__init__(self, options, service, keep_alive)
42 service = service if service else Service()
43 options = options if options else Options()
—> 45 super().__init__(
46 browser_name=DesiredCapabilities.CHROME[“browserName"],
47 vendor_prefix="goog",
48 options=options,
49 service=service,
50 keep_alive=keep_alive,
51 )
File ~anaconda3libsite-packagesseleniumwebdriverchromiumwebdriver.py:49, in ChromiumDriver.__init__(self, browser_name, vendor_prefix, options, service, keep_alive)
37 “""Creates a new WebDriver instance of the ChromiumDriver. Starts the
38 service and then creates new WebDriver instance of ChromiumDriver.
39
(…)
45 – keep_alive – Whether to configure ChromiumRemoteConnection to use HTTP keep-alive.
46 “""
47 self.service = service
—> 49 self.service.path = DriverFinder.get_path(self.service, options)
50 self.service.start()
52 executor = ChromiumRemoteConnection(
53 remote_server_addr=self.service.service_url,
54 browser_name=browser_name,
(…)
57 ignore_proxy=options._ignore_local_proxy,
58 )
File ~anaconda3libsite-packagesseleniumwebdrivercommondriver_finder.py:40, in DriverFinder.get_path(service, options)
38 path = SeleniumManager().driver_location(options) if path is None else path
39 except Exception as err:
—> 40 msg = f"Unable to obtain driver for {options.capabilities['browserName’]} using Selenium Manager."
41 raise NoSuchDriverException(msg) from err
43 if path is None or not Path(path).is_file():
AttributeError: 'str’ object has no attribute 'capabilities’
- driver = webdriver.Chrome(ChromeDriverManager().install())
これをつかいたい
- from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
# ChromeDriverをインストールしてWebDriverを設定
driver = webdriver.Chrome(ChromeDriverManager().install())
- —————————————————————————
AttributeError Traceback (most recent call last)
File ~anaconda3libsite-packagesseleniumwebdrivercommondriver_finder.py:38, in DriverFinder.get_path(service, options)
37 try:
—> 38 path = SeleniumManager().driver_location(options) if path is None else path
39 except Exception as err:
File ~anaconda3libsite-packagesseleniumwebdrivercommonselenium_manager.py:87, in SeleniumManager.driver_location(self, options)
80 “""Determines the path of the correct driver.
81
82 :Args:
83 – browser: which browser to get the driver path for.
84 :Returns: The driver path to use
85 “""
—> 87 browser = options.capabilities[“browserName"]
89 args = [str(self.get_binary()), “–browser", browser]
AttributeError: 'str’ object has no attribute 'capabilities’
During handling of the above exception, another exception occurred:
AttributeError Traceback (most recent call last)
Cell In[1], line 5
2 from webdriver_manager.chrome import ChromeDriverManager
4 # ChromeDriverをインストールしてWebDriverを設定
—-> 5 driver = webdriver.Chrome(ChromeDriverManager().install())
File ~anaconda3libsite-packagesseleniumwebdriverchromewebdriver.py:45, in WebDriver.__init__(self, options, service, keep_alive)
42 service = service if service else Service()
43 options = options if options else Options()
—> 45 super().__init__(
46 browser_name=DesiredCapabilities.CHROME[“browserName"],
47 vendor_prefix="goog",
48 options=options,
49 service=service,
50 keep_alive=keep_alive,
51 )
File ~anaconda3libsite-packagesseleniumwebdriverchromiumwebdriver.py:49, in ChromiumDriver.__init__(self, browser_name, vendor_prefix, options, service, keep_alive)
37 “""Creates a new WebDriver instance of the ChromiumDriver. Starts the
38 service and then creates new WebDriver instance of ChromiumDriver.
39
(…)
45 – keep_alive – Whether to configure ChromiumRemoteConnection to use HTTP keep-alive.
46 “""
47 self.service = service
—> 49 self.service.path = DriverFinder.get_path(self.service, options)
50 self.service.start()
52 executor = ChromiumRemoteConnection(
53 remote_server_addr=self.service.service_url,
54 browser_name=browser_name,
(…)
57 ignore_proxy=options._ignore_local_proxy,
58 )
File ~anaconda3libsite-packagesseleniumwebdrivercommondriver_finder.py:40, in DriverFinder.get_path(service, options)
38 path = SeleniumManager().driver_location(options) if path is None else path
39 except Exception as err:
—> 40 msg = f"Unable to obtain driver for {options.capabilities['browserName’]} using Selenium Manager."
41 raise NoSuchDriverException(msg) from err
43 if path is None or not Path(path).is_file():
AttributeError: 'str’ object has no attribute 'capabilities’
- ファイルをコピーしたい
- サーバーレス データ ウェアハウスってなに
- GoogleのBigqueryってなに
- ChromeDriverManager().install()
これつかってseleniumを起動させたい
- Traceback (most recent call last):
File “Jenkins_buld.py", line 68, in <module>
driver = webdriver.Chrome(ChromeDriverManager().install())
File “/home/share/jenkins_build/venv/lib/python3.8/site-packages/selenium/webdriver/chrome/webdriver.py", line 45, in __init__
super().__init__(
File “/home/share/jenkins_build/venv/lib/python3.8/site-packages/selenium/webdriver/chromium/webdriver.py", line 49, in __init__
self.service.path = DriverFinder.get_path(self.service, options)
File “/home/share/jenkins_build/venv/lib/python3.8/site-packages/selenium/webdriver/common/driver_finder.py", line 40, in get_path
msg = f"Unable to obtain driver for {options.capabilities['browserName’]} using Selenium Manager."
AttributeError: 'str’ object has no attribute 'capabilities’
- (venv) ec-server@ecserver:/home/share/jenkins_build$ python3 Jenkins_buld.py
メッセージが送信されました。
Traceback (most recent call last):
File “Jenkins_buld.py", line 75, in <module>
login(driver,login_url,login_id,login_pass)
File “Jenkins_buld.py", line 24, in login
driver.find_element(By.ID,"j_username").clear()
File “/home/share/jenkins_build/venv/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 742, in find_element
return self.execute(Command.FIND_ELEMENT, {“using": by, “value": value})[“value"]
File “/home/share/jenkins_build/venv/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 348, in execute
self.error_handler.check_response(response)
File “/home/share/jenkins_build/venv/lib/python3.8/site-packages/selenium/webdriver/remote/errorhandler.py", line 229, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {“method":"css selector","selector":"[id="j_username"]"}
(Session info: chrome-headless-shell=120.0.6099.216); For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#no-such-element-exception
Stacktrace:
#0 0x55bdca6a3f83 <unknown>
#1 0x55bdca35ccf7 <unknown>
#2 0x55bdca3ac99e <unknown>
#3 0x55bdca3acaa1 <unknown>
#4 0x55bdca3f7d64 <unknown>
#5 0x55bdca3d60dd <unknown>
#6 0x55bdca3f5006 <unknown>
#7 0x55bdca3d5e53 <unknown>
#8 0x55bdca39ddd4 <unknown>
#9 0x55bdca39f1de <unknown>
#10 0x55bdca668531 <unknown>
#11 0x55bdca66c455 <unknown>
#12 0x55bdca654f55 <unknown>
#13 0x55bdca66d0ef <unknown>
#14 0x55bdca63899f <unknown>
#15 0x55bdca691008 <unknown>
#16 0x55bdca6911d7 <unknown>
#17 0x55bdca6a3124 <unknown>
#18 0x7fd740016609 start_thread
- メッセージが送信されました。
Traceback (most recent call last):
File “Jenkins_buld.py", line 75, in <module>
login(driver,login_url,login_id,login_pass)
File “Jenkins_buld.py", line 24, in login
driver.find_element(By.ID,"j_username").clear()
File “/home/share/jenkins_build/venv/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 742, in find_element
return self.execute(Command.FIND_ELEMENT, {“using": by, “value": value})[“value"]
File “/home/share/jenkins_build/venv/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 348, in execute
self.error_handler.check_response(response)
File “/home/share/jenkins_build/venv/lib/python3.8/site-packages/selenium/webdriver/remote/errorhandler.py", line 229, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {“method":"css selector","selector":"[id="j_username"]"}
(Session info: chrome-headless-shell=120.0.6099.216); For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#no-such-element-exception
Stacktrace:
#0 0x55a0d4cf5f83 <unknown>
- def login(driver,login_url,login_id,login_pass):
driver.get(login_url)
sleep(5)
driver.find_element(By.ID,"j_username").clear()
sleep(2)
driver.find_element(By.ID,"j_username").send_keys(login_id)#ログインIDを入力
sleep(2)
driver.find_element(By.ID,"j_password").clear()
sleep(2)
driver.find_element(By.ID,"j_password").send_keys(login_pass)#ログインPASSを入力
sleep(2)
driver.find_element(By.CLASS_NAME,"jenkins-button").click()
- 情報利得の不純度とは
- ジニ不純度について詳しく
- 在庫管理がサポートベクターマシンを使えるのはなぜ?二値分類ではなくない?在庫が10個必要な時もあれば100個必要なときもある。月間の販売個数は異なると思うが
- SVCやLightGBMやランダムフォレスト、使い分けが分からないんだ
- 離反とは
- 線形分離とは
- 線形分離より、非線形分離のほうが優位性があるのでは?
- 例えば、梱包サイズを推測するモデルは、線形分離を使った方がいいと思う?
- 線形分離は、二値分類にしか対応していないの?
- 梱包サイズは、60サイズ、80サイズ、100サイズ・・・200サイズと、多くの分類がある。これをサポートベクターマシンで振り分ける事は可能なのか
- 多クラス分類とは
- 多クラス分類の対義語は?
- Eコマースでサポートベクターマシンを使ってなにかできる?
- fontdictの使い方
- サブプロットとプロットの違い
- カーセンサーって知ってる?
- あれのデータでAIをつくるとしたら、何が作れると思う?
- ロバストってなに
- 標準偏差と分散を英語で
- 枠線を変えたい
- textメソッドを使ってテキストを入れたい
- ha=’center’, va=’center’
これは、center以外にもある?
- サブプロットもしたい
- matplotlib.style
- セーブしたい
- import matplotlib.pyplot as plt
# スタイルを設定
plt.style.use('ggplot’)
# データを定義
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
# サブプロットを作成
fig, ax = plt.subplots()
# 折れ線グラフをプロット
ax.plot(x, y, marker=’o’, linestyle=’-', color=’b’, label=’Data’)
# サブプロットにタイトルと軸ラベルを追加
ax.set_title('Sample Line Plot’)
ax.set_xlabel('X-axis’)
ax.set_ylabel('Y-axis’)
# 凡例を表示
ax.legend()
# グリッドを表示
ax.grid(True)
# グラフを表示
plt.show()
plt.savefig(“tmp_plot.jpg")
これじゃだめ?エクスポートされるけど、データが表示されない
- 折れ線でlinewidthを指定したい
- タイトルのフォントファミリーを指定したい
- 背景色を変えたい
- np.random.randint(1, 31, 365)
- import numpy as np
import pandas as pd
np.random.seed(123)
dates = pd.date_range(start=" 2017-04-01″, periods=365)
df = pd.DataFrame(np.random.randint(1, 31, 365), index=dates, columns=[“rand"])
df
df_year = pd.DataFrame(df.groupby(pd.Grouper(freq="W-SAT")).sum(), columns=[“rand"])
- matplotlib.styleとは
- matplotlibのサンプルコード頂戴
- styleを指定した
- random.seedってなに
- つまりどういうこと?
- なるほど、seedを指定しなかったら、常にことなる数値が生成される?
- pd.data_rangeってなに
- to_htmlは?
- int8, int16, int32, int64と沢山のint型があるが、何も指定しなければどうなるの?
- np.eyeってなに
- np.fullってなに
- npのhstackってなに
- concatみたいなものか
- read_htmlってなに?
- テーブルを読み込むの?
- それを、tensorflowでも実現できる?
- シンプルなPythonのソースコードおしえてtensorflowの
- Epoch 1/100
—————————————————————————
ValueError Traceback (most recent call last)
Cell In[157], line 47
44 model.compile(optimizer=’adam’, loss=’sparse_categorical_crossentropy’, metrics=['accuracy’])
46 # モデルのトレーニング
—> 47 model.fit([question_sequences, answer_sequences[:, :-1]], answer_sequences[:, 1:], epochs=100)
49 # モデルの保存
50 model.save(“qa_model")
File ~anaconda3libsite-packageskerasutilstraceback_utils.py:70, in filter_traceback.<locals>.error_handler(*args, **kwargs)
67 filtered_tb = _process_traceback_frames(e.__traceback__)
68 # To get the full stack trace, call:
69 # `tf.debugging.disable_traceback_filtering()`
—> 70 raise e.with_traceback(filtered_tb) from None
71 finally:
72 del filtered_tb
File ~AppDataLocalTemp__autograph_generated_file4r8nvhy_.py:15, in outer_factory.<locals>.inner_factory.<locals>.tf__train_function(iterator)
13 try:
14 do_return = True
—> 15 retval_ = ag__.converted_call(ag__.ld(step_function), (ag__.ld(self), ag__.ld(iterator)), None, fscope)
16 except:
17 do_return = False
ValueError: in user code:
File “C:Usersdell25anaconda3libsite-packageskerasenginetraining.py", line 1284, in train_function *
return step_function(self, iterator)
File “C:Usersdell25anaconda3libsite-packageskerasenginetraining.py", line 1268, in step_function **
outputs = model.distribute_strategy.run(run_step, args=(data,))
File “C:Usersdell25anaconda3libsite-packageskerasenginetraining.py", line 1249, in run_step **
outputs = model.train_step(data)
File “C:Usersdell25anaconda3libsite-packageskerasenginetraining.py", line 1050, in train_step
y_pred = self(x, training=True)
File “C:Usersdell25anaconda3libsite-packageskerasutilstraceback_utils.py", line 70, in error_handler
raise e.with_traceback(filtered_tb) from None
File “C:Usersdell25anaconda3libsite-packageskerasengineinput_spec.py", line 298, in assert_input_compatibility
raise ValueError(
ValueError: Input 1 of layer “model_6" is incompatible with the layer: expected shape=(None, 5), found shape=(None, 4)
- Epoch 1/100
—————————————————————————
ValueError Traceback (most recent call last)
Cell In[158], line 48
44 model.compile(optimizer=’adam’, loss=’sparse_categorical_crossentropy’, metrics=['accuracy’])
46 # モデルのトレーニング
47 # model.fit([question_sequences, answer_sequences[:, :-1]], answer_sequences[:, 1:], epochs=100)
—> 48 model.fit([question_sequences, answer_sequences[:, :-1]], answer_sequences[:, 1:], epochs=100)
51 # モデルの保存
52 model.save(“qa_model")
File ~anaconda3libsite-packageskerasutilstraceback_utils.py:70, in filter_traceback.<locals>.error_handler(*args, **kwargs)
67 filtered_tb = _process_traceback_frames(e.__traceback__)
68 # To get the full stack trace, call:
69 # `tf.debugging.disable_traceback_filtering()`
—> 70 raise e.with_traceback(filtered_tb) from None
71 finally:
72 del filtered_tb
File ~AppDataLocalTemp__autograph_generated_file4r8nvhy_.py:15, in outer_factory.<locals>.inner_factory.<locals>.tf__train_function(iterator)
13 try:
14 do_return = True
—> 15 retval_ = ag__.converted_call(ag__.ld(step_function), (ag__.ld(self), ag__.ld(iterator)), None, fscope)
16 except:
17 do_return = False
ValueError: in user code:
File “C:Usersdell25anaconda3libsite-packageskerasenginetraining.py", line 1284, in train_function *
return step_function(self, iterator)
File “C:Usersdell25anaconda3libsite-packageskerasenginetraining.py", line 1268, in step_function **
outputs = model.distribute_strategy.run(run_step, args=(data,))
File “C:Usersdell25anaconda3libsite-packageskerasenginetraining.py", line 1249, in run_step **
outputs = model.train_step(data)
File “C:Usersdell25anaconda3libsite-packageskerasenginetraining.py", line 1050, in train_step
y_pred = self(x, training=True)
File “C:Usersdell25anaconda3libsite-packageskerasutilstraceback_utils.py", line 70, in error_handler
raise e.with_traceback(filtered_tb) from None
File “C:Usersdell25anaconda3libsite-packageskerasengineinput_spec.py", line 298, in assert_input_compatibility
raise ValueError(
ValueError: Input 1 of layer “model_7" is incompatible with the layer: expected shape=(None, 5), found shape=(None, 4)
- 変わっていないってば、先の回答と見比べてみて
- numpyの型を教えて
- ndarrayやmatrixは?
- numpyのravelとflattenについて
- 例えば、学習させていない事を質問したらどうなるの?
- Epoch 1/100
—————————————————————————
ValueError Traceback (most recent call last)
Cell In[147], line 47
44 model.compile(optimizer=’adam’, loss=’sparse_categorical_crossentropy’, metrics=['accuracy’])
46 # モデルのトレーニング
—> 47 model.fit([question_sequences, answer_sequences[:, :-1]], answer_sequences[:, 1:], epochs=100)
49 # モデルの保存
50 model.save(“qa_model")
File ~anaconda3libsite-packageskerasutilstraceback_utils.py:70, in filter_traceback.<locals>.error_handler(*args, **kwargs)
67 filtered_tb = _process_traceback_frames(e.__traceback__)
68 # To get the full stack trace, call:
69 # `tf.debugging.disable_traceback_filtering()`
—> 70 raise e.with_traceback(filtered_tb) from None
71 finally:
72 del filtered_tb
File ~AppDataLocalTemp__autograph_generated_file4r8nvhy_.py:15, in outer_factory.<locals>.inner_factory.<locals>.tf__train_function(iterator)
13 try:
14 do_return = True
—> 15 retval_ = ag__.converted_call(ag__.ld(step_function), (ag__.ld(self), ag__.ld(iterator)), None, fscope)
16 except:
17 do_return = False
ValueError: in user code:
File “C:Usersdell25anaconda3libsite-packageskerasenginetraining.py", line 1284, in train_function *
return step_function(self, iterator)
File “C:Usersdell25anaconda3libsite-packageskerasenginetraining.py", line 1268, in step_function **
outputs = model.distribute_strategy.run(run_step, args=(data,))
File “C:Usersdell25anaconda3libsite-packageskerasenginetraining.py", line 1249, in run_step **
outputs = model.train_step(data)
File “C:Usersdell25anaconda3libsite-packageskerasenginetraining.py", line 1050, in train_step
y_pred = self(x, training=True)
File “C:Usersdell25anaconda3libsite-packageskerasutilstraceback_utils.py", line 70, in error_handler
raise e.with_traceback(filtered_tb) from None
File “C:Usersdell25anaconda3libsite-packageskerasengineinput_spec.py", line 298, in assert_input_compatibility
raise ValueError(
ValueError: Input 1 of layer “model" is incompatible with the layer: expected shape=(None, 5), found shape=(None, 4)
- import numpy as np
import tensorflow as tf
from tensorflow.keras.preprocessing.text import Tokenizer
from tensorflow.keras.preprocessing.sequence import pad_sequences
# 質問とその答えのペアのデータセット
questions = [“What is your name?", “How old are you?", “What is your favorite color?"]
answers = [“My name is ChatGPT.", “I am 5 years old.", “My favorite color is blue."]
# Tokenizerの準備
tokenizer = Tokenizer()
tokenizer.fit_on_texts(questions + answers)
# データを数値シーケンスに変換
question_sequences = tokenizer.texts_to_sequences(questions)
answer_sequences = tokenizer.texts_to_sequences(answers)
# パディング
maxlen = max(max(len(seq) for seq in question_sequences), max(len(seq) for seq in answer_sequences))
question_sequences = pad_sequences(question_sequences, padding=’post’, maxlen=maxlen)
answer_sequences = pad_sequences(answer_sequences, padding=’post’, maxlen=maxlen)
# モデルの構築
vocab_size = len(tokenizer.word_index) + 1
embedding_dim = 128
units = 256
encoder_inputs = tf.keras.layers.Input(shape=(maxlen,))
encoder_embedding = tf.keras.layers.Embedding(vocab_size, embedding_dim, mask_zero=True)(encoder_inputs)
encoder_outputs, state_h, state_c = tf.keras.layers.LSTM(units, return_state=True)(encoder_embedding)
encoder_states = [state_h, state_c]
decoder_inputs = tf.keras.layers.Input(shape=(maxlen,))
decoder_embedding = tf.keras.layers.Embedding(vocab_size, embedding_dim, mask_zero=True)(decoder_inputs)
decoder_lstm = tf.keras.layers.LSTM(units, return_sequences=True, return_state=True)
decoder_outputs, _, _ = decoder_lstm(decoder_embedding, initial_state=encoder_states)
decoder_dense = tf.keras.layers.Dense(vocab_size, activation=’softmax’)
decoder_outputs = decoder_dense(decoder_outputs)
# モデルの定義
model = tf.keras.models.Model([encoder_inputs, decoder_inputs], decoder_outputs)
# モデルのコンパイル
model.compile(optimizer=’adam’, loss=’sparse_categorical_crossentropy’, metrics=['accuracy’])
# モデルのトレーニング
model.fit([question_sequences, answer_sequences[:, :-1]], answer_sequences[:, 1:], epochs=100)
# モデルの保存
model.save(“qa_model")
- チャットGPTは、学習データが膨大にあるから、適切な答えをだせてるの?
- 文章生成AIに興味がありまくる、Pythonでできる?
- APIだとお金かかるでしょ?無料なのでいうとなにがある?
- NLTKとは
- 質問したら答えるような文章生成AIをPythonで無料で作りたいんだ。
- TensorFlowをつかったサンプルコード頂戴
- このqa_modelをつかうにはどうしたらいいの?
- 暗算のコツ
- array([[ 1, 2, 3, 4, 5],
[ 6, 7, 8, 9, 10],
[11, 12, 13, 14, 15]])
このarrayの標準偏差は4.320。これは、どういう事を示唆している?
- 4.3という数値は、いいの?
- いい、悪いが分からないのに、標準偏差を出す理由があるの?
- 線形写像ってなに
- どうしたらいい?
- excelの区切り位置で、セル内の改行を指定したい
- B2CとB2Bってなんて表現するの?業態?
- 正確度、適合度、再現度について一言で
- ndarraytってなに
- 勾配ブースティングの種類
- CatBoost LightGBM XGBoost これらの使い分け
- CatBoost LightGBM XGBoostは、回帰と分類ができるの?
- 分類は、二値分類も多クラス分類も可能?
- 最後に、回帰と分類についてまとめて
- 次にクラスタリングについて教えて
- クラスタリングしてなにがいいの?
- クラスタリングは、回帰や分類のデータセットに対して認識するにも使える?
- クラスタリング単体で、仕事の依頼は来るものなのか?
- データサイエンティストと機械学習エンジニアの違い
- AIエンジニアと機械学習エンジニアはちがうの?
- モデルの評価について教えて
- 決定木やロジスティック回帰には、ハイパーパラメータはないの?
- なるほど、となるとランダムフォレストが簡単で精度もそこそこ高いのかな
- 多クラス分類におすすめのアルゴリズム
- 分類はもういいや、回帰のアルゴリズムについて教えて
- 勾配ブースティングの回帰はある?
- 勾配ブースティングの回帰には、どんなアルゴリズムがあるの?
- ニューラルネットワークも回帰できる?
- 主成分分析は、次元削減とどう違うの?
- 次元削減しなくてもいいのでは?
- 計算効率の向上:
とあるが、これは、モデルを開発する際?それとも運用する際の話?
- サポートベクターマシンとかで二値分類するときとかの評価に使えるって事かな?
- 二値分類は、サポートベクターマシンが主流なの?ほかにある?
- 二値分類する際の上記のアルゴリズムの使い分けが分からない
- そうみると、勾配ブースティングを使えばいい気がするけど
- ハイパーパラメータの調整が難しいアルゴリズム順に教えて
- 自然言語処理:
問題: テキストの意味を理解し、翻訳、要約、感情分析などのタスクを実行する。
アプローチ: リカレントニューラルネットワーク(RNN)、長短期記憶(LSTM)、トランスフォーマーなどのモデルを使用。
これは、バイクECで何か使えるかな
- 製品レビューの分析:
ユーザーが商品に関するレビューを投稿する場合、そのレビューを感情分析して、肯定的なレビューと否定的なレビューを区別することができます。これにより、顧客の意見や好みを理解し、製品の改善点を特定することができます。
サンプルコード
- 深層学習でおねがい
- 製品レビューの分析:
ユーザーが商品に関するレビューを投稿する場合、そのレビューを感情分析して、肯定的なレビューと否定的なレビューを区別することができます。これにより、顧客の意見や好みを理解し、製品の改善点を特定することができます。
これを深層学習でPython
- LSTM(Long Short-Term Memory)というリカレントニューラルネットワーク(RNN)なにこれ?
- 商品の説明の自動生成:
商品ページに掲載される製品の説明や特徴を自動的に生成します。これにより、商品の説明を効率的に作成し、顧客にとって魅力的な情報を提供することができます。
これをpythonの深層学習でサンプルコード頂戴
- Pythonで機械学習をする流れを教えて。
アルゴリズムを選定したり、交互検証したり、評価したり、運用したりとか。
- 上記の中で、ジニ不純度は、モデルの評価に該当するの?
- 決定木を使った方が良い場合はなに?
- 特徴量のスケーリングってなに?
- 正規化つかわないで、標準化使っとけばいいんじゃないの?
- 深層学習を使ってなにかモデルを作りたい
- 画像分類をCNNを使ってしたいpython
- keras.datasets.cifar10.load_data()
korehanani?
- 何件のデータがあるの?
- トレーニング画像に犬とかのラベルは与えられているの?
- バイク用品のECで画像認識をさせて、それでどう活かせるかな
- セグメンテーション:
問題: 画像内の各ピクセルを特定のクラスに割り当てる。
アプローチ: U-Net、SegNet、DeepLabなどのセグメンテーションネットワークを使用。
これはなに?
- 商品の在庫管理:
在庫品を販売可能か否かを判断するために、需要予測モデルを構築し、商品が売り切れるかどうかを二値分類することができます。これにより、在庫の適切な管理や補充が行えます。
これは、需要予測という回帰モデル?
- SVMやランダムフォレストはつかわないほうがいい?
- データ数が少ないって、具体的に何件とか目安ある?
- 1000件ならどう?
- バイク用品のEコマースで多クラス分類をするならなにがあるかな
- 回帰なら何があるかな?
- クラスタリングなら何があるかな
- 20万点あるバイク用品を車種別に振り分けたいんだ。どうしたらいいと思う?
- 機械学習開発ののながれ
- データのパイプラインってなに?
- どうやって自動化させるの?
- One-hotエンコーディング
- 分散正規化とは
- モデルの開発は、AIの開発といっていいの?
- ランダムフォレストのモデルはAIに該当するの?
- ロジスティック回帰は?
- 単回帰は?
- モデルをつくれば、それはAIになるのか
- 勾配ブースティング以外のブースティングは、あまり使われないのかな?
- 特徴量が多いタクラス分類におすすめのアルゴリズム
- 上記の4つの中で、精度が良い順に並べてみて
- ランダムフォレストより、SVMの方が高いの?精度
- 決定木回帰は、線形?
- ニューラルネットワークとブースティングは、どっちがモデル構築の工数が高い?
- イメージ的には、ニューラルネットワークが一番高精度で高単価というイメージなんだが
- 大規模なデータセットで分類をする場合のアルゴリズムのおすすめ
- ロジスティック回帰はNGなの?
- 勾配ブースティングとは
- 目的関数の勾配とは
- 目的関数
- バイク用品の通販をしているんだけど、二値分類をしてみたい。なにか二値分類することあるかな?
- 勾配以外になにかあるの?
- アンサンブル学習のほうが、精度は高いんじゃない?
- バイアスとバリアンスの低減
- ロジスティック回帰でつくったものは、モデルといえるの?
- アンサンブル学習でなくても、モデルというんだね
- アンサンブル学習は、バギングとブースティングに分かれるけど、勾配ブースティングってなに?
- クラスの不均衡ってなに
- 、適切なサンプリング手法、クラスの重み付け、異常検出、再サンプリング
- 異常検出:
クラスの不均衡に対処するために、少数クラスを異常として検出するアプローチです。異常検出手法は、少数クラスの特徴を捉えて分類や識別を行います。
- ホテリングのT2法
- SMOTEやADASYN
- ロジスティック回帰とは
- ロジスティック回帰って、単回帰・重回帰とは異なるってこと?
- 非線形のメリットは?
- 特徴エンジニアリングとは
- なぜロジスティック回帰って呼ばれるの?回帰できないのに
- 機械学習ってそもそもなに?決定木もふくまれるの?
- ロジスティック回帰って、アンサンブル学習ではない?
- サポートベクターマシンって、アンサンブル学習なの?
- 正則化
- サポートベクターマシンは、線形じゃないの?
- SVMのカーネルトリックは、非線形で分類や予測ができるってこと?
- SVMカーネルトリックを使っても、これは基本的には二値分類に適しているんだよね?
- という事は、相関関係によって、学習をさせているの?
- 相関関係によって、重要なデータかどうかを判断しているの?
- その他の要因によって重要な情報を提供することがあるため、単純な相関関係だけで重要性を判断するのは適切ではありません。したがって、相関関係を考慮しながら特徴量の重要性を評価
相関関係がないのに重要なの?
- それを見極めるにはどうしたらいいの
- バイクのカテゴリーならなにが相関関係のない重要な特徴量といえる?
- 分類をするのに、分類済みの教師データを用意する必要があるよね。
- これは、手作業でしないといけないよね?
- 何件必要?
- 数千のデータを用意するんだ・・・骨が折れる
- ロジスティック回帰って、2次元だけ?
- 10次元でもいける?
- ロジスティック回帰のデメリットおしえて
- 特徴量間の相関関係:特徴量同士の相関を確認して、互いに類似した情報を持つ特徴量がないかどうかを評価します。相関の高い特徴量が複数ある場合、その中から適切な特徴量を選択するか、特徴量を組み合わせて新しい特徴量を作成することで、モデルの複雑さを減らし、性能を向上させることができます。
これについて、詳細に
- 先の説明で、似たような相関関係が複数あるとよくないといったが、似たような相関関係が複数とはどういう意味
- A、B、Cの具体例をあげてみて
- あー、そういうこと?
- 相関関係を特徴量間と、特徴量とターゲット間で見るんだよね。
相関関係が無いものに関しては、どうしたらいい?除去?
- なるほど、ランダムフォレストとLightGBMだとどっちが早い?
- 特徴量エンジニアリングは、相関関係性をみたほうがいいの?
- 相関関係は、ターゲットとの関係性の有無だけをみておけばいい?
- 相関の高い特徴量が複数って例をあげてみて
- 特徴量を減らさないとだめなの?
- 商品名と商品説明文からカテゴリを予測したいんだけど
- 今回、カテゴリを予測するんだけど、どのような特徴量を選定したらいいと思う?商品名、商品説明文、あとは?
- 商品の価格やブランド、製造国、サイズ、重量などの情報もカテゴリ予測に役立つことがあります。
この根拠は?
- カテゴリ変数を数値化する事をなんていうんだっけ
- エンコーディングしなくても、自動的に処理してくれるブースティング系のアルゴリズムなかったっけ
- LightGBMでもエンコーディングしなくてもできるの?
- サンプルデータ量が10万件位あるんだけど、これは多い?
- どのアルゴリズムがいいかな
- 多クラス分類なのだが、ロジスティック回帰も大丈夫か?
- database disk image is malformed
- 先のおすすめのアルゴリズムは、実際にやってみないと精度は分からない?
- 特徴エンジニアリングはどうしたらいいかな
- 今回、文字情報を処理するんだけど、スケーリングとかするの?
- ロジスティック回帰、SVM、ランダムフォレストは、文字情報を処理できるの?エンコーディングしなくていいの?>
- ナイーブベイスもエンコーディングする?
- 標準偏差が大きくなるとはどういう意味?
- 凝集型とは
- 凝集型以外になにがある
- 分割型ってなに
- 深層学習より機械学習を先にした方がいいかな?
- 商品名や説明文からのカテゴリ分類を行おうと思う。
おすすめのアルゴリズムおしえてくれ
- import numpy as np
from tensorflow.keras.preprocessing.text import Tokenizer
from tensorflow.keras.preprocessing.sequence import pad_sequences
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Embedding, LSTM, Dense
from tensorflow.keras.optimizers import Adam
from sklearn.model_selection import train_test_split
# サンプルの製品特徴データ
product_features = [
“コンパクトなデザイン",
“高性能なプロセッサ",
“大容量のストレージ",
“高解像度のディスプレイ",
“バッテリーの持続時間が長い"
]
# テキストのトークン化とシーケンス化
tokenizer = Tokenizer()
tokenizer.fit_on_texts(product_features)
sequences = tokenizer.texts_to_sequences(product_features)
# パディング
maxlen = max([len(x) for x in sequences])
padded_sequences = pad_sequences(sequences, maxlen=maxlen)
# ラベルデータ(次の単語の予測)
labels = np.roll(padded_sequences, -1, axis=1)
# データの分割
X_train, X_val, y_train, y_val = train_test_split(padded_sequences, labels, test_size=0.2, random_state=42)
# モデルの構築
model = Sequential()
model.add(Embedding(input_dim=len(tokenizer.word_index)+1, output_dim=32, input_length=maxlen))
model.add(LSTM(64, return_sequences=True))
model.add(LSTM(64))
model.add(Dense(len(tokenizer.word_index)+1, activation=’softmax’))
# モデルのコンパイル
model.compile(optimizer=Adam(), loss=’sparse_categorical_crossentropy’)
# モデルの学習
model.fit(X_train, y_train, epochs=100, validation_data=(X_val, y_val), verbose=2)
# 製品特徴の自動生成
# 製品特徴の自動生成
def generate_product_description(seed_text, length=10):
for _ in range(length):
sequence = tokenizer.texts_to_sequences([seed_text])[0]
padded_sequence = pad_sequences([sequence], maxlen=maxlen, padding=’pre’)
predicted_probabilities = model.predict(padded_sequence)[0]
predicted_index = np.argmax(predicted_probabilities)
next_word = tokenizer.index_word.get(predicted_index, ")
seed_text += ' ' + next_word
return seed_text
# 製品特徴の自動生成(サンプルの開始テキスト: “コンパクトなデザイン")
generated_description = generate_product_description(“コンパクト")
print(“Generated Product Description:", generated_description)
上記ですでにモデルが出来た。
これを使って実際に商品特徴の生成をするには、どのような入力情報がひつようか?
- 例えば、メーカー品番:HA001、原価:10000円、メーカー希望小売価格:20000円、フルエキゾーストマフラー、Z900RS
上記のような情報を与えれば生成してくれるってこと?
- なるほど、自動で予測したら、それを人間が確かめないといけない。つまり補助的なツールとして使えるってこと?
- 良く分かった。ありがとうございます。
- ちなみに、先の商品説明の生成するのは、回帰になるの?
- 他に、なにか回帰系でEコマースで使えそうなモデルないかな
- 機械学習より、深層学習のほうが簡単に思えるが
- 1つの深層学習のモデルを作るのにどれくらいの工数がかかるものなの?あと1時間辺りの工賃は日本円でいくらくらい?
- ブートストラップデータってなに
- 重回帰って、非線形もできるんだっけ?
- 単回帰は線形のみだよね?
- kaggleで優秀な人のコードは見れるの?
- 深層学習は、データの生成した、過程を見る事はできないという認識だけど合ってる?
- 製品特徴の自動生成する際は、どのように指定すればいいの?
- じゃあ、メーカー品番は何に役立つの?メーカー品番を生成する事は無いでしょ?
- 誤って、意味不明なメーカー品番が生成される事はないのかな?
- 深層学習で、その可能性が低い根拠を教えて
- 全ての商品説明を1行にまとめて学習させるってこと?
- ■キーワード:
上記の文字も不要だと思う?
- 例えば、文章で学習させたら、出力も文章になるの?
- 1行に20万件入れると覚えさせるのに大変だって言ったじゃん?
- 1商品1行でcsv形式ならどう?
- メーカー品番とかは入れない方がいい?
- 価格情報は、どうして必要なの??
「リーズナブル」みたいな文言を生成できる可能性があるってこと?
- なるほど、でも、リーズナブルという文言が、学習データに含まれている必要があるよね?
- —————————————————————————
AttributeError Traceback (most recent call last)
Cell In[1], line 54
51 return seed_text
53 # 製品特徴の自動生成(サンプルの開始テキスト: “コンパクトなデザイン")
—> 54 generated_description = generate_product_description(“コンパクトなデザイン")
55 print(“Generated Product Description:", generated_description)
Cell In[1], line 48, in generate_product_description(seed_text, length)
46 sequence = tokenizer.texts_to_sequences([seed_text])[0]
47 padded_sequence = pad_sequences([sequence], maxlen=maxlen, padding=’pre’)
—> 48 predicted_index = model.predict_classes(padded_sequence, verbose=0)
49 next_word = tokenizer.index_word.get(predicted_index[0], ")
50 seed_text += ' ' + next_word
AttributeError: 'Sequential’ object has no attribute 'predict_classes’
- import numpy as np
from tensorflow.keras.preprocessing.text import Tokenizer
from tensorflow.keras.preprocessing.sequence import pad_sequences
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Embedding, LSTM, Dense
from tensorflow.keras.optimizers import Adam
from sklearn.model_selection import train_test_split
# サンプルの製品特徴データ
product_features = [
“コンパクトなデザイン",
“高性能なプロセッサ",
“大容量のストレージ",
“高解像度のディスプレイ",
“バッテリーの持続時間が長い"
]
# テキストのトークン化とシーケンス化
tokenizer = Tokenizer()
tokenizer.fit_on_texts(product_features)
sequences = tokenizer.texts_to_sequences(product_features)
# パディング
maxlen = max([len(x) for x in sequences])
padded_sequences = pad_sequences(sequences, maxlen=maxlen)
# ラベルデータ(次の単語の予測)
labels = np.roll(padded_sequences, -1, axis=1)
# モデルの構築
model = Sequential()
model.add(Embedding(input_dim=len(tokenizer.word_index)+1, output_dim=32, input_length=maxlen))
model.add(LSTM(64, return_sequences=True))
model.add(LSTM(64))
model.add(Dense(len(tokenizer.word_index)+1, activation=’softmax’))
# モデルのコンパイル
model.compile(optimizer=Adam(), loss=’sparse_categorical_crossentropy’)
# モデルの学習
model.fit(padded_sequences, labels, epochs=100, verbose=2)
# 製品特徴の自動生成
def generate_product_description(seed_text, length=10):
for _ in range(length):
sequence = tokenizer.texts_to_sequences([seed_text])[0]
padded_sequence = pad_sequences([sequence], maxlen=maxlen, padding=’pre’)
predicted_index = model.predict_classes(padded_sequence, verbose=0)
next_word = tokenizer.index_word.get(predicted_index[0], ")
seed_text += ' ' + next_word
return seed_text
# 製品特徴の自動生成(サンプルの開始テキスト: “コンパクトなデザイン")
generated_description = generate_product_description(“コンパクトなデザイン")
print(“Generated Product Description:", generated_description)
これを修正して
- Epoch 1/100
1/1 – 19s – loss: 1.7918 – val_loss: 1.7952 – 19s/epoch – 19s/step
Epoch 2/100
1/1 – 0s – loss: 1.7899 – val_loss: 1.7981 – 78ms/epoch – 78ms/step
Epoch 3/100
1/1 – 0s – loss: 1.7881 – val_loss: 1.8010 – 75ms/epoch – 75ms/step
Epoch 4/100
1/1 – 0s – loss: 1.7862 – val_loss: 1.8040 – 91ms/epoch – 91ms/step
Epoch 5/100
1/1 – 0s – loss: 1.7844 – val_loss: 1.8071 – 64ms/epoch – 64ms/step
Epoch 6/100
1/1 – 0s – loss: 1.7825 – val_loss: 1.8102 – 71ms/epoch – 71ms/step
Epoch 7/100
1/1 – 0s – loss: 1.7805 – val_loss: 1.8134 – 87ms/epoch – 87ms/step
Epoch 8/100
1/1 – 0s – loss: 1.7785 – val_loss: 1.8167 – 81ms/epoch – 81ms/step
Epoch 9/100
1/1 – 0s – loss: 1.7764 – val_loss: 1.8200 – 89ms/epoch – 89ms/step
Epoch 10/100
1/1 – 0s – loss: 1.7743 – val_loss: 1.8235 – 49ms/epoch – 49ms/step
Epoch 11/100
1/1 – 0s – loss: 1.7722 – val_loss: 1.8270 – 75ms/epoch – 75ms/step
Epoch 12/100
1/1 – 0s – loss: 1.7699 – val_loss: 1.8306 – 86ms/epoch – 86ms/step
Epoch 13/100
1/1 – 0s – loss: 1.7676 – val_loss: 1.8344 – 173ms/epoch – 173ms/step
Epoch 14/100
1/1 – 0s – loss: 1.7652 – val_loss: 1.8382 – 69ms/epoch – 69ms/step
Epoch 15/100
1/1 – 0s – loss: 1.7627 – val_loss: 1.8422 – 65ms/epoch – 65ms/step
Epoch 16/100
1/1 – 0s – loss: 1.7601 – val_loss: 1.8463 – 100ms/epoch – 100ms/step
Epoch 17/100
1/1 – 0s – loss: 1.7574 – val_loss: 1.8505 – 83ms/epoch – 83ms/step
Epoch 18/100
1/1 – 0s – loss: 1.7545 – val_loss: 1.8548 – 54ms/epoch – 54ms/step
Epoch 19/100
1/1 – 0s – loss: 1.7516 – val_loss: 1.8593 – 82ms/epoch – 82ms/step
Epoch 20/100
1/1 – 0s – loss: 1.7485 – val_loss: 1.8639 – 59ms/epoch – 59ms/step
Epoch 21/100
1/1 – 0s – loss: 1.7453 – val_loss: 1.8687 – 63ms/epoch – 63ms/step
Epoch 22/100
1/1 – 0s – loss: 1.7420 – val_loss: 1.8736 – 46ms/epoch – 46ms/step
Epoch 23/100
1/1 – 0s – loss: 1.7384 – val_loss: 1.8787 – 38ms/epoch – 38ms/step
Epoch 24/100
1/1 – 0s – loss: 1.7348 – val_loss: 1.8840 – 48ms/epoch – 48ms/step
Epoch 25/100
1/1 – 0s – loss: 1.7309 – val_loss: 1.8894 – 45ms/epoch – 45ms/step
Epoch 26/100
1/1 – 0s – loss: 1.7269 – val_loss: 1.8950 – 38ms/epoch – 38ms/step
Epoch 27/100
1/1 – 0s – loss: 1.7226 – val_loss: 1.9009 – 51ms/epoch – 51ms/step
Epoch 28/100
1/1 – 0s – loss: 1.7182 – val_loss: 1.9069 – 77ms/epoch – 77ms/step
Epoch 29/100
1/1 – 0s – loss: 1.7135 – val_loss: 1.9131 – 56ms/epoch – 56ms/step
Epoch 30/100
1/1 – 0s – loss: 1.7086 – val_loss: 1.9195 – 60ms/epoch – 60ms/step
Epoch 31/100
1/1 – 0s – loss: 1.7034 – val_loss: 1.9262 – 55ms/epoch – 55ms/step
Epoch 32/100
1/1 – 0s – loss: 1.6980 – val_loss: 1.9330 – 63ms/epoch – 63ms/step
Epoch 33/100
1/1 – 0s – loss: 1.6922 – val_loss: 1.9402 – 51ms/epoch – 51ms/step
Epoch 34/100
1/1 – 0s – loss: 1.6862 – val_loss: 1.9475 – 56ms/epoch – 56ms/step
Epoch 35/100
1/1 – 0s – loss: 1.6799 – val_loss: 1.9551 – 56ms/epoch – 56ms/step
Epoch 36/100
1/1 – 0s – loss: 1.6732 – val_loss: 1.9629 – 54ms/epoch – 54ms/step
Epoch 37/100
1/1 – 0s – loss: 1.6661 – val_loss: 1.9710 – 69ms/epoch – 69ms/step
Epoch 38/100
1/1 – 0s – loss: 1.6587 – val_loss: 1.9794 – 70ms/epoch – 70ms/step
Epoch 39/100
1/1 – 0s – loss: 1.6508 – val_loss: 1.9880 – 52ms/epoch – 52ms/step
Epoch 40/100
1/1 – 0s – loss: 1.6426 – val_loss: 1.9970 – 58ms/epoch – 58ms/step
Epoch 41/100
1/1 – 0s – loss: 1.6338 – val_loss: 2.0062 – 58ms/epoch – 58ms/step
Epoch 42/100
1/1 – 0s – loss: 1.6246 – val_loss: 2.0157 – 67ms/epoch – 67ms/step
Epoch 43/100
1/1 – 0s – loss: 1.6149 – val_loss: 2.0256 – 52ms/epoch – 52ms/step
Epoch 44/100
1/1 – 0s – loss: 1.6046 – val_loss: 2.0357 – 54ms/epoch – 54ms/step
Epoch 45/100
1/1 – 0s – loss: 1.5937 – val_loss: 2.0462 – 69ms/epoch – 69ms/step
Epoch 46/100
1/1 – 0s – loss: 1.5823 – val_loss: 2.0570 – 71ms/epoch – 71ms/step
Epoch 47/100
1/1 – 0s – loss: 1.5702 – val_loss: 2.0681 – 62ms/epoch – 62ms/step
Epoch 48/100
1/1 – 0s – loss: 1.5574 – val_loss: 2.0796 – 66ms/epoch – 66ms/step
Epoch 49/100
1/1 – 0s – loss: 1.5440 – val_loss: 2.0915 – 78ms/epoch – 78ms/step
Epoch 50/100
1/1 – 0s – loss: 1.5298 – val_loss: 2.1037 – 63ms/epoch – 63ms/step
Epoch 51/100
1/1 – 0s – loss: 1.5148 – val_loss: 2.1163 – 74ms/epoch – 74ms/step
Epoch 52/100
1/1 – 0s – loss: 1.4990 – val_loss: 2.1293 – 84ms/epoch – 84ms/step
Epoch 53/100
1/1 – 0s – loss: 1.4824 – val_loss: 2.1426 – 84ms/epoch – 84ms/step
Epoch 54/100
1/1 – 0s – loss: 1.4650 – val_loss: 2.1563 – 129ms/epoch – 129ms/step
Epoch 55/100
1/1 – 0s – loss: 1.4466 – val_loss: 2.1705 – 89ms/epoch – 89ms/step
Epoch 56/100
1/1 – 0s – loss: 1.4273 – val_loss: 2.1850 – 70ms/epoch – 70ms/step
Epoch 57/100
1/1 – 0s – loss: 1.4071 – val_loss: 2.1999 – 90ms/epoch – 90ms/step
Epoch 58/100
1/1 – 0s – loss: 1.3858 – val_loss: 2.2152 – 98ms/epoch – 98ms/step
Epoch 59/100
1/1 – 0s – loss: 1.3636 – val_loss: 2.2309 – 95ms/epoch – 95ms/step
Epoch 60/100
1/1 – 0s – loss: 1.3405 – val_loss: 2.2469 – 62ms/epoch – 62ms/step
Epoch 61/100
1/1 – 0s – loss: 1.3163 – val_loss: 2.2634 – 68ms/epoch – 68ms/step
Epoch 62/100
1/1 – 0s – loss: 1.2911 – val_loss: 2.2802 – 74ms/epoch – 74ms/step
Epoch 63/100
1/1 – 0s – loss: 1.2649 – val_loss: 2.2973 – 53ms/epoch – 53ms/step
Epoch 64/100
1/1 – 0s – loss: 1.2378 – val_loss: 2.3148 – 67ms/epoch – 67ms/step
Epoch 65/100
1/1 – 0s – loss: 1.2098 – val_loss: 2.3326 – 72ms/epoch – 72ms/step
Epoch 66/100
1/1 – 0s – loss: 1.1809 – val_loss: 2.3507 – 54ms/epoch – 54ms/step
Epoch 67/100
1/1 – 0s – loss: 1.1512 – val_loss: 2.3690 – 66ms/epoch – 66ms/step
Epoch 68/100
1/1 – 0s – loss: 1.1207 – val_loss: 2.3876 – 63ms/epoch – 63ms/step
Epoch 69/100
1/1 – 0s – loss: 1.0895 – val_loss: 2.4063 – 60ms/epoch – 60ms/step
Epoch 70/100
1/1 – 0s – loss: 1.0577 – val_loss: 2.4252 – 56ms/epoch – 56ms/step
Epoch 71/100
1/1 – 0s – loss: 1.0255 – val_loss: 2.4442 – 65ms/epoch – 65ms/step
Epoch 72/100
1/1 – 0s – loss: 0.9928 – val_loss: 2.4633 – 82ms/epoch – 82ms/step
Epoch 73/100
1/1 – 0s – loss: 0.9599 – val_loss: 2.4823 – 66ms/epoch – 66ms/step
Epoch 74/100
1/1 – 0s – loss: 0.9268 – val_loss: 2.5014 – 59ms/epoch – 59ms/step
Epoch 75/100
1/1 – 0s – loss: 0.8936 – val_loss: 2.5204 – 87ms/epoch – 87ms/step
Epoch 76/100
1/1 – 0s – loss: 0.8606 – val_loss: 2.5393 – 76ms/epoch – 76ms/step
Epoch 77/100
1/1 – 0s – loss: 0.8278 – val_loss: 2.5580 – 44ms/epoch – 44ms/step
Epoch 78/100
1/1 – 0s – loss: 0.7953 – val_loss: 2.5765 – 49ms/epoch – 49ms/step
Epoch 79/100
1/1 – 0s – loss: 0.7634 – val_loss: 2.5948 – 61ms/epoch – 61ms/step
Epoch 80/100
1/1 – 0s – loss: 0.7322 – val_loss: 2.6129 – 59ms/epoch – 59ms/step
Epoch 81/100
1/1 – 0s – loss: 0.7017 – val_loss: 2.6306 – 49ms/epoch – 49ms/step
Epoch 82/100
1/1 – 0s – loss: 0.6721 – val_loss: 2.6481 – 47ms/epoch – 47ms/step
Epoch 83/100
1/1 – 0s – loss: 0.6435 – val_loss: 2.6652 – 43ms/epoch – 43ms/step
Epoch 84/100
1/1 – 0s – loss: 0.6161 – val_loss: 2.6820 – 40ms/epoch – 40ms/step
Epoch 85/100
1/1 – 0s – loss: 0.5898 – val_loss: 2.6984 – 42ms/epoch – 42ms/step
Epoch 86/100
1/1 – 0s – loss: 0.5647 – val_loss: 2.7145 – 39ms/epoch – 39ms/step
Epoch 87/100
1/1 – 0s – loss: 0.5408 – val_loss: 2.7302 – 36ms/epoch – 36ms/step
Epoch 88/100
1/1 – 0s – loss: 0.5182 – val_loss: 2.7456 – 40ms/epoch – 40ms/step
Epoch 89/100
1/1 – 0s – loss: 0.4968 – val_loss: 2.7606 – 42ms/epoch – 42ms/step
Epoch 90/100
1/1 – 0s – loss: 0.4765 – val_loss: 2.7752 – 38ms/epoch – 38ms/step
Epoch 91/100
1/1 – 0s – loss: 0.4574 – val_loss: 2.7895 – 42ms/epoch – 42ms/step
Epoch 92/100
1/1 – 0s – loss: 0.4393 – val_loss: 2.8034 – 40ms/epoch – 40ms/step
Epoch 93/100
1/1 – 0s – loss: 0.4222 – val_loss: 2.8169 – 43ms/epoch – 43ms/step
Epoch 94/100
1/1 – 0s – loss: 0.4060 – val_loss: 2.8300 – 44ms/epoch – 44ms/step
Epoch 95/100
1/1 – 0s – loss: 0.3907 – val_loss: 2.8427 – 55ms/epoch – 55ms/step
Epoch 96/100
1/1 – 0s – loss: 0.3762 – val_loss: 2.8551 – 50ms/epoch – 50ms/step
Epoch 97/100
1/1 – 0s – loss: 0.3623 – val_loss: 2.8671 – 50ms/epoch – 50ms/step
Epoch 98/100
1/1 – 0s – loss: 0.3490 – val_loss: 2.8787 – 67ms/epoch – 67ms/step
Epoch 99/100
1/1 – 0s – loss: 0.3363 – val_loss: 2.8899 – 65ms/epoch – 65ms/step
Epoch 100/100
1/1 – 0s – loss: 0.3240 – val_loss: 2.9007 – 51ms/epoch – 51ms/step
—————————————————————————
AttributeError Traceback (most recent call last)
Cell In[3], line 57
54 return seed_text
56 # 製品特徴の自動生成(サンプルの開始テキスト: “コンパクトなデザイン")
—> 57 generated_description = generate_product_description(“コンパクトなデザイン")
58 print(“Generated Product Description:", generated_description)
Cell In[3], line 51, in generate_product_description(seed_text, length)
49 sequence = tokenizer.texts_to_sequences([seed_text])[0]
50 padded_sequence = pad_sequences([sequence], maxlen=maxlen, padding=’pre’)
—> 51 predicted_index = model.predict_classes(padded_sequence, verbose=0)
52 next_word = tokenizer.index_word.get(predicted_index[0], ")
53 seed_text += ' ' + next_word
AttributeError: 'Sequential’ object has no attribute 'predict_classes’
- この製品特徴の自動生成は、文章のように表示するわけではないの?
- 学習データは以下ってこと?
product_features = [
“コンパクトなデザイン",
“高性能なプロセッサ",
“大容量のストレージ",
“高解像度のディスプレイ",
“バッテリーの持続時間が長い"
]
- 学習データを用意するにはどうしたらいいとおもう?
- 例えば、今商品データ20万件のデータがあるんだけど、これを利用できるかな?商品説明文をつかえばいい?
- # モデルの学習
model.fit(x_train, y_train, batch_size=64, epochs=10, validation_split=0.2)
これの
- これのハイパーパラメータ調整ってどうやるの
- ランダムサーチで行いたい
- import numpy as np
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers
# データの準備
(x_train, y_train), (x_test, y_test) = keras.datasets.cifar10.load_data()
x_train = x_train.astype(“float32") / 255.0
x_test = x_test.astype(“float32″) / 255.0
# モデルの構築
model = keras.Sequential([
keras.Input(shape=(32, 32, 3)),
layers.Conv2D(32, kernel_size=(3, 3), activation="relu"),
layers.MaxPooling2D(pool_size=(2, 2)),
layers.Conv2D(64, kernel_size=(3, 3), activation="relu"),
layers.MaxPooling2D(pool_size=(2, 2)),
layers.Flatten(),
layers.Dropout(0.5),
layers.Dense(10, activation="softmax"),
])
# モデルのコンパイル
model.compile(loss="sparse_categorical_crossentropy", optimizer="adam", metrics=[“accuracy"])
# モデルの学習
model.fit(x_train, y_train, batch_size=64, epochs=10, validation_split=0.2)
# モデルの評価
test_loss, test_acc = model.evaluate(x_test, y_test)
print(“Test accuracy:", test_acc)
ランダムサーチを入れて
- クラスの不均衡を考慮した評価指標を使うって?
- データのバランスをとるためのサンプリングをしたい
- 具体的なサンプルコードちょうだい
- # モデルの評価
test_loss, test_acc = model.evaluate(x_test, y_test)
print(“Test accuracy:", test_acc)
これはなに?
- import numpy as np
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers
# データの準備
(x_train, y_train), (x_test, y_test) = keras.datasets.cifar10.load_data()
x_train = x_train.astype(“float32") / 255.0
x_test = x_test.astype(“float32″) / 255.0
# モデルの構築
model = keras.Sequential([
keras.Input(shape=(32, 32, 3)),
layers.Conv2D(32, kernel_size=(3, 3), activation="relu"),
layers.MaxPooling2D(pool_size=(2, 2)),
layers.Conv2D(64, kernel_size=(3, 3), activation="relu"),
layers.MaxPooling2D(pool_size=(2, 2)),
layers.Flatten(),
layers.Dropout(0.5),
layers.Dense(10, activation="softmax"),
])
# モデルのコンパイル
model.compile(loss="sparse_categorical_crossentropy", optimizer="adam", metrics=[“accuracy"])
# モデルの学習
model.fit(x_train, y_train, batch_size=64, epochs=10, validation_split=0.2)
# モデルの評価
test_loss, test_acc = model.evaluate(x_test, y_test)
print(“Test accuracy:", test_acc)
Test accuracy: 0.6721000075340271
この精度は低い?
- どうやって精度を向上させる?
- 商品名カラムに品番が含まれていて、品番カラムが別途ある場合、特徴量としてどうか
- 重複があってもいい?商品名カラムと品番カラムに
- Aucが80は精度いいの?
- Aucについて詳しく
- ランダムフォレストと、ブースティングで結果が変わらないこともある?
- カテゴリ変数が多いものは、精度は落ちるのかな?
- 梱包サイズを予測するモデルを作ってるんだけど、aucが80だけどaccuracyは55くらいなんだよね
- クラスタリング結果を多クラス分類の説明変数に使えないか?
- Epoch 1/5
2024-04-10 15:11:27.891429: W tensorflow/core/framework/op_kernel.cc:1828] OP_REQUIRES failed at sparse_xent_op.cc:103 : INVALID_ARGUMENT: Received a label value of 160 which is outside the valid range of [0, 6). Label values: 60 60 140 80 60 120 60 120 60 120 60 160 120 60 120 120 100 60 100 140 60 60 160 100 60 60 140 100 60 120 100 60
—————————————————————————
InvalidArgumentError Traceback (most recent call last)
Cell In[214], line 30
27 model.compile(optimizer=’adam’, loss=’sparse_categorical_crossentropy’, metrics=['accuracy’])
29 # モデルのトレーニング
—> 30 history = model.fit(X_train_scaled, y_train, epochs=5, batch_size=32, validation_data=(X_test_scaled, y_test))
32 # テストデータでの予測と評価
33 loss, accuracy = model.evaluate(X_test_scaled, y_test)
File /home/share/temp/venv/lib/python3.8/site-packages/keras/src/utils/traceback_utils.py:70, in filter_traceback.<locals>.error_handler(*args, **kwargs)
67 filtered_tb = _process_traceback_frames(e.__traceback__)
68 # To get the full stack trace, call:
69 # `tf.debugging.disable_traceback_filtering()`
—> 70 raise e.with_traceback(filtered_tb) from None
71 finally:
72 del filtered_tb
File /home/share/temp/venv/lib/python3.8/site-packages/tensorflow/python/eager/execute.py:53, in quick_execute(op_name, num_outputs, inputs, attrs, ctx, name)
51 try:
52 ctx.ensure_initialized()
—> 53 tensors = pywrap_tfe.TFE_Py_Execute(ctx._handle, device_name, op_name,
54 inputs, attrs, num_outputs)
55 except core._NotOkStatusException as e:
56 if name is not None:
…
File “/home/share/temp/venv/lib/python3.8/site-packages/keras/src/backend.py", line 5762, in sparse_categorical_crossentropy
res = tf.nn.sparse_softmax_cross_entropy_with_logits(
Node: 'sparse_categorical_crossentropy/SparseSoftmaxCrossEntropyWithLogits/SparseSoftmaxCrossEntropyWithLogits’
Received a label value of 160 which is outside the valid range of [0, 6). Label values: 60 60 140 80 60 120 60 120 60 120 60 160 120 60 120 120 100 60 100 140 60 60 160 100 60 60 140 100 60 120 100 60
[[{{node sparse_categorical_crossentropy/SparseSoftmaxCrossEntropyWithLogits/SparseSoftmaxCrossEntropyWithLogits}}]] [Op:__inference_train_function_161012]
Output is truncated. View as a scrollable element or open in a text editor. Adjust cell output settings…
- Epoch 1/5
2024-04-10 15:12:23.321185: W tensorflow/core/framework/op_kernel.cc:1828] OP_REQUIRES failed at sparse_xent_op.cc:103 : INVALID_ARGUMENT: Received a label value of 140 which is outside the valid range of [0, 6). Label values: 120 60 60 100 140 60 120 60 100 80 60 60 60 100 120 140 100 60 80 60 60 120 100 60 100 100 60 60 60 140 120 60
—————————————————————————
InvalidArgumentError Traceback (most recent call last)
Cell In[215], line 34
31 model.compile(optimizer=’adam’, loss=’sparse_categorical_crossentropy’, metrics=['accuracy’])
33 # モデルのトレーニング
—> 34 history = model.fit(X_train_scaled, y_train, epochs=5, batch_size=32, validation_data=(X_test_scaled, y_test))
36 # テストデータでの予測と評価
37 loss, accuracy = model.evaluate(X_test_scaled, y_test)
File /home/share/temp/venv/lib/python3.8/site-packages/keras/src/utils/traceback_utils.py:70, in filter_traceback.<locals>.error_handler(*args, **kwargs)
67 filtered_tb = _process_traceback_frames(e.__traceback__)
68 # To get the full stack trace, call:
69 # `tf.debugging.disable_traceback_filtering()`
—> 70 raise e.with_traceback(filtered_tb) from None
71 finally:
72 del filtered_tb
File /home/share/temp/venv/lib/python3.8/site-packages/tensorflow/python/eager/execute.py:53, in quick_execute(op_name, num_outputs, inputs, attrs, ctx, name)
51 try:
52 ctx.ensure_initialized()
—> 53 tensors = pywrap_tfe.TFE_Py_Execute(ctx._handle, device_name, op_name,
54 inputs, attrs, num_outputs)
55 except core._NotOkStatusException as e:
56 if name is not None:
…
File “/home/share/temp/venv/lib/python3.8/site-packages/keras/src/backend.py", line 5762, in sparse_categorical_crossentropy
res = tf.nn.sparse_softmax_cross_entropy_with_logits(
Node: 'sparse_categorical_crossentropy/SparseSoftmaxCrossEntropyWithLogits/SparseSoftmaxCrossEntropyWithLogits’
Received a label value of 140 which is outside the valid range of [0, 6). Label values: 120 60 60 100 140 60 120 60 100 80 60 60 60 100 120 140 100 60 80 60 60 120 100 60 100 100 60 60 60 140 120 60
[[{{node sparse_categorical_crossentropy/SparseSoftmaxCrossEntropyWithLogits/SparseSoftmaxCrossEntropyWithLogits}}]] [Op:__inference_train_function_161988]
Output is truncated. View as a scrollable element or open in a text editor. Adjust cell output settings…
- # 必要なライブラリのインポート
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import LabelEncoder
from keras.models import Sequential
from keras.layers import Dense
# データの読み込み
# data = pd.read_csv('your_data.csv’) # データのファイルパスを指定してください
# カテゴリカル変数のエンコード
label_encoder = LabelEncoder()
data['category_encoded’] = label_encoder.fit_transform(data['category’])
# 目的変数と説明変数の分割
X = data.drop(['size’, 'product_name’, 'original_product_code’], axis=1) # 説明変数
y = data['size’] # 目的変数
# 訓練データとテストデータに分割
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# モデルの構築
model = Sequential([
Dense(64, activation=’relu’, input_shape=(X_train.shape[1],)),
Dense(64, activation=’relu’),
Dense(len(np.unique(y)), activation=’softmax’)
])
# モデルのコンパイル
model.compile(optimizer=’adam’, loss=’sparse_categorical_crossentropy’, metrics=['accuracy’])
# モデルのトレーニング
model.fit(X_train, y_train, epochs=10, batch_size=32, validation_data=(X_test, y_test))
# モデルの評価
loss, accuracy = model.evaluate(X_test, y_test)
print(“Test Loss:", loss)
print(“Test Accuracy:", accuracy)
- —————————————————————————
ValueError Traceback (most recent call last)
Cell In[219], line 37
34 model.compile(optimizer=’adam’, loss=’sparse_categorical_crossentropy’, metrics=['accuracy’])
36 # モデルのトレーニング
—> 37 model.fit(X_train, y_train, epochs=10, batch_size=32, validation_data=(X_test, y_test))
39 # モデルの評価
40 loss, accuracy = model.evaluate(X_test, y_test)
File /home/share/temp/venv/lib/python3.8/site-packages/keras/src/utils/traceback_utils.py:70, in filter_traceback.<locals>.error_handler(*args, **kwargs)
67 filtered_tb = _process_traceback_frames(e.__traceback__)
68 # To get the full stack trace, call:
69 # `tf.debugging.disable_traceback_filtering()`
—> 70 raise e.with_traceback(filtered_tb) from None
71 finally:
72 del filtered_tb
File /home/share/temp/venv/lib/python3.8/site-packages/tensorflow/python/framework/constant_op.py:98, in convert_to_eager_tensor(value, ctx, dtype)
96 dtype = dtypes.as_dtype(dtype).as_datatype_enum
97 ctx.ensure_initialized()
—> 98 return ops.EagerTensor(value, ctx.device_name, dtype)
ValueError: Failed to convert a NumPy array to a Tensor (Unsupported object type int).
- int型だからいけないんじゃない?floatにしたら直ると思う
- 新しい特徴量をつくりたい
- 梱包サイズを多クラス分類したいんだ。
- 商品名からできないかな?
- 寸法も重量もわからない
- クラスタリングの説明変数は?
- クラスタリングのサンプルコードくれ
- WARNING:tensorflow:Keras is training/fitting/evaluating on array-like data. Keras may not be optimized for this format, so if your input data format is supported by TensorFlow I/O (https://github.com/tensorflow/io) we recommend using that to load a Dataset instead.
Epoch 1/5
2024-04-10 15:04:15.112780: W tensorflow/core/framework/op_kernel.cc:1816] INVALID_ARGUMENT: TypeError: 'SparseTensor’ object is not subscriptable
Traceback (most recent call last):
File “/home/share/temp/venv/lib/python3.8/site-packages/tensorflow/python/ops/script_ops.py", line 266, in __call__
return func(device, token, args)
File “/home/share/temp/venv/lib/python3.8/site-packages/tensorflow/python/ops/script_ops.py", line 144, in __call__
outputs = self._call(device, args)
File “/home/share/temp/venv/lib/python3.8/site-packages/tensorflow/python/ops/script_ops.py", line 151, in _call
ret = self._func(*args)
File “/home/share/temp/venv/lib/python3.8/site-packages/tensorflow/python/autograph/impl/api.py", line 643, in wrapper
return func(*args, **kwargs)
File “/home/share/temp/venv/lib/python3.8/site-packages/keras/src/engine/data_adapter.py", line 519, in py_method
return [slice_array(inp) for inp in flat_inputs]
File “/home/share/temp/venv/lib/python3.8/site-packages/keras/src/engine/data_adapter.py", line 519, in <listcomp>
return [slice_array(inp) for inp in flat_inputs]
File “/home/share/temp/venv/lib/python3.8/site-packages/keras/src/engine/data_adapter.py", line 515, in slice_array
return training_utils.slice_arrays(
File “/home/share/temp/venv/lib/python3.8/site-packages/keras/src/engine/training_utils.py", line 47, in slice_arrays
…
File “/home/share/temp/venv/lib/python3.8/site-packages/keras/src/engine/training_utils.py", line 47, in slice_arrays
entries = [[x[i : i + 1] for i in indices] for x in arrays]
Fi
- from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from keras.models import Sequential
from keras.layers import Dense
# データをトレーニングセットとテストセットに分割
X_train, X_test, y_train, y_test = train_test_split(X_combined, y, test_size=0.3, random_state=42)
# データの標準化
scaler = StandardScaler(with_mean=False) # with_mean=Falseを追加
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)
X_train_scaled = X_train.toarray()
X_test_scaled = X_test.toarray()
# クラス数を取得
num_classes = len(np.unique(y_train))
# モデルの作成
model = Sequential([
Dense(64, activation=’relu’, input_shape=(X_train_scaled.shape[1],)),
Dense(64, activation=’relu’),
Dense(num_classes, activation=’softmax’) # 多クラス分類用の出力層
])
# モデルのコンパイル
model.compile(optimizer=’adam’, loss=’sparse_categorical_crossentropy’, metrics=['accuracy’])
# モデルのトレーニング
history = model.fit(X_train_scaled, y_train, epochs=5, batch_size=32, validation_data=(X_test_scaled, y_test))
# テストデータでの予測と評価
loss, accuracy = model.evaluate(X_test_scaled, y_test)
print(“Test Loss:", loss)
print(“Test Accuracy:", accuracy)
- —————————————————————————
InvalidArgumentError Traceback (most recent call last)
Cell In[212], line 34
31 model.compile(optimizer=’adam’, loss=’sparse_categorical_crossentropy’, metrics=['accuracy’])
33 # モデルのトレーニング
—> 34 history = model.fit(X_train_scaled, y_train, epochs=5, batch_size=32, validation_data=(X_test_scaled, y_test))
36 # テストデータでの予測と評価
37 loss, accuracy = model.evaluate(X_test_scaled, y_test)
File /home/share/temp/venv/lib/python3.8/site-packages/keras/src/utils/traceback_utils.py:70, in filter_traceback.<locals>.error_handler(*args, **kwargs)
67 filtered_tb = _process_traceback_frames(e.__traceback__)
68 # To get the full stack trace, call:
69 # `tf.debugging.disable_traceback_filtering()`
—> 70 raise e.with_traceback(filtered_tb) from None
71 finally:
72 del filtered_tb
File /home/share/temp/venv/lib/python3.8/site-packages/tensorflow/python/eager/execute.py:53, in quick_execute(op_name, num_outputs, inputs, attrs, ctx, name)
51 try:
52 ctx.ensure_initialized()
—> 53 tensors = pywrap_tfe.TFE_Py_Execute(ctx._handle, device_name, op_name,
54 inputs, attrs, num_outputs)
55 except core._NotOkStatusException as e:
56 if name is not None:
…
File “/home/share/temp/venv/lib/python3.8/site-packages/keras/src/backend.py", line 5762, in sparse_categorical_crossentropy
res = tf.nn.sparse_softmax_cross_entropy_with_logits(
Node: 'sparse_categorical_crossentropy/SparseSoftmaxCrossEntropyWithLogits/SparseSoftmaxCrossEntropyWithLogits’
Received a label value of 160 which is outside the valid range of [0, 6). Label values: 60 80 80 160 60 100 60 60 100 80 60 60 120 60 60 60 60 100 100 100 160 140 100 160 100 100 100 120 80 120 160 60
[[{{node sparse_categorical_crossentropy/SparseSoftmaxCrossEntropyWithLogits/SparseSoftmaxCrossEntropyWithLogits}}]] [Op:__inference_train_function_159060]
Output is truncated. View as a scrollable element or open in a text editor. Adjust cell output settings…
- from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from keras.models import Sequential
from keras.layers import Dense
# データをトレーニングセットとテストセットに分割
X_train, X_test, y_train, y_test = train_test_split(X_combined, y, test_size=0.3, random_state=42)
# データの標準化
scaler = StandardScaler(with_mean=False) # with_mean=Falseを追加
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)
X_train_scaled = X_train.toarray()
X_test_scaled = X_test.toarray()
# クラス数を取得
num_classes = len(np.unique(y_train))
# モデルの作成
model = Sequential([
Dense(64, activation=’relu’, input_shape=(X_train_scaled.shape[1],)),
Dense(64, activation=’relu’),
Dense(num_classes, activation=’softmax’) # 多クラス分類用の出力層
])
# モデルのコンパイル
model.compile(optimizer=’adam’, loss=’sparse_categorical_crossentropy’, metrics=['accuracy’])
# モデルのトレーニング
history = model.fit(X_train_scaled, y_train, epochs=5, batch_size=32, validation_data=(X_test_scaled, y_test))
# テストデータでの予測と評価
loss, accuracy = model.evaluate(X_test_scaled, y_test)
print(“Test Loss:", loss)
print(“Test Accuracy:", accuracy)
- —————————————————————————
InvalidArgumentError Traceback (most recent call last)
Cell In[194], line 35
32 model.compile(optimizer=’adam’, loss=’sparse_categorical_crossentropy’, metrics=['accuracy’])
34 # モデルのトレーニング
—> 35 history = model.fit(X_train_scaled, y_train, epochs=10, batch_size=32, validation_data=(X_test_scaled, y_test))
37 # テストデータでの予測と評価
38 y_pred = model.predict_classes(X_test_scaled)
File /home/share/temp/venv/lib/python3.8/site-packages/keras/src/utils/traceback_utils.py:70, in filter_traceback.<locals>.error_handler(*args, **kwargs)
67 filtered_tb = _process_traceback_frames(e.__traceback__)
68 # To get the full stack trace, call:
69 # `tf.debugging.disable_traceback_filtering()`
—> 70 raise e.with_traceback(filtered_tb) from None
71 finally:
72 del filtered_tb
File /home/share/temp/venv/lib/python3.8/site-packages/tensorflow/python/eager/execute.py:53, in quick_execute(op_name, num_outputs, inputs, attrs, ctx, name)
51 try:
52 ctx.ensure_initialized()
—> 53 tensors = pywrap_tfe.TFE_Py_Execute(ctx._handle, device_name, op_name,
54 inputs, attrs, num_outputs)
55 except core._NotOkStatusException as e:
56 if name is not None:
…
File “/home/share/temp/venv/lib/python3.8/site-packages/keras/src/backend.py", line 5762, in sparse_categorical_crossentropy
res = tf.nn.sparse_softmax_cross_entropy_with_logits(
Node: 'sparse_categorical_crossentropy/SparseSoftmaxCrossEntropyWithLogits/SparseSoftmaxCrossEntropyWithLogits’
Received a label value of 5 which is outside the valid range of [0, 1). Label values: 2 2 1 0 0 2 2 0 1 1 4 1 0 0 2 2 3 0 5 0 0 4 3 4 0 1 1 3 0 1 3 2
[[{{node sparse_categorical_crossentropy/SparseSoftmaxCrossEntropyWithLogits/SparseSoftmaxCrossEntropyWithLogits}}]] [Op:__inference_train_function_81794]
- 修正してコードちょうだい
- from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from keras.models import Sequential
from keras.layers import Dense
# データをトレーニングセットとテストセットに分割
X_train, X_test, y_train, y_test = train_test_split(X_combined, y, test_size=0.2, random_state=42)
# データの標準化
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)
# モデルの作成
model = Sequential([
Dense(64, activation=’relu’, input_shape=(X_train_scaled.shape[1],)),
Dense(64, activation=’relu’),
Dense(1, activation=’linear’) # 線形活性化関数
])
# モデルのコンパイル
model.compile(optimizer=’adam’, loss=’mean_squared_error’, metrics=['mae’]) # 回帰タスクのため、損失関数は平均二乗誤差を使用
# モデルのトレーニング
history = model.fit(X_train_scaled, y_train, epochs=10, batch_size=32, validation_data=(X_test_scaled, y_test))
# テストデータでの予測と評価
y_pred = model.predict(X_test_scaled)
# モデルの評価
loss, mae = model.evaluate(X_test_scaled, y_test)
print(“Mean Absolute Error:", mae)
- —————————————————————————
ValueError Traceback (most recent call last)
Cell In[195], line 11
9 # データの標準化
10 scaler = StandardScaler()
—> 11 X_train_scaled = scaler.fit_transform(X_train)
12 X_test_scaled = scaler.transform(X_test)
14 # モデルの作成
File /home/share/temp/venv/lib/python3.8/site-packages/sklearn/utils/_set_output.py:157, in _wrap_method_output.<locals>.wrapped(self, X, *args, **kwargs)
155 @wraps(f)
156 def wrapped(self, X, *args, **kwargs):
–> 157 data_to_wrap = f(self, X, *args, **kwargs)
158 if isinstance(data_to_wrap, tuple):
159 # only wrap the first output for cross decomposition
160 return_tuple = (
161 _wrap_data_with_container(method, data_to_wrap[0], X, self),
162 *data_to_wrap[1:],
163 )
File /home/share/temp/venv/lib/python3.8/site-packages/sklearn/base.py:916, in TransformerMixin.fit_transform(self, X, y, **fit_params)
912 # non-optimized default implementation; override when a better
913 # method is possible for a given clustering algorithm
914 if y is None:
915 # fit method of arity 1 (unsupervised transformation)
…
909 )
911 if self.with_std:
912 # First pass
ValueError: Cannot center sparse matrices: pass `with_mean=False` instead. See docstring for motivation and alternatives.
- Epoch 1/10
102/102 [==============================] – 1s 3ms/step – loss: 2.1570 – mae: 1.1738 – val_loss: 1.9768 – val_mae: 1.1114
Epoch 2/10
102/102 [==============================] – 0s 2ms/step – loss: 1.0467 – mae: 0.7564 – val_loss: 1.7705 – val_mae: 1.0883
Epoch 3/10
102/102 [==============================] – 0s 2ms/step – loss: 0.4408 – mae: 0.4885 – val_loss: 1.7413 – val_mae: 1.0596
Epoch 4/10
102/102 [==============================] – 0s 2ms/step – loss: 0.3026 – mae: 0.3916 – val_loss: 1.6404 – val_mae: 1.0242
Epoch 5/10
102/102 [==============================] – 0s 3ms/step – loss: 0.2146 – mae: 0.3167 – val_loss: 1.6466 – val_mae: 1.0354
Epoch 6/10
102/102 [==============================] – 0s 2ms/step – loss: 0.1584 – mae: 0.2664 – val_loss: 1.6535 – val_mae: 1.0311
Epoch 7/10
102/102 [==============================] – 0s 2ms/step – loss: 0.1262 – mae: 0.2351 – val_loss: 1.6146 – val_mae: 1.0215
Epoch 8/10
102/102 [==============================] – 0s 2ms/step – loss: 0.1029 – mae: 0.2090 – val_loss: 1.5955 – val_mae: 1.0156
Epoch 9/10
102/102 [==============================] – 0s 2ms/step – loss: 0.0929 – mae: 0.1936 – val_loss: 1.6060 – val_mae: 1.0129
Epoch 10/10
102/102 [==============================] – 0s 2ms/step – loss: 0.0926 – mae: 0.1874 – val_loss: 1.5877 – val_mae: 1.0155
26/26 [==============================] – 0s 460us/step
26/26 [==============================] – 0s 401us/step – loss: 1.5877 – mae: 1.0155
Mean Absolute Error: 1.0154569149017334
- ValueError Traceback (most recent call last)
Cell In[197], line 11
9 # データの標準化
10 scaler = StandardScaler()
—> 11 X_train_scaled = scaler.fit_transform(X_train)
12 X_test_scaled = scaler.transform(X_test)
14 # クラス数を取得
File /home/share/temp/venv/lib/python3.8/site-packages/sklearn/utils/_set_output.py:157, in _wrap_method_output.<locals>.wrapped(self, X, *args, **kwargs)
155 @wraps(f)
156 def wrapped(self, X, *args, **kwargs):
–> 157 data_to_wrap = f(self, X, *args, **kwargs)
158 if isinstance(data_to_wrap, tuple):
159 # only wrap the first output for cross decomposition
160 return_tuple = (
161 _wrap_data_with_container(method, data_to_wrap[0], X, self),
162 *data_to_wrap[1:],
163 )
File /home/share/temp/venv/lib/python3.8/site-packages/sklearn/base.py:916, in TransformerMixin.fit_transform(self, X, y, **fit_params)
912 # non-optimized default implementation; override when a better
913 # method is possible for a given clustering algorithm
914 if y is None:
915 # fit method of arity 1 (unsupervised transformation)
…
909 )
911 if self.with_std:
912 # First pass
ValueError: Cannot center sparse matrices: pass `with_mean=False` instead. See docstring for motivation and alternatives.
Output is truncated. View as a scrollable element or open in a text editor. Adjust cell output settings…
- Epoch 1/30
102/102 [==============================] – 1s 3ms/step – loss: 1.5513 – accuracy: 0.3968 – val_loss: 1.4406 – val_accuracy: 0.4617
Epoch 2/30
102/102 [==============================] – 0s 2ms/step – loss: 0.4365 – accuracy: 0.8805 – val_loss: 1.6337 – val_accuracy: 0.4519
Epoch 3/30
102/102 [==============================] – 0s 2ms/step – loss: 0.1051 – accuracy: 0.9731 – val_loss: 1.7925 – val_accuracy: 0.4654
Epoch 4/30
102/102 [==============================] – 0s 2ms/step – loss: 0.0418 – accuracy: 0.9883 – val_loss: 1.9068 – val_accuracy: 0.4556
Epoch 5/30
102/102 [==============================] – 0s 2ms/step – loss: 0.0209 – accuracy: 0.9941 – val_loss: 1.9635 – val_accuracy: 0.4593
Epoch 6/30
102/102 [==============================] – 0s 2ms/step – loss: 0.0170 – accuracy: 0.9935 – val_loss: 2.0427 – val_accuracy: 0.4506
Epoch 7/30
102/102 [==============================] – 0s 2ms/step – loss: 0.0101 – accuracy: 0.9972 – val_loss: 2.0677 – val_accuracy: 0.4630
Epoch 8/30
102/102 [==============================] – 0s 2ms/step – loss: 0.0084 – accuracy: 0.9963 – val_loss: 2.1438 – val_accuracy: 0.4543
Epoch 9/30
102/102 [==============================] – 0s 2ms/step – loss: 0.0068 – accuracy: 0.9975 – val_loss: 2.1674 – val_accuracy: 0.4593
Epoch 10/30
102/102 [==============================] – 0s 2ms/step – loss: 0.0047 – accuracy: 0.9981 – val_loss: 2.2183 – val_accuracy: 0.4568
Epoch 11/30
102/102 [==============================] – 0s 2ms/step – loss: 0.0042 – accuracy: 0.9981 – val_loss: 2.2547 – val_accuracy: 0.4593
Epoch 12/30
102/102 [==============================] – 0s 2ms/step – loss: 0.0043 – accuracy: 0.9981 – val_loss: 2.2842 – val_accuracy: 0.4605
Epoch 13/30
102/102 [==============================] – 0s 2ms/step – loss: 0.0032 – accuracy: 0.9981 – val_loss: 2.3219 – val_accuracy: 0.4630
…
102/102 [==============================] – 0s 2ms/step – loss: 0.0013 – accuracy: 0.9994 – val_loss: 2.7391 – val_accuracy: 0.4605
26/26 [==============================] – 0s 486us/step – loss: 2.7391 – accuracy: 0.4605
Test Loss: 2.7390570640563965
Test Accuracy: 0.4604938328266144
- from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from keras.models import Sequential
from keras.layers import Dense
# データをトレーニングセットとテストセットに分割
X_train, X_test, y_train, y_test = train_test_split(X_combined, y, test_size=0.3, random_state=42)
# データの標準化
scaler = StandardScaler(with_mean=False) # with_mean=Falseを追加
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)
# クラス数を取得
num_classes = len(np.unique(y_train))
# モデルの作成
model = Sequential([
Dense(64, activation=’relu’, input_shape=(X_train_scaled.shape[1],)),
Dense(64, activation=’relu’),
Dense(num_classes, activation=’softmax’) # 多クラス分類用の出力層
])
# モデルのコンパイル
model.compile(optimizer=’adam’, loss=’sparse_categorical_crossentropy’, metrics=['accuracy’])
# モデルのトレーニング
history = model.fit(X_train_scaled, y_train, epochs=5, batch_size=32, validation_data=(X_test_scaled, y_test))
# テストデータでの予測と評価
loss, accuracy = model.evaluate(X_test_scaled, y_test)
print(“Test Loss:", loss)
print(“Test Accuracy:", accuracy)
- japaneseを引き数にすればいい?
- Word Embeddings
単語の意味を表す密なベクトル表現を学習する方法です。Word2VecやGloVeなどのアルゴリズムを使用して、単語を連続したベクトル空間に埋め込むことができます。
商品名の各単語をベクトルに変換し、それらのベクトルの平均や合計をとることで、商品名全体の埋め込みを得ることができます。
これのサンプルコードくれ
- 正則化の係数ってなに?
- —————————————————————————
InvalidArgumentError Traceback (most recent call last)
Cell In[180], line 26
23 model.summary()
25 # モデルのトレーニング
—> 26 history = model.fit(X_train, y_train, epochs=10, batch_size=32, validation_data=(X_test, y_test))
28 # テストデータでの予測
29 y_pred = model.predict(X_test)
File /home/share/temp/venv/lib/python3.8/site-packages/keras/src/utils/traceback_utils.py:70, in filter_traceback.<locals>.error_handler(*args, **kwargs)
67 filtered_tb = _process_traceback_frames(e.__traceback__)
68 # To get the full stack trace, call:
69 # `tf.debugging.disable_traceback_filtering()`
—> 70 raise e.with_traceback(filtered_tb) from None
71 finally:
72 del filtered_tb
File /home/share/temp/venv/lib/python3.8/site-packages/tensorflow/python/eager/execute.py:53, in quick_execute(op_name, num_outputs, inputs, attrs, ctx, name)
51 try:
52 ctx.ensure_initialized()
—> 53 tensors = pywrap_tfe.TFE_Py_Execute(ctx._handle, device_name, op_name,
54 inputs, attrs, num_outputs)
55 except core._NotOkStatusException as e:
56 if name is not None:
…
TypeError: 'SparseTensor’ object is not subscriptable
- —————————————————————————
InvalidArgumentError Traceback (most recent call last)
Cell In[183], line 31
28 model.compile(optimizer=’adam’, loss=’sparse_categorical_crossentropy’, metrics=['accuracy’])
30 # モデルのトレーニング
—> 31 history = model.fit(X_train, y_train, epochs=10, batch_size=32, validation_data=(X_test, y_test))
34 # テストデータでの予測
35 y_pred = model.predict(X_test)
File /home/share/temp/venv/lib/python3.8/site-packages/keras/src/utils/traceback_utils.py:70, in filter_traceback.<locals>.error_handler(*args, **kwargs)
67 filtered_tb = _process_traceback_frames(e.__traceback__)
68 # To get the full stack trace, call:
69 # `tf.debugging.disable_traceback_filtering()`
—> 70 raise e.with_traceback(filtered_tb) from None
71 finally:
72 del filtered_tb
File /home/share/temp/venv/lib/python3.8/site-packages/tensorflow/python/eager/execute.py:53, in quick_execute(op_name, num_outputs, inputs, attrs, ctx, name)
51 try:
52 ctx.ensure_initialized()
—> 53 tensors = pywrap_tfe.TFE_Py_Execute(ctx._handle, device_name, op_name,
54 inputs, attrs, num_outputs)
55 except core._NotOkStatusException as e:
56 if name is not None:
…
File “/home/share/temp/venv/lib/python3.8/site-packages/keras/src/backend.py", line 5762, in sparse_categorical_crossentropy
res = tf.nn.sparse_softmax_cross_entropy_with_logits(
Node: 'sparse_categorical_crossentropy/SparseSoftmaxCrossEntropyWithLogits/SparseSoftmaxCrossEntropyWithLogits’
Received a label value of 140 which is outside the valid range of [0, 1). Label values: 120 80 100 120 140 100 60 100 140 100 60 60 60 100 100 60 100 80 80 60 100 60 60 100 120 60 60 140 60 60 60 60
[[{{node sparse_categorical_crossentropy/SparseSoftmaxCrossEntropyWithLogits/SparseSoftmaxCrossEntropyWithLogits}}]] [Op:__inference_train_function_33833]
Output is truncated. View as a scrollable element or open in a text editor. Adjust cell output settings…
- Epoch 1/10
102/102 [==============================] – 1s 3ms/step – loss: -2549.9565 – accuracy: 0.0000e+00 – val_loss: -9641.7832 – val_accuracy: 0.0000e+00
Epoch 2/10
102/102 [==============================] – 0s 2ms/step – loss: -100903.8047 – accuracy: 0.0000e+00 – val_loss: -109140.1953 – val_accuracy: 0.0000e+00
Epoch 3/10
102/102 [==============================] – 0s 2ms/step – loss: -641171.8750 – accuracy: 0.0000e+00 – val_loss: -435671.3750 – val_accuracy: 0.0000e+00
Epoch 4/10
102/102 [==============================] – 0s 2ms/step – loss: -2067545.3750 – accuracy: 0.0000e+00 – val_loss: -1124630.8750 – val_accuracy: 0.0000e+00
Epoch 5/10
102/102 [==============================] – 0s 2ms/step – loss: -4791715.5000 – accuracy: 0.0000e+00 – val_loss: -2288296.2500 – val_accuracy: 0.0000e+00
Epoch 6/10
102/102 [==============================] – 0s 2ms/step – loss: -9201973.0000 – accuracy: 0.0000e+00 – val_loss: -4054063.5000 – val_accuracy: 0.0000e+00
Epoch 7/10
102/102 [==============================] – 0s 2ms/step – loss: -15661360.0000 – accuracy: 0.0000e+00 – val_loss: -6518505.0000 – val_accuracy: 0.0000e+00
Epoch 8/10
102/102 [==============================] – 0s 2ms/step – loss: -24346854.0000 – accuracy: 0.0000e+00 – val_loss: -9727398.0000 – val_accuracy: 0.0000e+00
Epoch 9/10
102/102 [==============================] – 0s 2ms/step – loss: -35608440.0000 – accuracy: 0.0000e+00 – val_loss: -13758504.0000 – val_accuracy: 0.0000e+00
Epoch 10/10
102/102 [==============================] – 0s 2ms/step – loss: -49649712.0000 – accuracy: 0.0000e+00 – val_loss: -18720726.0000 – val_accuracy: 0.0000e+00
26/26 [==============================] – 0s 617us/step
Accuracy: 0.0
Precision: 0.0
Recall: 0.0
F1 Score: 0.0
- 商品名を高次元の特徴量にしたい
- トピックモデリング
商品名の意味的なトピックを抽出する方法です。Latent Dirichlet Allocation(LDA)などの手法を使用して、商品名のトピック分布を推定することができます。
- stopwordってなに
- 日本語のほうがいいかも
- リサイズした時、何ピクセルくらいがいい?64*64pixelでもいい?
- imgタグのhtmlデータがあって、それを一括でDLしたい。
- itemCodesmallImageUrls
webike-rb:27512543https://thumbnail.image.rakuten.co.jp/@0_mall/webike-rb/cabinet/2475/1155525_2475.jpg?_ex=128×128
webike-rb:26660942https://thumbnail.image.rakuten.co.jp/@0_mall/webike-rb/cabinet/2142/932618_2142.jpg?_ex=128×128
webike-rb:26657584https://thumbnail.image.rakuten.co.jp/@0_mall/webike-rb/cabinet/2141/929604_2141.jpg?_ex=128×128
webike-rb:27511253https://thumbnail.image.rakuten.co.jp/@0_mall/webike-rb/cabinet/2470/1152236_2470.jpg?_ex=128×128
webike-rb:26268541https://thumbnail.image.rakuten.co.jp/@0_mall/webike-rb/cabinet/70/82073_70.jpg?_ex=128×128
webike-rb:27394622https://thumbnail.image.rakuten.co.jp/@0_mall/webike-rb/cabinet/2179/960809_2179.jpg?_ex=128×128
webike-rb:27394621https://thumbnail.image.rakuten.co.jp/@0_mall/webike-rb/cabinet/2179/960807_2179.jpg?_ex=128×128
webike-rb:26654089https://thumbnail.image.rakuten.co.jp/@0_mall/webike-rb/cabinet/2134/916648_2134.jpg?_ex=128×128
webike-rb:26653133https://thumbnail.image.rakuten.co.jp/@0_mall/webike-rb/cabinet/2133/914851_2133.jpg?_ex=128×128
webike-rb:26268543https://thumbnail.image.rakuten.co.jp/@0_mall/webike-rb/cabinet/28/25400_28.jpg?_ex=128×128
webike-rb:26654086https://thumbnail.image.rakuten.co.jp/@0_mall/webike-rb/cabinet/2134/916642_2134.jpg?_ex=128×128
webike-rb:27147831https://thumbnail.image.rakuten.co.jp/@0_mall/webike-rb/cabinet/132/373431_132.jpg?_ex=128×128
webike-rb:20649061https://thumbnail.image.rakuten.co.jp/@0_mall/webike-rb/cabinet/174/623295_174.jpg?_ex=128×128
csvでこんな感じである。これをダウンロードしたい
- 128*128pixelの画像データなら、ディープラーニングで画像の特徴を判定するのに十分か?
- 画像データがある場合、画像を適切に前処理して特徴量として使用します。例えば、画像をリサイズし、正規化します。
商品名やその他のテキストデータがある場合、テキストをトークン化して数値特徴量に変換します。
カテゴリカルなデータがある場合、エンコーディングして数値データに変換します。
- 特徴量の作成:
商品名やテキストデータから特徴量を抽出します。これには、TF-IDFや単語の埋め込み(Word Embeddings)を使用することができます
- TF-IDF特徴量を含めると精度は和久瑠奈った
- いや、悪くなった。
- ハイパーパラメータは、特徴量を追加するたびにするの?ランダムサーチとか時間かかって大変なんだけど
- データの結合:
特徴量を結合し、1つの特徴量行列を作成します。
- もし、実際の予測したいデータに画像が欠損していたらどうなる?
- sqlで、空欄以外を取得したい
- X_testの形式どうしたらいいの?
- 特徴量の作成にsizeを使ってしまった。目的変数を特徴量作成にいれてはいけないんだね
- 梱包サイズの推定に、どのような情報があればよいと思う?
- 梱包サイズの推定に商品画像も学習データにいれたい
- 梱包サイズの推定にはディープラーニングじゃないとダメ?
- 機械学習で梱包サイズの推定を試してみたい
- 手元に画像データがある。画像データと、梱包サイズ、その他商品タイトル等があるので、梱包サイズ分類するモデルをつくりたい
- img_array.reshape(1, 224, 224, 3)ってなに
- Precision: 0.9975623181567979
Recall: 0.9975308641975309
F1 Score: 0.9975335885438207
ROC AUC Score: 1.0
lightgbmの結果
- 過学習かどうかは、どうやって判定するの?
- 交差検証で、過学習かどうかわかる?
- モデルを出力して、そのモデルを使って、分類を行いたい。
- 保存はtxt形式?
- Accuracy: 0.0
Precision: 0.0
Recall: 0.0
F1 Score: 0.0
ROC AUC Score: 0.9999537180443555
となる。なんで?
- titanicは、回帰?分類?
- Titanicデータセットを使用してランダムフォレストをトレーニングし、生存を予測する
- titanicのcsvなんかもってない
- import seaborn as sns
# Titanicデータセットの読み込み
titanic_data = sns.load_dataset('titanic’)
# データの概要を確認
print(titanic_data.head())
このデータセットをつかって、再度分類のサンプルコード生成して、評価は、例の4つで
- 基本的に、AUCの指標が最も高くなるのかな?
- titanicのこの分類問題は、最高でどれくらいの精度の値がでるの?
- 標準偏差をみて、なにがわかる
- 平均が0.38で標準偏差が0.48ならどう考察する
- 平均が0.38で標準偏差が0.38ならどう考察する
- オーバーサンプリング、アンダーサンプリングって、目的変数に対して行うの?
- size 発送件数
60 1559
100 817
120 610
80 593
140 293
160 179
180 30
200 11
極端に件数がすくないものは、除去したほうがいいのかな?
- オーバーサンプリングのみしたい。
- オーバーサンプリングやアンダーサンプリングをしても、大きな変化はなかった。
- やはり、データセットによる、機械学習モデルの性能への影響が一番大きいよね
- カテゴリーがデータセットに与える影響が大きいと思う
- from sklearn.preprocessing import LabelEncoder
import xgboost as xgb
# LabelEncoderを使用してクラスラベルを変換する
label_encoder = LabelEncoder()
y_train_encoded = label_encoder.fit_transform(y_train)
y_test_encoded = label_encoder.transform(y_test)
# XGBoostモデルの作成とトレーニング
xgb_model = xgb.XGBClassifier(n_estimators=1000, random_state=100)
xgb_model.fit(X_train, y_train_encoded)
# テストセットでの予測
y_pred_encoded = xgb_model.predict(X_test)
# モデルの評価
accuracy = accuracy_score(y_test_encoded, y_pred_encoded)
precision = precision_score(y_test_encoded, y_pred_encoded, average=’weighted’)
recall = recall_score(y_test_encoded, y_pred_encoded, average=’weighted’)
f1 = f1_score(y_test_encoded, y_pred_encoded, average=’weighted’)
roc_auc = roc_auc_score(y_test_encoded, xgb_model.predict_proba(X_test), multi_class=’ovr’)
print(“Accuracy:", accuracy)
print(“Precision:", precision)
print(“Recall:", recall)
print(“F1 Score:", f1)
print(“ROC AUC Score:", roc_auc)
from sklearn.preprocessing import LabelEncoder
import xgboost as xgb
# LabelEncoderを使用してクラスラベルを変換する
label_encoder = LabelEncoder()
y_train_encoded = label_encoder.fit_transform(y_train)
y_test_encoded = label_encoder.transform(y_test)
# XGBoostモデルの作成とトレーニング
xgb_model = xgb.XGBClassifier(n_estimators=1000, random_state=100)
xgb_model.fit(X_train, y_train_encoded)
# テストセットでの予測
y_pred_encoded = xgb_model.predict(X_test)
# モデルの評価
accuracy = accuracy_score(y_test_encoded, y_pred_encoded)
precision = precision_score(y_test_encoded, y_pred_encoded, average=’weighted’)
recall = recall_score(y_test_encoded, y_pred_encoded, average=’weighted’)
f1 = f1_score(y_test_encoded, y_pred_encoded, average=’weighted’)
roc_auc = roc_auc_score(y_test_encoded, xgb_model.predict_proba(X_test), multi_class=’ovr’)
print(“Accuracy:", accuracy)
print(“Precision:", precision)
print(“Recall:", recall)
print(“F1 Score:", f1)
print(“ROC AUC Score:", roc_auc)
from sklearn.preprocessing import LabelEncoder
import xgboost as xgb
# LabelEncoderを使用してクラスラベルを変換する
label_encoder = LabelEncoder()
y_train_encoded = label_encoder.fit_transform(y_train)
y_test_encoded = label_encoder.transform(y_test)
# XGBoostモデルの作成とトレーニング
xgb_model = xgb.XGBClassifier(n_estimators=1000, random_state=100)
xgb_model.fit(X_train, y_train_encoded)
# テストセットでの予測
y_pred_encoded = xgb_model.predict(X_test)
# モデルの評価
accuracy = accuracy_score(y_test_encoded, y_pred_encoded)
precision = precision_score(y_test_encoded, y_pred_encoded, average=’weighted’)
recall = recall_score(y_test_encoded, y_pred_encoded, average=’weighted’)
f1 = f1_score(y_test_encoded, y_pred_encoded, average=’weighted’)
roc_auc = roc_auc_score(y_test_encoded, xgb_model.predict_proba(X_test), multi_class=’ovr’)
print(“Accuracy:", accuracy)
print(“Precision:", precision)
print(“Recall:", recall)
print(“F1 Score:", f1)
print(“ROC AUC Score:", roc_auc)
from sklearn.preprocessing import LabelEncoder
import xgboost as xgb
# LabelEncoderを使用してクラスラベルを変換する
label_encoder = LabelEncoder()
y_train_encoded = label_encoder.fit_transform(y_train)
y_test_encoded = label_encoder.transform(y_test)
# XGBoostモデルの作成とトレーニング
xgb_model = xgb.XGBClassifier(n_estimators=1000, random_state=100)
xgb_model.fit(X_train, y_train_encoded)
# テストセットでの予測
y_pred_encoded = xgb_model.predict(X_test)
# モデルの評価
accuracy = accuracy_score(y_test_encoded, y_pred_encoded)
precision = precision_score(y_test_encoded, y_pred_encoded, average=’weighted’)
recall = recall_score(y_test_encoded, y_pred_encoded, average=’weighted’)
f1 = f1_score(y_test_encoded, y_pred_encoded, average=’weighted’)
roc_auc = roc_auc_score(y_test_encoded, xgb_model.predict_proba(X_test), multi_class=’ovr’)
print(“Accuracy:", accuracy)
print(“Precision:", precision)
print(“Recall:", recall)
print(“F1 Score:", f1)
print(“ROC AUC Score:", roc_auc)—————————————————————————
XGBoostError Traceback (most recent call last)
Cell In[61], line 12
10 # XGBoostモデルの作成とトレーニング
11 xgb_model = xgb.XGBClassifier(n_estimators=1000, random_state=100)
—> 12 xgb_model.fit(X_train, y_train)
14 # テストセットでの予測
15 y_pred = xgb_model.predict(X_test)
File /home/share/temp/venv/lib/python3.8/site-packages/xgboost/core.py:730, in require_keyword_args.<locals>.throw_if.<locals>.inner_f(*args, **kwargs)
728 for k, arg in zip(sig.parameters, args):
729 kwargs[k] = arg
–> 730 return func(**kwargs)
File /home/share/temp/venv/lib/python3.8/site-packages/xgboost/sklearn.py:1500, in XGBClassifier.fit(self, X, y, sample_weight, base_margin, eval_set, eval_metric, early_stopping_rounds, verbose, xgb_model, sample_weight_eval_set, base_margin_eval_set, feature_weights, callbacks)
1489 params[“num_class"] = self.n_classes_
1491 (
1492 model,
1493 metric,
(…)
1498 xgb_model, eval_metric, params, early_stopping_rounds, callbacks
1499 )
-> 1500 train_dmatrix, evals = _wrap_evaluation_matrices(
1501 missing=self.missing,
1502 X=X,
…
[bt] (6) /usr/lib/python3.8/lib-dynload/_ctypes.cpython-38-x86_64-linux-gnu.so(_ctypes_callproc+0x5b6) [0x7fc1a4d77306]
[bt] (7) /usr/lib/python3.8/lib-dynload/_ctypes.cpython-38-x86_64-linux-gnu.so(+0x139dc) [0x7fc1a4d779dc]
[bt] (8) /home/share/temp/venv/bin/python(_PyObject_MakeTpCall+0x296) [0x5d6066]
Output is truncated. View as a scrollable element or open in a text editor. Adjust cell output settings…
- from sklearn.preprocessing import LabelEncoder
import xgboost as xgb
# LabelEncoderを使用してクラスラベルを変換する
label_encoder = LabelEncoder()
y_train_encoded = label_encoder.fit_transform(y_train)
y_test_encoded = label_encoder.transform(y_test)
# XGBoostモデルの作成とトレーニング
xgb_model = xgb.XGBClassifier(n_estimators=1000, random_state=100)
xgb_model.fit(X_train, y_train_encoded)
# テストセットでの予測
y_pred_encoded = xgb_model.predict(X_test)
# モデルの評価
accuracy = accuracy_score(y_test_encoded, y_pred_encoded)
precision = precision_score(y_test_encoded, y_pred_encoded, average=’weighted’)
recall = recall_score(y_test_encoded, y_pred_encoded, average=’weighted’)
f1 = f1_score(y_test_encoded, y_pred_encoded, average=’weighted’)
roc_auc = roc_auc_score(y_test_encoded, xgb_model.predict_proba(X_test), multi_class=’ovr’)
print(“Accuracy:", accuracy)
print(“Precision:", precision)
print(“Recall:", recall)
print(“F1 Score:", f1)
print(“ROC AUC Score:", roc_auc)
—————————————————————————
XGBoostError Traceback (most recent call last)
Cell In[66], line 12
10 # XGBoostモデルの作成とトレーニング
11 xgb_model = xgb.XGBClassifier(n_estimators=1000, random_state=100)
—> 12 xgb_model.fit(X_train, y_train_encoded)
14 # テストセットでの予測
15 y_pred_encoded = xgb_model.predict(X_test)
File /home/share/temp/venv/lib/python3.8/site-packages/xgboost/core.py:730, in require_keyword_args.<locals>.throw_if.<locals>.inner_f(*args, **kwargs)
728 for k, arg in zip(sig.parameters, args):
729 kwargs[k] = arg
–> 730 return func(**kwargs)
File /home/share/temp/venv/lib/python3.8/site-packages/xgboost/sklearn.py:1500, in XGBClassifier.fit(self, X, y, sample_weight, base_margin, eval_set, eval_metric, early_stopping_rounds, verbose, xgb_model, sample_weight_eval_set, base_margin_eval_set, feature_weights, callbacks)
1489 params[“num_class"] = self.n_classes_
1491 (
1492 model,
1493 metric,
(…)
1498 xgb_model, eval_metric, params, early_stopping_rounds, callbacks
1499 )
-> 1500 train_dmatrix, evals = _wrap_evaluation_matrices(
1501 missing=self.missing,
1502 X=X,
…
[bt] (6) /usr/lib/python3.8/lib-dynload/_ctypes.cpython-38-x86_64-linux-gnu.so(_ctypes_callproc+0x5b6) [0x7fc1a4d77306]
[bt] (7) /usr/lib/python3.8/lib-dynload/_ctypes.cpython-38-x86_64-linux-gnu.so(+0x139dc) [0x7fc1a4d779dc]
[bt] (8) /home/share/temp/venv/bin/python(_PyObject_MakeTpCall+0x296) [0x5d6066]
- —————————————————————————
ValueError Traceback (most recent call last)
Cell In[70], line 59
57 # XGBoostモデルの作成とトレーニング
58 xgb_model = xgb.XGBClassifier(n_estimators=1000, random_state=100)
—> 59 xgb_model.fit(X_train, y_train)
61 # テストセットでの予測
62 y_pred = xgb_model.predict(X_test)
File /home/share/temp/venv/lib/python3.8/site-packages/xgboost/core.py:730, in require_keyword_args.<locals>.throw_if.<locals>.inner_f(*args, **kwargs)
728 for k, arg in zip(sig.parameters, args):
729 kwargs[k] = arg
–> 730 return func(**kwargs)
File /home/share/temp/venv/lib/python3.8/site-packages/xgboost/sklearn.py:1471, in XGBClassifier.fit(self, X, y, sample_weight, base_margin, eval_set, eval_metric, early_stopping_rounds, verbose, xgb_model, sample_weight_eval_set, base_margin_eval_set, feature_weights, callbacks)
1466 expected_classes = self.classes_
1467 if (
1468 classes.shape != expected_classes.shape
1469 or not (classes == expected_classes).all()
1470 ):
-> 1471 raise ValueError(
1472 f"Invalid classes inferred from unique values of `y`. "
1473 f"Expected: {expected_classes}, got {classes}"
1474 )
1476 params = self.get_xgb_params()
1478 if callable(self.objective):
ValueError: Invalid classes inferred from unique values of `y`. Expected: [0 1 2 3 4 5], got [ 60 80 100 120 140 160]
- 分類の有名なデータセットある?
- オーバーサンプリングをおこなってみたい。
- Exception ignored on calling ctypes callback function: <function ThreadpoolController._find_libraries_with_dl_iterate_phdr.<locals>.match_library_callback at 0x7fc098116040>
Traceback (most recent call last):
File “/home/share/temp/venv/lib/python3.8/site-packages/threadpoolctl.py", line 1014, in match_library_callback
self._make_controller_from_path(filepath)
File “/home/share/temp/venv/lib/python3.8/site-packages/threadpoolctl.py", line 1184, in _make_controller_from_path
lib_controller = controller_class(
File “/home/share/temp/venv/lib/python3.8/site-packages/threadpoolctl.py", line 113, in __init__
self.dynlib = ctypes.CDLL(filepath, mode=_RTLD_NOLOAD)
File “/usr/lib/python3.8/ctypes/__init__.py", line 373, in __init__
self._handle = _dlopen(self._name, mode)
OSError: dlopen() error
- from imblearn.over_sampling import SMOTE
# SMOTEを適用
smote = SMOTE(random_state=42)
X_train_resampled, y_train_resampled = smote.fit_resample(X_train_scaled, y_train)
# ランダムフォレストモデルの作成とトレーニング
rf_model_resampled = RandomForestClassifier(n_estimators=100, random_state=100)
rf_model_resampled.fit(X_train_resampled, y_train_resampled)
精度等表示して
- RF_ベースモデル_est100ベースモデル_est500商品名の除外メーカー品番をラベルエンコーディング追加商品名の記号置換商品名のラベルエンコーディング追加商品名のCountVectorizerの除外標準化XB_ベースモデル_est=1000XB_ランダムサーチXB_ベイズ最適化XB_ベイズ最適化周辺をグリッドサーチRF_オーバーサンプリング
Accuracy:0.5628815630.560439560.4884004880.5677655680.5567765570.5714285710.5372405370.5677655680.5335775340.5543345540.5457875460.5641025640.576312576
Precision:0.5315840.5277868790.4782995730.5402894350.5314114290.5392694230.5214282930.5402894350.5237452480.5215769110.5144864210.5397745430.55480101
Recall:0.5628815630.560439560.4884004880.5677655680.5567765570.5714285710.5372405370.5677655680.5335775340.5543345540.5457875460.5641025640.576312576
F10.5259812770.5214738420.481048240.5319235320.5225131660.5370858670.5254654420.5319235320.5251315840.5190071830.5115733910.5346487760.546732668
ROC0.7550416090.7828641750.7191715240.7903844320.7616002680.7545344520.7385223670.7903920030.726494170.8012548850.7742405460.8034846850.767741851
これが今までの結果。オーバーサンプリングしたら少しは改善されたけど、まだまだ
- アンダーサンプリングとの組み合わせ: オーバーサンプリングとアンダーサンプリングを組み合わせ
- コードちょうだい
- RF_ベースモデル_est100ベースモデル_est500商品名の除外メーカー品番をラベルエンコーディング追加商品名の記号置換商品名のラベルエンコーディング追加商品名のCountVectorizerの除外標準化XB_ベースモデル_est=1000XB_ランダムサーチXB_ベイズ最適化XB_ベイズ最適化周辺をグリッドサーチRF_オーバーサンプリングRF_オーバーアンダーサンプリング
Accuracy:0.5628815630.560439560.4884004880.5677655680.5567765570.5714285710.5372405370.5677655680.5335775340.5543345540.5457875460.5641025640.5763125760.568986569
Precision:0.5315840.5277868790.4782995730.5402894350.5314114290.5392694230.5214282930.5402894350.5237452480.5215769110.5144864210.5397745430.554801010.541631725
Recall:0.5628815630.560439560.4884004880.5677655680.5567765570.5714285710.5372405370.5677655680.5335775340.5543345540.5457875460.5641025640.5763125760.568986569
F10.5259812770.5214738420.481048240.5319235320.5225131660.5370858670.5254654420.5319235320.5251315840.5190071830.5115733910.5346487760.5467326680.53367793
ROC0.7550416090.7828641750.7191715240.7903844320.7616002680.7545344520.7385223670.7903920030.726494170.8012548850.7742405460.8034846850.7677418510.755179211
大して変わらないなぁ
- オーバーサンプリングやアンダーサンプリングをしているが、具体的にどう不均衡が発生しているのか視覚化してみたい
- Best Parameters: {'colsample_bytree’: 0.6431565707973218, 'learning_rate’: 0.019428755706020276, 'max_depth’: 9, 'n_estimators’: 340, 'subsample’: 0.7257423924305306}
これは、ランダムサーチの結果です。このパラメーターをベースにして、グリッドサーチで探索してほしい。
- AUCがたかくて、accuracy,precision,recallが低い、オーバーサンプリングかアンダーサンプリングをしたほうが良いか?
- クラスの不均衡にクラスの重みづけで対応してみたい
- from sklearn.preprocessing import LabelEncoder
import xgboost as xgb
# LabelEncoderを使用してクラスラベルを変換する
label_encoder = LabelEncoder()
y_train_encoded = label_encoder.fit_transform(y_train)
y_test_encoded = label_encoder.transform(y_test)
# XGBoostモデルの作成とトレーニング
xgb_model = xgb.XGBClassifier(n_estimators=1000, random_state=100)
xgb_model.fit(X_train, y_train_encoded)
# テストセットでの予測
y_pred_encoded = xgb_model.predict(X_test)
# モデルの評価
accuracy = accuracy_score(y_test_encoded, y_pred_encoded)
precision = precision_score(y_test_encoded, y_pred_encoded, average=’weighted’)
recall = recall_score(y_test_encoded, y_pred_encoded, average=’weighted’)
f1 = f1_score(y_test_encoded, y_pred_encoded, average=’weighted’)
roc_auc = roc_auc_score(y_test_encoded, xgb_model.predict_proba(X_test), multi_class=’ovr’)
print(“Accuracy:", accuracy)
print(“Precision:", precision)
print(“Recall:", recall)
print(“F1 Score:", f1)
print(“ROC AUC Score:", roc_auc)
- from sklearn.utils.class_weight import compute_class_weight
# クラスの重みを計算
class_weights = compute_class_weight('balanced’, np.unique(y_train), y_train)
# クラスの重みを辞書に変換
class_weight_dict = dict(zip(np.unique(y_train), class_weights))
# ランダムフォレストモデルの作成とトレーニング
rf_model_weighted = RandomForestClassifier(n_estimators=100, random_state=100, class_weight=class_weight_dict)
rf_model_weighted.fit(X_train_scaled, y_train)
# テストセットでの予測
y_pred_weighted = rf_model_weighted.predict(X_test_scaled)
# モデルの評価
accuracy_weighted = accuracy_score(y_test, y_pred_weighted)
precision_weighted = precision_score(y_test, y_pred_weighted, average=’weighted’)
recall_weighted = recall_score(y_test, y_pred_weighted, average=’weighted’)
f1_weighted = f1_score(y_test, y_pred_weighted, average=’weighted’)
roc_auc_weighted = roc_auc_score(y_test, rf_model_weighted.predict_proba(X_test_scaled), multi_class=’ovr’)
print(“Weighted Accuracy:", accuracy_weighted)
print(“Weighted Precision:", precision_weighted)
print(“Weighted Recall:", recall_weighted)
print(“Weighted F1 Score:", f1_weighted)
print(“Weighted ROC AUC Score:", roc_auc_weighted)
TypeError Traceback (most recent call last)
Cell In[26], line 4
1 from sklearn.utils.class_weight import compute_class_weight
3 # クラスの重みを計算
—-> 4 class_weights = compute_class_weight('balanced’, np.unique(y_train), y_train)
6 # クラスの重みを辞書に変換
7 class_weight_dict = dict(zip(np.unique(y_train), class_weights))
TypeError: compute_class_weight() takes 1 positional argument but 3 were given
- Weighted Accuracy: 0.5616605616605617
Weighted Precision: 0.5318493541919603
Weighted Recall: 0.5616605616605617
Weighted F1 Score: 0.5216993753351751
Weighted ROC AUC Score: 0.7692266112375148
不均衡が未だ発生している。AUCが高い
- ランダムフォレストのaverage="weighted"で行った場合、上手く重みづけがされていないようだけど、どうしたらいいと思う?
- xgboostでクラスの重みづけはどうやるの?
- Accuracy: 0.5335775335775336
Precision: 0.5237452475014479
Recall: 0.5335775335775336
F1 Score: 0.5251315843386484
ROC AUC Score: 0.7264941698664935
結果はこれ、やはり重みづけではだめか?
- n_iter=50 これは50回のイテレーション?
- ベイズ最適化でクロスバリデーションをしたい
- Best Parameters: {'colsample_bytree’: 0.6431565707973218, 'learning_rate’: 0.019428755706020276, 'max_depth’: 9, 'n_estimators’: 340, 'subsample’: 0.7257423924305306}
ランダムサーチの結果、上記だったんだ。これを活かせないか?
- ランダムサーチを活かしたベイズ最適化のコードくれ
- RandomizedSearchCVのn_iterパラメータが100とは?
- from sklearn.model_selection import RandomizedSearchCV
from scipy.stats import uniform, randint
# チューニングするハイパーパラメータの範囲を定義
param_dist = {
'n_estimators’: randint(100, 1000),
'max_depth’: randint(3, 10),
'learning_rate’: uniform(0.01, 0.3),
'subsample’: uniform(0.6, 0.4),
'colsample_bytree’: uniform(0.6, 0.4),
}
# ランダムサーチを行う
random_search = RandomizedSearchCV(estimator=xgb_model, param_distributions=param_dist, n_iter=100,
cv=3, scoring=’accuracy’, verbose=2, random_state=42, n_jobs=-1)
random_search.fit(X_train, y_train_encoded)
# 最適なモデルを取得
best_model = random_search.best_estimator_
# 最適なモデルで予測を行う
y_pred_encoded = best_model.predict(X_test)
# モデルの評価
accuracy = accuracy_score(y_test_encoded, y_pred_encoded)
precision = precision_score(y_test_encoded, y_pred_encoded, average=’weighted’)
recall = recall_score(y_test_encoded, y_pred_encoded, average=’weighted’)
f1 = f1_score(y_test_encoded, y_pred_encoded, average=’weighted’)
roc_auc = roc_auc_score(y_test_encoded, best_model.predict_proba(X_test), multi_class=’ovr’)
print(“Best Parameters:", random_search.best_params_)
print(“Accuracy:", accuracy)
print(“Precision:", precision)
print(“Recall:", recall)
print(“F1 Score:", f1)
print(“ROC AUC Score:", roc_auc)
print(accuracy,precision,recall,f1,roc_auc)
いつ終わるのこれ?何組?
- random_search = RandomizedSearchCV(estimator=xgb_model, param_distributions=param_dist, n_iter=100, cv=3, scoring=’accuracy’, verbose=2, random_state=42, n_jobs=-1)これについて詳しく
- n_iter×cv=300だから、300回のイテレーションログが出力されるの?
- ランダムサーチの結果から、その周辺を探ったらどうかな?
- 機械学習ってさ、時間をかけて全パターン試せば、最適解が出るって事?
- XGBOOSTで行っているけど、ランダムサーチで、目星をつけて、その周辺をベイス最適化させたらどうか?
- Best Parameters: {'colsample_bytree’: 0.6431565707973218, 'learning_rate’: 0.019428755706020276, 'max_depth’: 9, 'n_estimators’: 340, 'subsample’: 0.7257423924305306}
Accuracy: 0.5543345543345544
Precision: 0.5215769114241183
Recall: 0.5543345543345544
F1 Score: 0.5190071834938049
ROC AUC Score: 0.8012548849572678
上記の結果が出た。
RF_ベースモデル_est100ベースモデル_est500商品名の除外メーカー品番をラベルエンコーディング追加商品名の記号置換商品名のラベルエンコーディング追加商品名のCountVectorizerの除外標準化XB_ベースモデル_est=1000XB_ランダムサーチ
Accuracy:0.5628815630.560439560.4884004880.5677655680.5567765570.5714285710.5372405370.5677655680.5335775340.554334554
Precision:0.5315840.5277868790.4782995730.5402894350.5314114290.5392694230.5214282930.5402894350.5237452480.521576911
Recall:0.5628815630.560439560.4884004880.5677655680.5567765570.5714285710.5372405370.5677655680.5335775340.554334554
F10.5259812770.5214738420.481048240.5319235320.5225131660.5370858670.5254654420.5319235320.5251315840.519007183
ROC0.7550416090.7828641750.7191715240.7903844320.7616002680.7545344520.7385223670.7903920030.726494170.801254885
- ベイズ最適化をしてみたい
- サーバーから応答がなくなる。CPUが常に100%になっている。ブースティングの処理をしているから。
- サーバーからの応答が無くなるんだけど、どうしたらいいかな、VSCODE。
重くなっても繋がってほしいのだが
- プロセッサ28個ついてるんだけどシステムが高い処理能力あるってこと?
- ランダムフォレストが応答しないよ
- random_search = RandomizedSearchCV(estimator=xgb_model, param_distributions=param_dist, n_iter=100, cv=3, scoring=’accuracy’, verbose=2, random_state=42, n_jobs=-1)これは、何パターン試すの?
- from sklearn.preprocessing import LabelEncoder
# LabelEncoderを使用してクラスラベルを変換する
label_encoder = LabelEncoder()
y_train_encoded = label_encoder.fit_transform(y_train)
y_test_encoded = label_encoder.transform(y_test)
# XGBoostモデルの作成とトレーニング
xgb_model = xgb.XGBClassifier(n_estimators=1000, random_state=100)
xgb_model.fit(X_train, y_train_encoded)
# テストセットでの予測
y_pred_encoded = xgb_model.predict(X_test)
# モデルの評価
accuracy = accuracy_score(y_test_encoded, y_pred_encoded)
precision = precision_score(y_test_encoded, y_pred_encoded, average=’weighted’)
recall = recall_score(y_test_encoded, y_pred_encoded, average=’weighted’)
f1 = f1_score(y_test_encoded, y_pred_encoded, average=’weighted’)
roc_auc = roc_auc_score(y_test_encoded, xgb_model.predict_proba(X_test), multi_class=’ovr’)
print(“Accuracy:", accuracy)
print(“Precision:", precision)
print(“Recall:", recall)
print(“F1 Score:", f1)
print(“ROC AUC Score:", roc_auc)
グリッドサーチして
- ランダムフォレストの方がブースティング系より結果が良かったんだけど、なんで?
- ModuleNotFoundError: No module named 'sklearn’
- NameError: name 'xgb’ is not defined
- ModuleNotFoundError: No module named 'xgboost’
- from sklearn.model_selection import GridSearchCV
# チューニングするハイパーパラメータの範囲を定義
param_grid = {
'n_estimators’: [100, 500, 1000],
'max_depth’: [3, 5, 7],
'learning_rate’: [0.01, 0.1, 0.3],
'subsample’: [0.6, 0.8, 1.0],
'colsample_bytree’: [0.6, 0.8, 1.0],
}
# グリッドサーチを行う
grid_search = GridSearchCV(estimator=xgb_model, param_grid=param_grid, cv=3, scoring=’accuracy’, verbose=2, n_jobs=-1)
grid_search.fit(X_train, y_train_encoded)
# 最適なモデルを取得
best_model = grid_search.best_estimator_
# 最適なモデルで予測を行う
y_pred_encoded = best_model.predict(X_test)
# モデルの評価
accuracy = accuracy_score(y_test_encoded, y_pred_encoded)
precision = precision_score(y_test_encoded, y_pred_encoded, average=’weighted’)
recall = recall_score(y_test_encoded, y_pred_encoded, average=’weighted’)
f1 = f1_score(y_test_encoded, y_pred_encoded, average=’weighted’)
roc_auc = roc_auc_score(y_test_encoded, best_model.predict_proba(X_test), multi_class=’ovr’)
print(“Best Parameters:", grid_search.best_params_)
print(“Accuracy:", accuracy)
print(“Precision:", precision)
print(“Recall:", recall)
print(“F1 Score:", f1)
print(“ROC AUC Score:", roc_auc)
ランダムサーチでおねがい
- データセットの特性: ランダムフォレストは、ブースティングよりもロバスト(頑健)な傾向があります。特に、外れ値やノイズが多い場合や、特徴量間の相互作用が複雑でない場合には、ランダムフォレストの方が良い結果を示すことがあります。
カテゴリ変数の場合、外れ値とかあるの?
- 機械学習でデータの標準化をしたい
- TypeError: Expected np.float32 or np.float64, met type(int64)
- —————————————————————————
ValueError Traceback (most recent call last)
Cell In[105], line 89
87 # データの標準化
88 scaler = StandardScaler()
—> 89 X_train_scaled = scaler.fit_transform(X_train)
90 X_test_scaled = scaler.transform(X_test)
94 # ランダムフォレストモデルの作成とトレーニング
File ~anaconda3libsite-packagessklearnutils_set_output.py:142, in _wrap_method_output.<locals>.wrapped(self, X, *args, **kwargs)
140 @wraps(f)
141 def wrapped(self, X, *args, **kwargs):
–> 142 data_to_wrap = f(self, X, *args, **kwargs)
143 if isinstance(data_to_wrap, tuple):
144 # only wrap the first output for cross decomposition
145 return (
146 _wrap_data_with_container(method, data_to_wrap[0], X, self),
147 *data_to_wrap[1:],
148 )
File ~anaconda3libsite-packagessklearnbase.py:859, in TransformerMixin.fit_transform(self, X, y, **fit_params)
855 # non-optimized default implementation; override when a better
856 # method is possible for a given clustering algorithm
857 if y is None:
858 # fit method of arity 1 (unsupervised transformation)
–> 859 return self.fit(X, **fit_params).transform(X)
860 else:
861 # fit method of arity 2 (supervised transformation)
862 return self.fit(X, y, **fit_params).transform(X)
File ~anaconda3libsite-packagessklearnpreprocessing_data.py:824, in StandardScaler.fit(self, X, y, sample_weight)
822 # Reset internal state before fitting
823 self._reset()
–> 824 return self.partial_fit(X, y, sample_weight)
File ~anaconda3libsite-packagessklearnpreprocessing_data.py:889, in StandardScaler.partial_fit(self, X, y, sample_weight)
887 if sparse.issparse(X):
888 if self.with_mean:
–> 889 raise ValueError(
890 “Cannot center sparse matrices: pass `with_mean=False` "
891 “instead. See docstring for motivation and alternatives."
892 )
893 sparse_constructor = (
894 sparse.csr_matrix if X.format == “csr" else sparse.csc_matrix
895 )
897 if self.with_std:
898 # First pass
ValueError: Cannot center sparse matrices: pass `with_mean=False` instead. See docstring for motivation and alternatives.
- [LightGBM] [Warning] No further splits with positive gain, best gain: -inf
別のアルゴリズムで試したい
- ブースティング系のサンプルコード XGBoost
- —————————————————————————
ValueError Traceback (most recent call last)
Cell In[108], line 5
3 # XGBoostモデルの作成とトレーニング
4 xgb_model = xgb.XGBClassifier(n_estimators=1000, random_state=100)
—-> 5 xgb_model.fit(X_train, y_train)
7 # テストセットでの予測
8 y_pred = xgb_model.predict(X_test)
File ~anaconda3libsite-packagesxgboostcore.py:729, in require_keyword_args.<locals>.throw_if.<locals>.inner_f(*args, **kwargs)
727 for k, arg in zip(sig.parameters, args):
728 kwargs[k] = arg
–> 729 return func(**kwargs)
File ~anaconda3libsite-packagesxgboostsklearn.py:1467, in XGBClassifier.fit(self, X, y, sample_weight, base_margin, eval_set, eval_metric, early_stopping_rounds, verbose, xgb_model, sample_weight_eval_set, base_margin_eval_set, feature_weights, callbacks)
1462 expected_classes = self.classes_
1463 if (
1464 classes.shape != expected_classes.shape
1465 or not (classes == expected_classes).all()
1466 ):
-> 1467 raise ValueError(
1468 f"Invalid classes inferred from unique values of `y`. "
1469 f"Expected: {expected_classes}, got {classes}"
1470 )
1472 params = self.get_xgb_params()
1474 if callable(self.objective):
ValueError: Invalid classes inferred from unique values of `y`. Expected: [0 1 2 3 4 5 6 7], got [ 60 80 100 120 140 160 180 200]
- パラメーターチューニングをサーチしたい
- RandomForestClassifier
日本語で何て読む?
- TypeError: Expected np.float32 or np.float64, met type(int64)
- [LightGBM] [Warning] No further splits with positive gain, best gain: -inf
このエラーを消したい
- ハイパーパラメータの調整は、LightGBMのモデルの性能を向上させる
- CountVectorizerは具体的に何をしているの?
- CountVectorizerは文章ならどうなる?
- CountVectorizerは形態素解析する感じ?
- 単語レベルのカウント CountVectorizer
- カテゴリ変数は、countvectorrizerした方がいい?
- メーカー品番とかは効果ないかな?
- Accuracy:
Precision:
Recall:
F1
が低いのに、ROCは高いのはなぜ?
- AUCが高い事は何を示唆するの?
- 機械学習でモデルを作るうえでの手順教えて
- ランダムフォレストのパラメータチューニング教えて
- ランダムフォレストやブースティング系か、ニューラルネットワークどっちがいい?
- X_product_name_vectorized という商品名と、sizeという梱包サイズ(目的変数)の相関関係を出すって難しい?
- カテゴリ変数の場合は相関関係をみるのではなくて、実際に学習させた結果の精度等の数値をみて判断するという事?
- ランダムフォレストでベースモデル作ったんだけど、例えば、ランダムフォレストで良い数値がでれば、ブースティング系でも良い数値がでる?(特徴量エンジニアリングの部分において)
- product_name
の文字列をreplaceしたい
- 商品名をラベルエンコーディングしたい
- 通常はカテゴリ変数は相関係数を計算しないの?
- 代わりに、カテゴリ変数と目的変数の関係を理解するためには、カテゴリごとの目的変数の平均や分布を見ることが一般的です。これにより、カテゴリ変数の各水準が目的変数にどのように影響を与えるかを理解することができます。
- 商品名なんだけど、これが説明変数に必要なのか分からないんだ
- 他の説明変数との関係を評価してから、説明変数としての適切さを決定する必要があります。どうやって?
- カテゴリ変数の場合: カテゴリ変数の各水準ごとに目的変数の平均値や分布を見て、カテゴリ変数が目的変数に与える影響を評価します。これにより、カテゴリ変数の水準ごとに目的変数がどのように変化するかを理解できます。
具体的なサンプルコードちょうだい
- カテゴリごとの目的変数の分布を可視化するなど、必要に応じてさらなる分析を行うこともできます
- 商品名だから、重複した商品名はないんだ。これをgroupbyしても意味はあるのかな
- カテゴリ変数は、重複している必要があるってこと?
- 商品名というカテゴリ変数から、キーワードに応じて梱包サイズが推測できるかな
- X_maker_numberは文字列なんだよね
- メーカー品番なんだけど、どっちで変換したらいいかな?
- Label EncodingとOne-Hot Encodingのサンプルコード
- hstackってなに?
- 相関係数って、0~1の間をとるの?
- X_product_name_vectorizedも相関係数を表示したい
- pd.dummieメソッド
- TypeError: sparse matrix length is ambiguous; use getnnz() or shape[0]
- CountVectorizer について詳しく
- CountVectorizer は、要は新しい特徴量を作る時に使うの?
- X_product_name_vectorizedの中のでーたを見てみたい
- UFuncTypeError: ufunc 'maximum’ did not contain a loop with signature matching types (dtype('<U21’), dtype('<U21’)) -> None
- そもそも、カテゴリ変数は、文字列じゃないの?
- onehotとラベルエンコーディングの違いは
- NameError: name 'LabelEncoder’ is not defined
- pandasのdummieとかいうメソッドは、onehotエンコーディング?
- scikit-learnのOneHotEncoderより、pandasのget_dummiesのほうが楽じゃね
- IndexError: Index dimension must be 1 or 2
- IndexError: Index dimension must be 1 or 2
- # 特徴量エンジニアリング(カテゴリ変数エンコーディング、)
from sklearn.preprocessing import LabelEncoder
from sklearn.preprocessing import OneHotEncoder
# カテゴリカル変数の列を選択する
categorical_cols = ['original_product_code’, 'product_name’, 'product_maker_number’]
# LabelEncoder を使用して各列をエンコードする
label_encoders = {}
for col in categorical_cols:
label_encoders[col] = LabelEncoder()
X_train[col] = label_encoders[col].fit_transform(X_train[col])
# OneHotEncoder を作成し、選択した列を変換する
encoder = OneHotEncoder(sparse=False, handle_unknown=’ignore’)
X_train_encoded = encoder.fit_transform(X_train)
# エンコードされた特徴量を元のデータフレームに追加する
X_train_encoded_df = pd.DataFrame(X_train_encoded, columns=encoder.get_feature_names_out(categorical_cols))
# 元のデータフレームからカテゴリカル変数の列を削除する
X_train = X_train.drop(columns=categorical_cols)
# エンコードされた特徴量を元のデータフレームに結合する
X_train = pd.concat([X_train, X_train_encoded_df], axis=1)
—————————————————————————
IndexError Traceback (most recent call last)
Cell In[66], line 14
12 for col in categorical_cols:
13 label_encoders[col] = LabelEncoder()
—> 14 X_train[col] = label_encoders[col].fit_transform(X_train[col])
16 # OneHotEncoder を作成し、選択した列を変換する
17 encoder = OneHotEncoder(sparse=False, handle_unknown=’ignore’)
File ~anaconda3libsite-packagesscipysparse_index.py:47, in IndexMixin.__getitem__(self, key)
46 def __getitem__(self, key):
—> 47 row, col = self._validate_indices(key)
49 # Dispatch to specialized methods.
50 if isinstance(row, INT_TYPES):
File ~anaconda3libsite-packagesscipysparse_index.py:159, in IndexMixin._validate_indices(self, key)
157 row += M
158 elif not isinstance(row, slice):
–> 159 row = self._asindices(row, M)
161 if isintlike(col):
162 col = int(col)
File ~anaconda3libsite-packagesscipysparse_index.py:183, in IndexMixin._asindices(self, idx, length)
180 raise IndexError('invalid index’) from e
182 if x.ndim not in (1, 2):
–> 183 raise IndexError('Index dimension must be 1 or 2’)
185 if x.size == 0:
186 return x
IndexError: Index dimension must be 1 or 2
- pandasで対象行だけ削除したい
- ValueError: Target is multiclass but average=’binary’. Please choose another average setting, one of [None, 'micro’, 'macro’, 'weighted’].
- ValueError: Target is multiclass but average=’binary’. Please choose another average setting, one of [None, 'micro’, 'macro’, 'weighted’].
- LightGBM] [Warning] No further splits with positive gain, best gain: -inf[LightGBM] [Warning] No further splits with positive gain, best gain
- ValueError: multi_class must be in ('ovo’, 'ovr’)
- AxisError: axis 1 is out of bounds for array of dimension 1
- AxisError: axis 1 is out of bounds for array of dimension 1
- from lightgbm import LGBMClassifier
from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score, roc_auc_score
# LightGBMモデルの作成とトレーニング
lgbm_model = LGBMClassifier()
lgbm_model.fit(X_train, y_train)
# テストセットでの予測
y_pred_lgbm = lgbm_model.predict(X_test)
# 分類モデルの評価
accuracy = accuracy_score(y_test, y_pred_lgbm)
precision = precision_score(y_test, y_pred_lgbm, average=’macro’)
recall = recall_score(y_test, y_pred_lgbm, average=’macro’)
f1 = f1_score(y_test, y_pred_lgbm, average=’macro’)
y_pred_lgbm_proba = lgbm_model.predict_proba(X_test)[:, 1] # 各クラスの予測確率から目的クラスの確率を取得
# roc_auc = roc_auc_score(y_test, y_pred_lgbm_proba)
# roc_auc = roc_auc_score(y_test, y_pred_lgbm_proba, multi_class=’ovr’, average=’macro’)
# roc_auc = roc_auc_score(y_test, y_pred_lgbm_proba, average=’macro’)
print(“Accuracy:", accuracy)
print(“Precision:", precision)
print(“Recall:", recall)
print(“F1 Score:", f1)
# print(“ROC AUC Score:", roc_auc)
Accuracy: 0.5299145299145299
Precision: 0.3896774298825161
Recall: 0.33485868288702125
F1 Score: 0.3510388029967464
このモデルの精度を向上させるにはどうしたらいいと思う
- 特徴量のエンジニアリングを最初にした方がいいかな、どの段階でするんだ
- 欠損値の処理:欠損値のある特徴量がある場合、これらの欠損値を適切に処理することが重要です。欠損値を補完したり、欠損値を持つ行や列を削除したりすることが考えられます。
- 欠損値があるかしりたい
- Columns with missing values:
original_product_code 1
dtype: int64
- Accuracy: 0.5628815628815629Precision: 0.5315840001950268Recall: 0.5628815628815629F1 Score: 0.5259812765847905ROC AUC Score: 0.7550416088309229この評価を解説して
- モデルの評価をして
- これをベースモデルとしたい。LightGBMで上位モデルを作りたい。
- TypeError: Expected np.float32 or np.float64, met type(int64)
- [LightGBM] [Info] Auto-choosing row-wise multi-threading, the overhead of testing was 0.003599 seconds.
You can set `force_row_wise=true` to remove the overhead.
And if memory is not enough, you can set `force_col_wise=true`.
[LightGBM] [Info] Total Bins 946
[LightGBM] [Info] Number of data points in the train set: 3274, number of used features: 177
[LightGBM] [Info] Start training from score 91.301161
LightGBM Model Mean Squared Error: 585.9378473822233
- from lightgbm import LGBMRegressor
from sklearn.metrics import mean_squared_error
# LightGBMモデルの作成とトレーニング
X_train = X_train.astype(float)
X_test = X_test.astype(float)
lgbm_model = LGBMRegressor()
lgbm_model.fit(X_train, y_train)
# テストセットでの予測
y_pred_lgbm = lgbm_model.predict(X_test)
from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score, roc_auc_score
# 分類モデルの評価
y_pred_lgbm_class = [1 if pred > 0.5 else 0 for pred in y_pred_lgbm] # LightGBMの予測確率をクラスに変換
accuracy = accuracy_score(y_test, y_pred_lgbm_class)
precision = precision_score(y_test, y_pred_lgbm_class)
recall = recall_score(y_test, y_pred_lgbm_class)
f1 = f1_score(y_test, y_pred_lgbm_class)
roc_auc = roc_auc_score(y_test, y_pred_lgbm)
print(“Accuracy:", accuracy)
print(“Precision:", precision)
print(“Recall:", recall)
print(“F1 Score:", f1)
print(“ROC AUC Score:", roc_auc)
- ベースラインモデルでは、なにを目的としたらいいの
- ベースラインモデルは、パラメータチューニングとかした方がいいの?
- sklearnの初期設定で、ベースラインモデルをつくって、そこからブースティング系にした方がいいかな
- 基本は、ランダムフォレストでベースラインモデルを作って、ブースティング系かニューラルネットワークでモデルを作る方が実用的なモデルが出来そうだね
- ベースモデル以外のモデルをなんていうの?
- SQLが限られたメモリでも、遅くても動作する理由
- ブースティング系ではなく、ランダムフォレストを使うメリットはなに?
- 要は、テストとしてランダムフォレストで試してみて、その後に、ブースティング系で処理する方がいいのかな
- ベースラインモデルをランダムフォレストを使うのはなぜ?
- ベースラインモデルに適したアンサンブル学習
- ブースティングがベースラインモデルに適さない理由
- ニューラルネットワークとディープラーニングってどうちがうの?
- 転移学習ってなに
- 自分のPCだと、ニューラルネットワークでモデルを作ろうとするとメモリーのエラーになってしまう。何かいいサービスはないか?
- Googleは機械学習やディープラーニングのトレーニングに使用できるサービスはあるの?
- ニューラルネットワークで64GBのメモリーでエラーになるんだけど
- googleのbigqueryってなんなの?
- Google BigQueryはおもにSQLを実行するためのもの?
- Google BigQueryは機械学習とかはここではできないの?
- ランダムフォレストとブースティング系でアンサンブル学習で多クラス分類するサンプルコード
- XとYだけできていれば、ランダムフォレスト、ブースティング(LightGBM、catboost,xgboost)を全て試せる?
- 機械学習には、ニューラルネットワークは深層学習と定義されているでしょ。ランダムフォレストは何と定義されているの?
- 数値のカラムはエンコーディングする必要は無い?
- ランダムフォレストやブースティング系は勝手に標準化してくれないの?
- どんな場合に標準化必要なの?具体的なアルゴリズムおしえて
- 距離ベースのモデルってクラスタリングってこと?
- 説明変数と目的変数だけ用意して、ひとまず全てのアルゴリズムを試すことって出来るのかな?
- 実際にやってみないと分からなくない?ランダムフォレストがいいのか、Lightgbtがいいのか
- 精度重視ならブースティング?
- ブースティングより高精度なものは?
- アンサンブル学習のサンプルコード
- 予測(回帰)以外に、分類でアンサンブル学習はできる?二値分類と、多クラス分類
- ランダムフォレストとブースティング系を組み合わせたアンサンブル学習で、多クラス分類はできる?
- スケーリングの観点からみてどう?
- カテゴリ変数から、数値に変える作業をなんて言うの?
- それは、パンダスでできるよね
- そのメソッドを使って数値を変換したらどうなる?
- 7:3に分けてテストする機能追加して
- あとAUCも追加
- import pandas as pd
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score, classification_report
from imblearn.combine import SMOTETomek
from sklearn.metrics import make_scorer, precision_score, recall_score, f1_score
from sklearn.model_selection import StratifiedKFold, cross_validate
from sklearn.impute import SimpleImputer
from sklearn.model_selection import train_test_split
from sklearn.metrics import roc_auc_score, roc_curve
# データ読み込み
data = pd.read_csv(“/home/share/temp/20230301-20240331_site_zaiko_suii.csv",encoding="cp932″)
# 特徴量と目的変数の選択
X = data.drop([“SKU","原価", “商品名", “ブランド名", “メーカー名"], axis=1)
y = X.iloc[:, -1].apply(lambda x: 0 if x < 0 else 1)
X = X.iloc[:, :-1]
# 欠損値を補完するImputerを定義
imputer = SimpleImputer(strategy=’mean’)
# 欠損値を補完
X = imputer.fit_transform(X)
# オーバーサンプリングとアンダーサンプリングを組み合わせる
smt = SMOTETomek(random_state=42)
X, y = smt.fit_resample(X, y)
# # オーバーサンプリング手法を選択
# smt = SMOTE(random_state=42)
# X, y = smt.fit_resample(X, y)
# データをトレーニングセットとテストセットに分割(70%をトレーニング、30%をテスト)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# ランダムフォレストモデルの定義とトレーニング(トレーニングデータを使用)
rf_classifier = RandomForestClassifier(n_estimators=30, random_state=42)
rf_classifier.fit(X_train, y_train)
# テストデータで予測
y_pred_test = rf_classifier.predict(X_test)
# テストデータの性能評価
accuracy_test = accuracy_score(y_test, y_pred_test)
print(“Test Accuracy:", accuracy_test)
print(“nTest Classification Report:")
print(classification_report(y_test, y_pred_test))
# AUCを計算
# テストデータでの予測確率を取得
y_pred_proba_test = rf_classifier.predict_proba(X_test)[:, 1]
auc_score = roc_auc_score(y_test, y_pred_proba_test)
print(“AUC Score:", auc_score)
# 評価指標の定義(Precision, Recall, F1-score)
scoring = {'precision’: make_scorer(precision_score),
'recall’: make_scorer(recall_score),
'f1_score’: make_scorer(f1_score)}
# 層化k分割交差検証を実行
cv = StratifiedKFold(n_splits=5, shuffle=True, random_state=42)
cv_results = cross_validate(rf_classifier, X, y, cv=cv, scoring=scoring)
# 結果の表示
print(“Precision:", cv_results['test_precision’])
print(“Recall:", cv_results['test_recall’])
print(“F1-score:", cv_results['test_f1_score’])
import numpy as np
# 交差検証の結果からPrecision、Recall、F1-scoreの標準偏差を計算
precision_std = np.std(cv_results['test_precision’])
recall_std = np.std(cv_results['test_recall’])
f1_score_std = np.std(cv_results['test_f1_score’])
# 結果の表示
print(“Precision Standard Deviation:", precision_std)
print(“Recall Standard Deviation:", recall_std)
print(“F1-score Standard Deviation:", f1_score_std)
ちなみに、上記は二値分類だよね?
- 現状のRFで良い結果が出ていれば、ほかのブースティング系にする必要はない?
- import pandas as pd
from sklearn.svm import SVC
from sklearn.metrics import accuracy_score, classification_report
from imblearn.combine import SMOTETomek
from sklearn.metrics import make_scorer, precision_score, recall_score, f1_score
from sklearn.model_selection import StratifiedKFold, cross_validate
from sklearn.impute import SimpleImputer
import numpy as np
# データ読み込み
data = pd.read_csv(“/home/share/temp/20230301-20240331_site_zaiko_suii.csv", encoding="cp932″)
# 特徴量と目的変数の選択
X = data.drop([“SKU","原価", “商品名", “ブランド名", “メーカー名"], axis=1)
y = X.iloc[:, -1].apply(lambda x: 0 if x < 0 else 1)
X = X.iloc[:, :-1]
# 欠損値を補完するImputerを定義
imputer = SimpleImputer(strategy=’mean’)
# 欠損値を補完
X = imputer.fit_transform(X)
# オーバーサンプリングとアンダーサンプリングを組み合わせる
smt = SMOTETomek(random_state=42)
X_resampled, y_resampled = smt.fit_resample(X, y)
# SVCモデルの定義
svc_classifier = SVC()
# モデルのトレーニング
svc_classifier.fit(X_resampled, y_resampled)
# モデルの性能評価
y_pred = svc_classifier.predict(X_resampled)
accuracy = accuracy_score(y_resampled, y_pred)
print(“Accuracy:", accuracy)
print(“nClassification Report:")
print(classification_report(y_resampled, y_pred))
# 評価指標の定義(Precision, Recall, F1-score)
scoring = {'precision’: make_scorer(precision_score),
'recall’: make_scorer(recall_score),
'f1_score’: make_scorer(f1_score)}
# 層化k分割交差検証を実行
cv = StratifiedKFold(n_splits=5, shuffle=True, random_state=42)
cv_results = cross_validate(svc_classifier, X_resampled, y_resampled, cv=cv, scoring=scoring)
# 結果の表示
print(“Precision:", cv_results['test_precision’])
print(“Recall:", cv_results['test_recall’])
print(“F1-score:", cv_results['test_f1_score’])
# 交差検証の結果からPrecision、Recall、F1-scoreの標準偏差を計算
precision_std = np.std(cv_results['test_precision’])
recall_std = np.std(cv_results['test_recall’])
f1_score_std = np.std(cv_results['test_f1_score’])
# 結果の表示
print(“Precision Standard Deviation:", precision_std)
print(“Recall Standard Deviation:", recall_std)
print(“F1-score Standard Deviation:", f1_score_std)
AUC追加して
- import pandas as pd
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score, classification_report
from imblearn.combine import SMOTETomek
from sklearn.metrics import make_scorer, precision_score, recall_score, f1_score
from sklearn.model_selection import StratifiedKFold, cross_validate
from sklearn.impute import SimpleImputer
from sklearn.model_selection import train_test_split
from sklearn.metrics import roc_auc_score, roc_curve
# データ読み込み
data = pd.read_csv(“/home/share/temp/20230301-20240331_site_zaiko_suii.csv",encoding="cp932″)
# 特徴量と目的変数の選択
X = data.drop([“SKU","原価", “商品名", “ブランド名", “メーカー名"], axis=1)
y = X.iloc[:, -1].apply(lambda x: 0 if x < 0 else 1)
X = X.iloc[:, :-1]
# 欠損値を補完するImputerを定義
imputer = SimpleImputer(strategy=’mean’)
# 欠損値を補完
X = imputer.fit_transform(X)
# オーバーサンプリングとアンダーサンプリングを組み合わせる
smt = SMOTETomek(random_state=42)
X, y = smt.fit_resample(X, y)
# データをトレーニングセットとテストセットに分割(70%をトレーニング、30%をテスト)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# ランダムフォレストモデルの定義とトレーニング(トレーニングデータを使用)
rf_classifier = RandomForestClassifier(n_estimators=100, random_state=42)
rf_classifier.fit(X_train, y_train)
# テストデータで予測
y_pred_test = rf_classifier.predict(X_test)
# テストデータの性能評価
accuracy_test = accuracy_score(y_test, y_pred_test)
print(“Test Accuracy:", accuracy_test)
print(“nTest Classification Report:")
print(classification_report(y_test, y_pred_test))
# AUCを計算
# テストデータでの予測確率を取得
y_pred_proba_test = rf_classifier.predict_proba(X_test)[:, 1]
auc_score = roc_auc_score(y_test, y_pred_proba_test)
print(“AUC Score:", auc_score)
# 評価指標の定義(Precision, Recall, F1-score)
scoring = {'precision’: make_scorer(precision_score),
'recall’: make_scorer(recall_score),
'f1_score’: make_scorer(f1_score)}
# 層化k分割交差検証を実行
cv = StratifiedKFold(n_splits=5, shuffle=True, random_state=42)
cv_results = cross_validate(rf_classifier, X, y, cv=cv, scoring=scoring)
# 結果の表示
print(“Precision:", cv_results['test_precision’])
print(“Recall:", cv_results['test_recall’])
print(“F1-score:", cv_results['test_f1_score’])
import numpy as np
# 交差検証の結果からPrecision、Recall、F1-scoreの標準偏差を計算
precision_std = np.std(cv_results['test_precision’])
recall_std = np.std(cv_results['test_recall’])
f1_score_std = np.std(cv_results['test_f1_score’])
# 結果の表示
print(“Precision Standard Deviation:", precision_std)
print(“Recall Standard Deviation:", recall_std)
print(“F1-score Standard Deviation:", f1_score_std)
これでLightGBMもくれ
- RFよりSVMのほうが精度良くなかったじゃん。なんでだと思う?
- スケーリングだめだった?
- import pandas as pd
from sklearn.svm import SVC
from sklearn.metrics import accuracy_score, classification_report, roc_auc_score
from imblearn.combine import SMOTETomek
from sklearn.metrics import make_scorer, precision_score, recall_score, f1_score
from sklearn.model_selection import StratifiedKFold, cross_validate
from sklearn.impute import SimpleImputer
import numpy as np
# データ読み込み
data = pd.read_csv(“/home/share/temp/20230301-20240331_site_zaiko_suii.csv", encoding="cp932″)
# 特徴量と目的変数の選択
X = data.drop([“SKU","原価", “商品名", “ブランド名", “メーカー名"], axis=1)
y = X.iloc[:, -1].apply(lambda x: 0 if x < 0 else 1)
X = X.iloc[:, :-1]
# 欠損値を補完するImputerを定義
imputer = SimpleImputer(strategy=’mean’)
# 欠損値を補完
X = imputer.fit_transform(X)
# オーバーサンプリングとアンダーサンプリングを組み合わせる
smt = SMOTETomek(random_state=42)
X_resampled, y_resampled = smt.fit_resample(X, y)
# SVCモデルの定義
svc_classifier = SVC(probability=True) # AUCを計算するためにprobabilityをTrueに設定
# モデルのトレーニング
svc_classifier.fit(X_resampled, y_resampled)
# モデルの性能評価
y_pred = svc_classifier.predict(X_resampled)
accuracy = accuracy_score(y_resampled, y_pred)
print(“Accuracy:", accuracy)
print(“nClassification Report:")
print(classification_report(y_resampled, y_pred))
# AUCスコアを計算
y_pred_proba = svc_classifier.predict_proba(X_resampled)[:, 1]
auc_score = roc_auc_score(y_resampled, y_pred_proba)
print(“AUC Score:", auc_score)
# 評価指標の定義(Precision, Recall, F1-score)
scoring = {'precision’: make_scorer(precision_score),
'recall’: make_scorer(recall_score),
'f1_score’: make_scorer(f1_score)}
# 層化k分割交差検証を実行
cv = StratifiedKFold(n_splits=3, shuffle=True, random_state=42)
cv_results = cross_validate(svc_classifier, X_resampled, y_resampled, cv=cv, scoring=scoring)
# 結果の表示
print(“Precision:", cv_results['test_precision’])
print(“Recall:", cv_results['test_recall’])
print(“F1-score:", cv_results['test_f1_score’])
# 交差検証の結果からPrecision、Recall、F1-scoreの標準偏差を計算
precision_std = np.std(cv_results['test_precision’])
recall_std = np.std(cv_results['test_recall’])
f1_score_std = np.std(cv_results['test_f1_score’])
# 結果の表示
print(“Precision Standard Deviation:", precision_std)
print(“Recall Standard Deviation:", recall_std)
print(“F1-score Standard Deviation:", f1_score_std)
これじゃだめ?
- SVMは時間かかるんだね
- 基本、学習に時間がかかるモデルは、実際の予測も時間かかる?
- SVMMnisitara一気に性能が悪化した。
- 二値分類でおすすめのアンサンブル学習ある?
- LightGBM
- 1がポジティブと強制的に定義できる?特定のクラスをポジティブとして定義
- 各評価指標の分散も確認することが重要
- 評価指標のばらつきを評価するのは標準偏差でもいい?
- 標準偏差を計算して、交差検証の結果から評価指標のばらつきを確認するコードに組み込みたい
- y = X.iloc[:, -1].apply(lambda x: 1 if x < 0 else 0)
これ良く分からないから説明して
- 売り切れ(0以下)のサンプルが9割以上なんだけど、大丈夫かな
- モデルの性能は非常に高いものの、データの不均衡性やトレーニングデータとテストデータの分割方法に関する懸念
- 交互検証したい、コード頂戴
- Precision(適合率)、Recall(再現率)、F1-score(F1スコア)などの適切な評価指標を使用する理由
- 分割せずにモデルをトレーニングする
- 例えば、梱包サイズを多クラス分類する際、原価情報を、安い、やや安い、高い、とても高い に変換してから学習させたほうがいいかな?
- 原価の数値より、文字(「安い」「やや安い」「高い」「とても高い」)の方がモデル学習にいいってこと?
- 在庫切れ発生するか否かの二値分類モデルを作りたい
- ランダムフォレストを使用して在庫切れの発生を予測するためのサンプルコード
- np.argmax(class_probabilities)ってなに
- IndexError Traceback (most recent call last)
Cell In[125], line 16
13 predicted_class = np.argmax(class_probabilities)
15 # 予測確率を特徴量として追加
—> 16 X_test_with_nb_pred_proba[f’nb_pred_proba_{best_model.classes_[i]}’] = class_probabilities
File /home/share/temp/venv/lib/python3.8/site-packages/scipy/sparse/_index.py:97, in IndexMixin.__setitem__(self, key, x)
96 def __setitem__(self, key, x):
—> 97 row, col = self._validate_indices(key)
99 if isinstance(row, INT_TYPES) and isinstance(col, INT_TYPES):
100 x = np.asarray(x, dtype=self.dtype)
File /home/share/temp/venv/lib/python3.8/site-packages/scipy/sparse/_index.py:159, in IndexMixin._validate_indices(self, key)
157 row += M
158 elif not isinstance(row, slice):
–> 159 row = self._asindices(row, M)
161 if isintlike(col):
162 col = int(col)
File /home/share/temp/venv/lib/python3.8/site-packages/scipy/sparse/_index.py:183, in IndexMixin._asindices(self, idx, length)
180 raise IndexError('invalid index’) from e
182 if x.ndim not in (1, 2):
–> 183 raise IndexError('Index dimension must be 1 or 2’)
185 if x.size == 0:
186 return x
IndexError: Index dimension must be 1 or 2
- X_test_with_nb_pred_proba がスパース行列である場合、正しいインデックス指定方法
- IndexError: Index dimension must be 1 or 2
- IndexError: Index dimension must be 1 or 2
- ランダムフォレストで梱包サイズを推測したい。でも制度が悪いから、ナイーブベイスで梱包サイズを推測して、それを説明変数にするのはだめかな?
目的変数を別のモデルで求めて説明変数として使う
- DXとは
- ナイーブベイスは、数字入れない方がいい?
- predict_proba メソッドは、各クラス(商品サイズ)に対する予測確率を返す?
- Sub CombineSheets()
Dim ws As Worksheet
Dim combinedSheet As Worksheet
Dim lastRow As Long
Dim targetRow As Long
Dim headerRow As Range
Dim dataRange As Range
Dim cell As Range
' 結合先のシートを作成または指定します
Set combinedSheet = ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
combinedSheet.Name = “CombinedData"
' 各シートのデータを結合先のシートにコピーして貼り付けます
targetRow = 1 ' 結合先の最初の行
For Each ws In ThisWorkbook.Worksheets
If ws.Name <> combinedSheet.Name Then
lastRow = ws.Cells(ws.Rows.Count, “A").End(xlUp).Row
' ヘッダー行を検索
For Each cell In ws.Rows(1).Cells
If cell.Value = “JAN" Then
Set headerRow = cell.EntireRow
Exit For
End If
Next cell
If Not headerRow Is Nothing Then
' ヘッダー行を除いたデータの範囲を設定
Set dataRange = ws.Range(“A" & headerRow.Row + 1 & “:D" & lastRow)
' ヘッダー行を含むデータをコピー
dataRange.Copy combinedSheet.Cells(targetRow, 1)
' 次の結合先の行を更新
targetRow = targetRow + dataRange.Rows.Count
End If
End If
Next ws
End Sub
これをアクティブなワークブックにしたい
- ナイーブベイスでsizeを分類するでしょ。分類したsizeデータを説明変数としてランダムフォレストへ渡して新たな説明変数に加えたいの。
- MultinomialNBはカテゴリデータを直接渡せないんか
- VBAで複数のシートを1枚のシートにconcatしたい
- Sub CombineSheets()
Dim ws As Worksheet
Dim combinedSheet As Worksheet
Dim lastRow As Long
' 結合先のシートを作成または指定します
Set combinedSheet = ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
combinedSheet.Name = “CombinedData"
' 各シートのデータを結合先のシートにコピーして貼り付けます
For Each ws In ThisWorkbook.Worksheets
If ws.Name <> combinedSheet.Name Then
lastRow = combinedSheet.Cells(combinedSheet.Rows.Count, “A").End(xlUp).Row
ws.UsedRange.Copy combinedSheet.Cells(lastRow + 1, 1)
End If
Next ws
End Sub
解説して
- 各シートのデータを結合先のシートにコピーして貼り付ける VBA
- ナイーブベイスで、梱包サイズの多クラス分類できるのかな
- カテゴリカルデータの場合、ナイーブベイズは適切な選択肢
- めちゃくちゃ精度わるい。
Accuracy: 0.43333333333333335
Precision: 0.49505318105939866
Recall: 0.43333333333333335
F1 Score: 0.4521795955977239
precision recall f1-score support
60 0.77 0.52 0.62 314
80 0.33 0.44 0.37 117
100 0.36 0.37 0.36 155
120 0.37 0.41 0.39 122
140 0.19 0.27 0.22 60
160 0.23 0.36 0.28 42
accuracy 0.43 810
macro avg 0.37 0.39 0.37 810
weighted avg 0.50 0.43 0.45 810
- X_product_name(商品名)を利用して特徴量を生成し、その特徴量を用いてナイーブベイズ分類器を構築するサンプルコード
- カテゴリがidなんだけど、日本語にしたもので学習させたほうがいい?
- カテゴリカルなデータは数値データより、日本語がいいんだな
- 画像のダウンロードができた。この画像を使って商品サイズを多クラス分類するニューラルネットワークをつくる
- TensorFlowで画像分類モデルを構築するサンプルコード
- 画像はTensorFlowでどうやって読み込ませるの?
- ナイーブベイスで梱包サイズを多クラス分類したいんだけど、メーカー品番は不要かな?
- 生成モデルを使用してデータを増やす場合、オーバーサンプリングやアンダーサンプリングと似た結果になるだけだと思うが
- 大してモデルの精度を向上できない精度60%位までが限界の状態。。どうしたらよいか。
- ナイーブベイスってなんだっけ
- 1次元のものは、標準化してはいけない?
- Precision、Recall、F1 Score、そしてクラスごとの性能を確認
- パラメーターチューニングして
- クラスの不均衡は、オーバーサンプリングしようがアンダーサンプリングしようが、大して精度に影響はなかった。
そもそものデータ数が少ない事が原因だろうか?
- 生成モデルの利用って、その生成したデータは正しいのか?
- 多クラス分類問題としてモデル構築
- Xは説明変数の行列であり、yは目的変数の列ベクトル
- 0 100.0
1 120.0
2 80.0
3 80.0
4 100.0
…
4043 80.0
4044 160.0
4045 120.0
4046 140.0
4047 160.0
- —————————————————————————
InvalidArgumentError Traceback (most recent call last)
Cell In[232], line 42
39 model.compile(optimizer=’adam’, loss=’sparse_categorical_crossentropy’, metrics=['accuracy’])
41 # モデルのトレーニング
—> 42 model.fit(X_train, y_train, epochs=10, batch_size=32, validation_data=(X_test, y_test))
44 # モデルの評価
45 loss, accuracy = model.evaluate(X_test, y_test)
File /home/share/temp/venv/lib/python3.8/site-packages/keras/src/utils/traceback_utils.py:70, in filter_traceback.<locals>.error_handler(*args, **kwargs)
67 filtered_tb = _process_traceback_frames(e.__traceback__)
68 # To get the full stack trace, call:
69 # `tf.debugging.disable_traceback_filtering()`
—> 70 raise e.with_traceback(filtered_tb) from None
71 finally:
72 del filtered_tb
File /home/share/temp/venv/lib/python3.8/site-packages/tensorflow/python/eager/execute.py:53, in quick_execute(op_name, num_outputs, inputs, attrs, ctx, name)
51 try:
52 ctx.ensure_initialized()
—> 53 tensors = pywrap_tfe.TFE_Py_Execute(ctx._handle, device_name, op_name,
54 inputs, attrs, num_outputs)
55 except core._NotOkStatusException as e:
56 if name is not None:
…
File “/home/share/temp/venv/lib/python3.8/site-packages/keras/src/backend.py", line 5762, in sparse_categorical_crossentropy
res = tf.nn.sparse_softmax_cross_entropy_with_logits(
Node: 'sparse_categorical_crossentropy/SparseSoftmaxCrossEntropyWithLogits/SparseSoftmaxCrossEntropyWithLogits’
Received a label value of 160 which is outside the valid range of [0, 6). Label values: 100 60 100 100 120 80 60 60 60 120 60 120 160 120 60 60 60 100 60 100 80 100 60 60 100 160 80 100 60 60 160 60
[[{{node sparse_categorical_crossentropy/SparseSoftmaxCrossEntropyWithLogits/SparseSoftmaxCrossEntropyWithLogits}}]] [Op:__inference_train_function_166480]
- np.unique(y_train)
array([ 60, 80, 100, 120, 140, 160])
- AttributeError: 'Series’ object has no attribute 'reshape’
- —————————————————————————
ValueError Traceback (most recent call last)
Cell In[134], line 111
107 rf_classifier.fit(X_rf, y_test)
110 # テストデータでの予測を取得
–> 111 y_pred_rf = rf_classifier.predict(X_test)
113 # 分類器の評価
114 accuracy_rf = accuracy_score(y_test, y_pred_rf)
File /home/share/temp/venv/lib/python3.8/site-packages/sklearn/ensemble/_forest.py:823, in ForestClassifier.predict(self, X)
802 def predict(self, X):
803 “""
804 Predict class for X.
805
(…)
821 The predicted classes.
822 “""
–> 823 proba = self.predict_proba(X)
825 if self.n_outputs_ == 1:
826 return self.classes_.take(np.argmax(proba, axis=1), axis=0)
File /home/share/temp/venv/lib/python3.8/site-packages/sklearn/ensemble/_forest.py:865, in ForestClassifier.predict_proba(self, X)
863 check_is_fitted(self)
864 # Check data
–> 865 X = self._validate_X_predict(X)
…
416 f"X has {n_features} features, but {self.__class__.__name__} "
417 f"is expecting {self.n_features_in_} features as input."
418 )
ValueError: X has 58302 features, but RandomForestClassifier is expecting 58303 features as input.
- Best Parameters: {'classifier__alpha’: 0.01, 'classifier__fit_prior’: False}
Accuracy: 0.6734366648850882
precision recall f1-score support
60 0.63 0.70 0.66 303
80 0.61 0.61 0.61 335
100 0.62 0.47 0.54 289
120 0.73 0.69 0.71 326
140 0.64 0.79 0.70 304
160 0.82 0.77 0.80 314
accuracy 0.67 1871
macro avg 0.67 0.67 0.67 1871
weighted avg 0.68 0.67 0.67 1871
Random Forest Accuracy: 0.9706039551042224
Random Forest Classification Report:
precision recall f1-score support
60 1.00 1.00 1.00 303
80 0.94 0.98 0.96 335
100 0.99 0.95 0.97 289
120 1.00 0.98 0.99 326
140 0.95 0.95 0.95 304
160 0.95 0.96 0.96 314
…
accuracy 0.97 1871
macro avg 0.97 0.97 0.97 1871
weighted avg 0.97 0.97 0.97 1871
こんなに性能よくなるか?
- # 必要なライブラリのインポート
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import LabelEncoder
from keras.models import Sequential
from keras.layers import Dense
# データの読み込み
# data = pd.read_csv('your_data.csv’) # データのファイルパスを指定してください
# データの読み込み
data = pd.read_csv(r’/home/share/temp/shipping_size_traning.csv’)
# カテゴリカル変数のエンコード
category_label_encoder = LabelEncoder()
data['category_encoded’] = category_label_encoder.fit_transform(data['category’])
product_name_label_encoder = LabelEncoder()
data['product_name_encoded’] = product_name_label_encoder.fit_transform(data['product_name’])
product_maker_number_label_encoder = LabelEncoder()
data['product_maker_number_encoded’] = product_maker_number_label_encoder.fit_transform(data['product_maker_number’])
# 目的変数と説明変数の分割
X = data.drop(['size’, 'product_name’,"product_maker_number", 'original_product_code’], axis=1) # 説明変数
y = data['size’] # 目的変数
# 訓練データとテストデータに分割
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
X_train=X_train.astype(float)
X_test=X_test.astype(float)
y_train=y_train.astype(float)
y_test=y_test.astype(float)
# モデルの構築
model = Sequential([
Dense(64, activation=’relu’, input_shape=(X_train.shape[1],)),
Dense(64, activation=’relu’),
Dense(len(np.unique(y)), activation=’softmax’)
])
# モデルのコンパイル
model.compile(optimizer=’adam’, loss=’sparse_categorical_crossentropy’, metrics=['accuracy’])
# モデルのトレーニング
model.fit(X_train, y_train, epochs=10, batch_size=32, validation_data=(X_test, y_test))
# モデルの評価
loss, accuracy = model.evaluate(X_test, y_test)
print(“Test Loss:", loss)
print(“Test Accuracy:", accuracy)
- —————————————————————————
InvalidArgumentError Traceback (most recent call last)
Cell In[227], line 48
45 model.compile(optimizer=’adam’, loss=’sparse_categorical_crossentropy’, metrics=['accuracy’])
47 # モデルのトレーニング
—> 48 model.fit(X_train, y_train, epochs=10, batch_size=32, validation_data=(X_test, y_test))
50 # モデルの評価
51 loss, accuracy = model.evaluate(X_test, y_test)
File /home/share/temp/venv/lib/python3.8/site-packages/keras/src/utils/traceback_utils.py:70, in filter_traceback.<locals>.error_handler(*args, **kwargs)
67 filtered_tb = _process_traceback_frames(e.__traceback__)
68 # To get the full stack trace, call:
69 # `tf.debugging.disable_traceback_filtering()`
—> 70 raise e.with_traceback(filtered_tb) from None
71 finally:
72 del filtered_tb
File /home/share/temp/venv/lib/python3.8/site-packages/tensorflow/python/eager/execute.py:53, in quick_execute(op_name, num_outputs, inputs, attrs, ctx, name)
51 try:
52 ctx.ensure_initialized()
—> 53 tensors = pywrap_tfe.TFE_Py_Execute(ctx._handle, device_name, op_name,
54 inputs, attrs, num_outputs)
55 except core._NotOkStatusException as e:
56 if name is not None:
InvalidArgumentError: Graph execution error:
Detected at node 'sparse_categorical_crossentropy/SparseSoftmaxCrossEntropyWithLogits/SparseSoftmaxCrossEntropyWithLogits’ defined at (most recent call last):
File “/usr/lib/python3.8/runpy.py", line 194, in _run_module_as_main
return _run_code(code, main_globals, None,
File “/usr/lib/python3.8/runpy.py", line 87, in _run_code
exec(code, run_globals)
File “/home/share/temp/venv/lib/python3.8/site-packages/ipykernel_launcher.py", line 18, in <module>
app.launch_new_instance()
File “/home/share/temp/venv/lib/python3.8/site-packages/traitlets/config/application.py", line 1075, in launch_instance
app.start()
File “/home/share/temp/venv/lib/python3.8/site-packages/ipykernel/kernelapp.py", line 739, in start
self.io_loop.start()
File “/home/share/temp/venv/lib/python3.8/site-packages/tornado/platform/asyncio.py", line 205, in start
self.asyncio_loop.run_forever()
File “/usr/lib/python3.8/asyncio/base_events.py", line 570, in run_forever
self._run_once()
File “/usr/lib/python3.8/asyncio/base_events.py", line 1859, in _run_once
handle._run()
File “/usr/lib/python3.8/asyncio/events.py", line 81, in _run
self._context.run(self._callback, *self._args)
File “/home/share/temp/venv/lib/python3.8/site-packages/ipykernel/kernelbase.py", line 542, in dispatch_queue
await self.process_one()
File “/home/share/temp/venv/lib/python3.8/site-packages/ipykernel/kernelbase.py", line 531, in process_one
await dispatch(*args)
File “/home/share/temp/venv/lib/python3.8/site-packages/ipykernel/kernelbase.py", line 437, in dispatch_shell
await result
File “/home/share/temp/venv/lib/python3.8/site-packages/ipykernel/ipkernel.py", line 359, in execute_request
await super().execute_request(stream, ident, parent)
File “/home/share/temp/venv/lib/python3.8/site-packages/ipykernel/kernelbase.py", line 775, in execute_request
reply_content = await reply_content
File “/home/share/temp/venv/lib/python3.8/site-packages/ipykernel/ipkernel.py", line 446, in do_execute
res = shell.run_cell(
File “/home/share/temp/venv/lib/python3.8/site-packages/ipykernel/zmqshell.py", line 549, in run_cell
return super().run_cell(*args, **kwargs)
File “/home/share/temp/venv/lib/python3.8/site-packages/IPython/core/interactiveshell.py", line 3009, in run_cell
result = self._run_cell(
File “/home/share/temp/venv/lib/python3.8/site-packages/IPython/core/interactiveshell.py", line 3064, in _run_cell
result = runner(coro)
File “/home/share/temp/venv/lib/python3.8/site-packages/IPython/core/async_helpers.py", line 129, in _pseudo_sync_runner
coro.send(None)
File “/home/share/temp/venv/lib/python3.8/site-packages/IPython/core/interactiveshell.py", line 3269, in run_cell_async
has_raised = await self.run_ast_nodes(code_ast.body, cell_name,
File “/home/share/temp/venv/lib/python3.8/site-packages/IPython/core/interactiveshell.py", line 3448, in run_ast_nodes
if await self.run_code(code, result, async_=asy):
File “/home/share/temp/venv/lib/python3.8/site-packages/IPython/core/interactiveshell.py", line 3508, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File “/tmp/ipykernel_11711/3802099017.py", line 48, in <module>
model.fit(X_train, y_train, epochs=10, batch_size=32, validation_data=(X_test, y_test))
File “/home/share/temp/venv/lib/python3.8/site-packages/keras/src/utils/traceback_utils.py", line 65, in error_handler
return fn(*args, **kwargs)
File “/home/share/temp/venv/lib/python3.8/site-packages/keras/src/engine/training.py", line 1742, in fit
tmp_logs = self.train_function(iterator)
File “/home/share/temp/venv/lib/python3.8/site-packages/keras/src/engine/training.py", line 1338, in train_function
return step_function(self, iterator)
File “/home/share/temp/venv/lib/python3.8/site-packages/keras/src/engine/training.py", line 1322, in step_function
outputs = model.distribute_strategy.run(run_step, args=(data,))
File “/home/share/temp/venv/lib/python3.8/site-packages/keras/src/engine/training.py", line 1303, in run_step
outputs = model.train_step(data)
File “/home/share/temp/venv/lib/python3.8/site-packages/keras/src/engine/training.py", line 1081, in train_step
loss = self.compute_loss(x, y, y_pred, sample_weight)
File “/home/share/temp/venv/lib/python3.8/site-packages/keras/src/engine/training.py", line 1139, in compute_loss
return self.compiled_loss(
File “/home/share/temp/venv/lib/python3.8/site-packages/keras/src/engine/compile_utils.py", line 265, in __call__
loss_value = loss_obj(y_t, y_p, sample_weight=sw)
File “/home/share/temp/venv/lib/python3.8/site-packages/keras/src/losses.py", line 142, in __call__
losses = call_fn(y_true, y_pred)
File “/home/share/temp/venv/lib/python3.8/site-packages/keras/src/losses.py", line 268, in call
return ag_fn(y_true, y_pred, **self._fn_kwargs)
File “/home/share/temp/venv/lib/python3.8/site-packages/keras/src/losses.py", line 2354, in sparse_categorical_crossentropy
return backend.sparse_categorical_crossentropy(
File “/home/share/temp/venv/lib/python3.8/site-packages/keras/src/backend.py", line 5762, in sparse_categorical_crossentropy
res = tf.nn.sparse_softmax_cross_entropy_with_logits(
Node: 'sparse_categorical_crossentropy/SparseSoftmaxCrossEntropyWithLogits/SparseSoftmaxCrossEntropyWithLogits’
Received a label value of 140 which is outside the valid range of [0, 6). Label values: 60 60 60 60 80 60 100 60 60 100 100 60 120 60 120 100 80 140 80 140 140 60 120 120 100 60 80 100 100 60 60 140
[[{{node sparse_categorical_crossentropy/SparseSoftmaxCrossEntropyWithLogits/SparseSoftmaxCrossEntropyWithLogits}}]] [Op:__inference_train_function_164524]
- X_testは、ナイーブベイス用に下処理されたものを使っているよね。
ランダムフォレストもその特徴量を全て使わないといけないってこと?
- rf_classifier = RandomForestClassifier() # 必要に応じて適切なハイパーパラメータを設定してください
rf_classifier.fit(X_rf, y_test)に対する評価もして
- 具体的にどの特徴量が足りていないのか、おおいのか判定できる?
- じゃあ何が原因だろうか
- X_test_with_nb_pred_proba
(0, 566)0
(0, 2642)0
(0, 3256)0
(0, 3376)0
(0, 6006)0
(0, 6778)0
(0, 6853)0
(0, 6868)0
(0, 8486)0
(0, 10339)0
(0, 10985)0
(0, 11056)0
(0, 11061)0
(0, 11107)0
(0, 11117)0
(0, 11131)1
(0, 11200)1
(0, 11307)0
(0, 12145)0
(0, 14880)0
(0, 15759)2
(0, 19143)0
(0, 19781)0
(0, 19832)2
(0, 24705)0
…
(1870, 53405)1
(1870, 54234)1
(1870, 57675)1
(1870, 58023)1
- オーバーサンプリングとかの影響はない?
- もしかして、文字コードって関係ある?
- 行数が異なるのは関係ない?
- ValueError: X has 1561560 features, but MultinomialNB is expecting 88432 features as input.
この数値って何で決められるの?88432って
- このモデルを保存して、本番の予測につかったらいい?
- —————————————————————————
ValueError Traceback (most recent call last)
Cell In[3], line 47
36 X_combined = hstack([X_product_name_vectorized,
37 X_category_name_vectorized,
38 X_description_vectorized,
(…)
42 X_maker_name_japanese_vectorized,
43 X_supplier_name_vectorized])
46 # モデルを使用して予測を行う
—> 47 y_pred = rf_classifier.predict(X_combined)
49 # 予測結果をDataFrameに追加
50 data_to_predict['predicted_size’] = y_pred
File /home/share/temp/venv/lib/python3.8/site-packages/sklearn/ensemble/_forest.py:823, in ForestClassifier.predict(self, X)
802 def predict(self, X):
803 “""
804 Predict class for X.
805
(…)
821 The predicted classes.
822 “""
–> 823 proba = self.predict_proba(X)
825 if self.n_outputs_ == 1:
826 return self.classes_.take(np.argmax(proba, axis=1), axis=0)
…
416 f"X has {n_features} features, but {self.__class__.__name__} "
417 f"is expecting {self.n_features_in_} features as input."
418 )
ValueError: X has 560 features, but RandomForestClassifier is expecting 58373 features as input.
- 特徴量のカラムの数が違うっていう事?
- stopwordsを無視したい
- —————————————————————————
ValueError Traceback (most recent call last)
Cell In[173], line 79
76 print(X_combined.shape)
78 # ナイーブベイズモデルを使用して予測を行う
—> 79 y_predicted_nb = best_model.predict(X_combined)
81 # ランダムフォレストモデルを使用して予測を行う
82 # ナイーブベイズの予測を含む新しい特徴量を作成
83 nb_predictions = best_model.predict(X_combined)
File /home/share/temp/venv/lib/python3.8/site-packages/imblearn/pipeline.py:453, in Pipeline.predict(self, X, **params)
451 for _, name, transform in self._iter(with_final=False):
452 Xt = transform.transform(Xt)
–> 453 return self.steps[-1][1].predict(Xt, **params)
455 # metadata routing enabled
456 routed_params = process_routing(self, “predict", **params)
File /home/share/temp/venv/lib/python3.8/site-packages/sklearn/naive_bayes.py:101, in _BaseNB.predict(self, X)
87 “""
88 Perform classification on an array of test vectors X.
89
(…)
98 Predicted target values for X.
99 “""
100 check_is_fitted(self)
…
416 f"X has {n_features} features, but {self.__class__.__name__} "
417 f"is expecting {self.n_features_in_} features as input."
418 )
ValueError: X has 671617 features, but MultinomialNB is expecting 58302 features as input.
Output is truncated. View as a scrollable element or open in a text editor. Adjust cell output settings…
- —————————————————————————
ValueError Traceback (most recent call last)
Cell In[179], line 117
114 print(X_combined.shape)
116 # ナイーブベイズモデルを使用して予測を行う
–> 117 y_predicted_nb = best_model.predict(X_combined)
119 # ランダムフォレストモデルを使用して予測を行う
120 # ナイーブベイズの予測を含む新しい特徴量を作成
121 nb_predictions = best_model.predict(X_combined)
File /home/share/temp/venv/lib/python3.8/site-packages/imblearn/pipeline.py:453, in Pipeline.predict(self, X, **params)
451 for _, name, transform in self._iter(with_final=False):
452 Xt = transform.transform(Xt)
–> 453 return self.steps[-1][1].predict(Xt, **params)
455 # metadata routing enabled
456 routed_params = process_routing(self, “predict", **params)
File /home/share/temp/venv/lib/python3.8/site-packages/sklearn/naive_bayes.py:101, in _BaseNB.predict(self, X)
87 “""
88 Perform classification on an array of test vectors X.
89
(…)
98 Predicted target values for X.
99 “""
100 check_is_fitted(self)
…
416 f"X has {n_features} features, but {self.__class__.__name__} "
417 f"is expecting {self.n_features_in_} features as input."
418 )
ValueError: X has 671902 features, but MultinomialNB is expecting 58302 features as input.
- —————————————————————————
ValueError Traceback (most recent call last)
Cell In[183], line 153
150 print(X_combined.shape)
152 # ナイーブベイズモデルを使用して予測を行う
–> 153 y_predicted_nb = best_model.predict(X_combined)
155 # ランダムフォレストモデルを使用して予測を行う
156 # ナイーブベイズの予測を含む新しい特徴量を作成
157 nb_predictions = best_model.predict(X_combined)
File /home/share/temp/venv/lib/python3.8/site-packages/imblearn/pipeline.py:453, in Pipeline.predict(self, X, **params)
451 for _, name, transform in self._iter(with_final=False):
452 Xt = transform.transform(Xt)
–> 453 return self.steps[-1][1].predict(Xt, **params)
455 # metadata routing enabled
456 routed_params = process_routing(self, “predict", **params)
File /home/share/temp/venv/lib/python3.8/site-packages/sklearn/naive_bayes.py:101, in _BaseNB.predict(self, X)
87 “""
88 Perform classification on an array of test vectors X.
89
(…)
98 Predicted target values for X.
99 “""
100 check_is_fitted(self)
…
416 f"X has {n_features} features, but {self.__class__.__name__} "
417 f"is expecting {self.n_features_in_} features as input."
418 )
ValueError: X has 1561560 features, but MultinomialNB is expecting 58372 features as input.
Output is truncated. View as a scrollable element or open in a text editor. Adjust cell output settings…
- —————————————————————————
ValueError Traceback (most recent call last)
Cell In[186], line 50
40 X_combined = hstack([X_product_name_vectorized,
41 X_category_name_vectorized,
42 X_description_vectorized,
(…)
46 X_maker_name_japanese_vectorized,
47 X_supplier_name_vectorized])
49 # モデルを使用して予測を行う
—> 50 y_pred = rf_classifier.predict(X_combined)
52 # 予測結果をDataFrameに追加
53 data_to_predict['predicted_size’] = y_pred
File /home/share/temp/venv/lib/python3.8/site-packages/sklearn/ensemble/_forest.py:823, in ForestClassifier.predict(self, X)
802 def predict(self, X):
803 “""
804 Predict class for X.
805
(…)
821 The predicted classes.
822 “""
–> 823 proba = self.predict_proba(X)
825 if self.n_outputs_ == 1:
826 return self.classes_.take(np.argmax(proba, axis=1), axis=0)
…
416 f"X has {n_features} features, but {self.__class__.__name__} "
417 f"is expecting {self.n_features_in_} features as input."
418 )
ValueError: X has 1561560 features, but RandomForestClassifier is expecting 58373 features as input.
- stopwordsの設定をしたい
- CountVectorizer min_dfで対応したい
- —————————————————————————
ValueError Traceback (most recent call last)
Cell In[148], line 45
34 X_combined = hstack([X_product_name_vectorized,
35 X_category_name_vectorized,
36 X_description_vectorized,
(…)
41 X_supplier_name_vectorized
42 ])
44 # ナイーブベイズモデルを使用して予測を行う
—> 45 y_predicted_nb = best_model.predict(X_combined)
47 # ランダムフォレストモデルを使用して予測を行う
48 # ナイーブベイズの予測を含む新しい特徴量を作成
49 nb_predictions = best_model.predict(X_combined)
File /home/share/temp/venv/lib/python3.8/site-packages/imblearn/pipeline.py:453, in Pipeline.predict(self, X, **params)
451 for _, name, transform in self._iter(with_final=False):
452 Xt = transform.transform(Xt)
–> 453 return self.steps[-1][1].predict(Xt, **params)
455 # metadata routing enabled
456 routed_params = process_routing(self, “predict", **params)
File /home/share/temp/venv/lib/python3.8/site-packages/sklearn/naive_bayes.py:101, in _BaseNB.predict(self, X)
87 “""
88 Perform classification on an array of test vectors X.
…
971 )
973 if ensure_min_features > 0 and array.ndim == 2:
974 n_features = array.shape[1]
ValueError: Found array with 0 sample(s) (shape=(0, 560)) while a minimum of 1 is required by MultinomialNB.
- —————————————————————————
ValueError Traceback (most recent call last)
Cell In[150], line 45
34 X_combined = hstack([X_product_name_vectorized,
35 X_category_name_vectorized,
36 X_description_vectorized,
(…)
41 X_supplier_name_vectorized
42 ])
44 # ナイーブベイズモデルを使用して予測を行う
—> 45 y_predicted_nb = best_model.predict(X_combined)
47 # ランダムフォレストモデルを使用して予測を行う
48 # ナイーブベイズの予測を含む新しい特徴量を作成
49 nb_predictions = best_model.predict(X_combined)
File /home/share/temp/venv/lib/python3.8/site-packages/imblearn/pipeline.py:453, in Pipeline.predict(self, X, **params)
451 for _, name, transform in self._iter(with_final=False):
452 Xt = transform.transform(Xt)
–> 453 return self.steps[-1][1].predict(Xt, **params)
455 # metadata routing enabled
456 routed_params = process_routing(self, “predict", **params)
File /home/share/temp/venv/lib/python3.8/site-packages/sklearn/naive_bayes.py:101, in _BaseNB.predict(self, X)
87 “""
88 Perform classification on an array of test vectors X.
…
971 )
973 if ensure_min_features > 0 and array.ndim == 2:
974 n_features = array.shape[1]
ValueError: Found array with 0 sample(s) (shape=(0, 560)) while a minimum of 1 is required by MultinomialNB.
Output is truncated. View as a scrollable element or open in a text editor. Adjust cell output settings…
- shapeってどうやるの
- (0, 560)
- ValueError Traceback (most recent call last)
Cell In[154], line 26
23 vectorizer = CountVectorizer()
25 # CountVectorizerを使用してテキストデータをベクトル化
—> 26 X_product_name_vectorized = vectorizer.fit_transform(X_product_name)
27 X_category_name_vectorized = vectorizer.fit_transform(X_category_name)
28 X_description_vectorized = vectorizer.fit_transform(X_description)
File /home/share/temp/venv/lib/python3.8/site-packages/sklearn/base.py:1152, in _fit_context.<locals>.decorator.<locals>.wrapper(estimator, *args, **kwargs)
1145 estimator._validate_params()
1147 with config_context(
1148 skip_parameter_validation=(
1149 prefer_skip_nested_validation or global_skip_validation
1150 )
1151 ):
-> 1152 return fit_method(estimator, *args, **kwargs)
File /home/share/temp/venv/lib/python3.8/site-packages/sklearn/feature_extraction/text.py:1389, in CountVectorizer.fit_transform(self, raw_documents, y)
1381 warnings.warn(
1382 “Upper case characters found in"
1383 " vocabulary while 'lowercase'"
1384 " is True. These entries will not"
1385 " be matched with any documents"
1386 )
…
1297 )
1299 if indptr[-1] > np.iinfo(np.int32).max: # = 2**31 – 1
1300 if _IS_32BIT:
ValueError: empty vocabulary; perhaps the documents only contain stop words
- # CSVファイルを読み込む
data_to_predict = pd.read_csv(csv_file_path,encoding="cp932″)
# 欠損値を含む行を除外する
data_to_predict.dropna(subset=['category_name’], inplace=True)
どこかに欠損があれば該当行を全て削除したい
- 角度とラジアンって一緒?
- # ナイーブベイズの予測を含む新しい特徴量を作成
nb_predictions = best_model.predict(X_test)
X_rf = np.column_stack((X_test.toarray(), nb_predictions))
# ランダムフォレストのトレーニング
rf_classifier = RandomForestClassifier()
rf_classifier.fit(X_rf, y_test)
# テストデータでの予測と評価
y_pred_rf = rf_classifier.predict(X_rf)
accuracy_rf = accuracy_score(y_test, y_pred_rf)
print(“Random Forest Accuracy:", accuracy_rf)
print(“Random Forest Classification Report:")
print(classification_report(y_test, y_pred_rf))
AUCも出せる?
- —————————————————————————
AxisError Traceback (most recent call last)
Cell In[142], line 112
110 print(classification_report(y_test, y_pred_rf))
111 # AUCの計算
–> 112 auc_rf = roc_auc_score(y_test, y_pred_rf, multi_class=’ovr’) # 多クラスの場合は’multi_class’を指定
113 print(“Random Forest AUC:", auc_rf)
File /home/share/temp/venv/lib/python3.8/site-packages/sklearn/utils/_param_validation.py:214, in validate_params.<locals>.decorator.<locals>.wrapper(*args, **kwargs)
208 try:
209 with config_context(
210 skip_parameter_validation=(
211 prefer_skip_nested_validation or global_skip_validation
212 )
213 ):
–> 214 return func(*args, **kwargs)
215 except InvalidParameterError as e:
216 # When the function is just a wrapper around an estimator, we allow
217 # the function to delegate validation to the estimator, but we replace
218 # the name of the estimator by the name of the function in the error
219 # message to avoid confusion.
220 msg = re.sub(
221 r"parameter of w+ must be",
222 f"parameter of {func.__qualname__} must be",
223 str(e),
…
47 def _sum(a, axis=None, dtype=None, out=None, keepdims=False,
48 initial=_NoValue, where=True):
—> 49 return umr_sum(a, axis, dtype, out, keepdims, initial, where)
AxisError: axis 1 is out of bounds for array of dimension 1
Output is truncated. View as a scrollable element or open in a text editor. Adjust cell output settings…
- 欠損値処理が含まれているアルゴリズムを教えて
- サポートベクターマシンのカーネルの種類
- ガウスカーネルも使う事はできる?
- A = np.array([[1, 0]])
B = np.array([1, 0])
A @ B
この@ってなに
- アルゴリズムとモデルの違い
- 左辺と右辺とは
- ベクトルと行列とスカラーの違い
- 行列計算って何の意味あるの
- データエンジニアとは
- データサイエンティストとデータエンジニアの違い
- 機械学習エンジニアとデータサイエンティストの違い
- 機械学習エンジニアとAIエンジニアはちがうの?
- plt.boxplot(df[“利用回数"])
plt.show()
上記と下記の違い
df[“利用回数"].boxplot()
plt.show()
- 両者のサンプルコード作って
- pdのplotの種類
- df.apply()の使い方
- funcの引数は?
- サポートベクターマシンの内部には、欠損値を処理するアルゴリズムは含まれている?
- 離散確率分布とは
- 交通事故の発生回数の予測、機械部品の故障予測など、稀に生じる事象についてモデル化したい場合に用いられる、離散型の確率分布がポアソン分布だよね。
これのサンプルコードある?
- pandasデータフレームdfをNumPy配列に変換する処理
- 行列の足し算が出来ないパターンは?
- 情報利得、ジニ不純度、エントロピー、分類誤差、これらの違い
- 分割ってなに?trainとtestのこと?
- 決定木の不純度の指標
- matplotlibの使い方
- dataframeをmatplotlibで表示したい
- df[“利用料金"].hist()
plt.show()
こんなことできる?
- dataframeのvalue_countsメソッドとは
- pd.read_csvでカラム指定したい
- 2次元配列の行列の積の計算方法
- ジニ不純度
- pd.concatとpd.mergeの違い
- 不定積分
- ブートストラップ法
- Leave-One-Out法
- np.dotってなに
- 行列の掛け算
- 確率密度関数と確率の関係
- 確率変数の例
- k-means法
- 線形判別分析(LDA)
- t-SNE
- ランダムフォレストは、欠損値処理をしなくても分類や予測は可能か?
- 欠損値でも処理可能なのは、ランダムフォレスト以外のアルゴリズムである?
- ブースティング系は?
- 行列の掛け算が出来ない場合は、どんなとき?
- ブートストラップデータとは
- pca.fit_transform(df)とは
- m = np.arange(4)
n = np.arange(4)
xx, yy = np.meshgrid(m,n)
- meshgridってなに
- 度数とは
- 層化k分割交差検証
- 相関関係性とは異なるの?
- np.newaxisってなに
- どの特徴量がモデルの出力に寄与しているかを知りたい、ランダムフォレスト
- XGBOOSTも特徴量の重要度を取得できる?
- open関数のr+ってなに
- rwはないの?
- import math
print(“出力結果:")
print('円周率は%5.3fである。’%math.pi)
5.3fってなに
- 5.3の5は、小数点も入る?
- math.cos(math.pi / 5)
- class Sample:
c_list = []
def add_c_list(self,data):
self.c_list.append(data)
print(“出力結果:", end=" “)
sample1 = Sample()
sample1.add_c_list(“データ1")
sample2 = Sample()
sample2.add_c_list(“データ2″)
for item_data in sample1.c_list:
print(item_data, end=" “)
- 初期化したい場合はどうしたらいいの?
- バイナリデータレコードの処理を行うモジュール
- numpyの型を調べるメソッドは
- タプルの中は、全て文字列になるの?数値でいれたら数値になる?
- タプルに入れる事ができる型を教えて
- pythonのクリーンアップ動作ってなに?
- ガベージコレクションのサンプルコード
- コンテキストマネージャのサンプルコード
- with構文は、ファイルの操作によく使われるけど、それ以外に何か使える・
- 各サンプルコード
- イミュータブルとは
- transformメソッドは、教師なし学習につかうの?
- 決定木は回帰もできる?
- 決定木で回帰出来る理由がわからない
- ビルドイン関数dir()
- dive_into_code = ['Noro’, 'Nakao’, 'Miyaoka’, 'Miyashita’, 'Shibata’, 'Kimura’]
dive_into_code.pop(3)
- clearメソッドってなに
- 引き数はあるの?
- destroyメソッドってある?
- タプルの中は、floatとintは混在するの?
- ヒストグラムってなに
- 度数分布以外にヒストグラムをつかう?
- labels = ['A’, 'B’, 'C’]
x = [6, 3, 1]
explode = [0, 0.1, 0]
fig, ax = plt.subplots()
ax.pie(x,
labels=labels,
startangle=90,
counterclock=False,
autopct=’%1.1f%%’,
explode=explode)
ax.axis('equal’)
explodeで切り出す意味って何かあるの?
- なぜonehotエンコーディングっていうの?
- 疎行列ってなに
- イメージ出来ないから具体的に
- SVC(kernel=’linear’, C=0.1) このCってなに
- SVC(kernel=’poly’)ってなに
- classification_reportのサンプルコード
- pandasにdeleteメソッドってある?
- sklearnのtransformってなに
- fig, ax = plt.subplots(ncols=2)
ax[0].bar(x, y)
ax[1].scatter(x, y)
このncolsってなに
- mu = 100
sigma = 15
np.random.seed(0)
x = np.random.normal(mu, sigma, 1000)
fig, ax = plt.subplots()
n, bins, patches = ax.hist(x)
for i, num in enumerate(n):
print('{:.2f} – {:.2f}: {}’.format(bins[i], bins[i + 1], num))
これについて解説して
- 標準偏差が15ってなに?
- 100なら85~115の間に65%の情報が入っているってこと?
- n, bins, patchesってなに?
- for i, num in enumerate(n):
print('{:.2f} – {:.2f}: {}’.format(bins[i], bins[i + 1], num))
これは度数分布表?
- 混同行列ってなに
- 混同行列の偏りを定量化できる?
- 再現率、適合率、正確率、これらの偏りによる考察を教えて
- 例えば「0, 1, 2, 3, 4, 5, 6, 7, 8, 9」の数字の画像から「9以外」を予測する場合、単純に「すべて9以外と予測する」だけで正解率は90%になるよね、これは、適合率や再現率は低下するの?
- predict_probaメソッドって何
- df.groupby
- df.resample
- これって、indexが日時だから出来る事なの?
- scatter_matrix
- numpyでグラフの描画とかできるの?
- figsizeってなに?
- SimpleInputerはどのような欠損値処理ができる?
- 他に方法はある?直前のデータや直後のデータ
- それらをsinpleinputerで対応できる?
- くじを引いて80%の確率で100円が当たり、20%の確率で1000円が当たるとき、期待値として正しいものはどれか。
これを公式に当てはめてみて
- Xiってなに
- Pってなに?何の略
- P(X)のXってなに
- この場合、確率変数は100円と1000円?
- randomモジュールの以下、どう覚えたらいい?略されているのを教えて
rand → 0以上1未満の小数
random → 0以上1未満の小数、引数がタプル
uniform → 指定範囲の小数
randint → 指定範囲の整数
randn → 平均0・分散1の標準正規分布
normal → 指定の平均・標準偏差の正規分布
- Numpy
- Numpyのブロードキャストってなに
- 多次元のブロードキャストは?
- ブロードキャストの意味
- 相関係数は、±0.5以上あったほうがいい?目安ある?
- ルート1ってなに?
- ルート1の平方根は?
- 期待値の求め方
- クラスタリングを用いた前処理の方法の一例として、異常値の検出と除去のサンプルコード
- 内包表記のネスト
- # 二次元リストの作成
matrix = [[i * j for j in range(1, 4)] for i in range(1, 4)]
print(matrix) # [[1, 2, 3], [2, 4, 6], [3, 6, 9]]
詳しく解説して、片方のrengeは5~9にして
- try exceptで対応したいんだけど、
except Timeout:でいいの?
- TimeoutExceptionをインポートしたい
- 分類モデルで、predictは使う?
- pythonの例外ハンドリングで、exceptとexcept exceptionってなにがちがうの?
- date(日付)
time(時刻)
datetime(日時)
timedelta(日付と時刻の計算)
これらの違い
- 三平方の定理
- style=".+>
上記の正規表現の>よりひとつ前まで指定したい
- <p style="font-size:15px;letter-spacing:0.5px;line-height:150%">
上記を
style="font-size:15px;letter-spacing:0.5px;line-height:150%"
まで指定したい
- スマートフォンでラズベリーパイに接続して、ON,OFFできる?
- Flutterはアプリなの?どうやってスマホにインストールするの?
- Flutterをつかって、BluetoothでON、OFFできる?
- クラスタリングは、相関関係を見るために行うの?
- クラスタリングは、どの段階で利用するの?
- クラスタリングを用いた前処理の方法について教えて
- 分類する際におすすめのアンサンブル学習以外の手法のアルゴリズム
- 特徴量が10万個ある場合、それを次元削減によってどれくらいに減少させることが可能か?
- 特徴量が2個あってそれを1つにする意味はあまりない?
- 数万の特徴量って、カラム数が数万ってこと?
- PythonでIOTデバイス操作できるの?
- 実用的なもので面白いIIOT機器ある?Pythonで制御できるもので。やってみたい
- バイク屋で、Pythonを使ってIOTでどんなことが出来ると思う?アイデア頂戴
- バイクの防犯システムをpythonで作ってみたい、電量をOFFにするだけでいい
- 遠隔でOFFにするものが欲しい
- Raspberry Piはどれを買えばいい?
- bluetoothで、ON,OFFを制御したい。
- 分散正規化にしておけば良い気がするのだけど
- 最小最大正規化が適している場合は?
- 半教師あり学習とは
- 凸最小化問題とは
- 主成分分析(PCA)とは
- 特異値分解(SVD)
- 潜在的ディリクレ配分法(LDA)
- DBSCANって何の略なの?
- 機械学習以外のカテゴライズや数値予測を行う方法としては
①ルールベース
②統計的な手法
これらについて、詳細をおしえて
- Anacondaのメリット
多くのパッケージを1度のインストールでセットアップでき便利である。
これについて詳しく
- anaconda パッケージインストール
- cronで以下はどういう意味?
30 09 * * 0
- 正方行列と単位行列の掛け算
- ネイピア数の場合、ln?In?
- 線形代数の代数とは
- Lightsailのサーバーが停止してしまったので、一旦強制終了して、再起動したんだ。
そうしたら、LightsailのIPアドレスが変更になってしまったからかもしれない。
RDSのデータベースを使ってる。
- インバウンドルールと、アウトバウンドルールってなに?
- RDSへ外部からアクセスする方法
- パブリックアクセスはいいえになっている。
- 内包表記を詳しく解説して、どの順番で計算されるか分からない
- [[(y,x*x) for x in range(10) if x%2==0] for y in range(3)]
これの計算の順序がわからない
- ジェネレーター式とリストの違いは?
- openpyxlとは
- html5libとは
- bashでファイルの作成日時
- ランダムフォレストのサンプルコード
- 価格調整ツールをAWSのLightsailで稼働している。これは、CUIでコマンドを打って動作させているが、異常時にアプリを誰でもGUIで止めるようにしたい。
この場合、どうしたらいいと思う?
- ニューラルネットワークの種類
- 通販マーケテイングの職種で、ポートフォリオを提出してほしいといわれたのだが、具体的になにをかけばいいのだろうか?
- AUCは多クラス分類には使えないの?
- AUC:0.986932544
- 今回、変更したのが、下処理をcountvectorizerからtf-ideへ変更したんだ。それで一気にaccuracy,precision,recall,f1の値が向上した。そんなことあるの?
- ロジスティック回帰はどうだろうか
- ロジスティック回帰をベイズ最適化して
- パイプラインでターゲットエンコーディングできる?
- Warning: No categorical columns found. Calling 'transform’ will only return input data.
- TFIDEは、アルゴリズムなの?
- TFIDEは、数値データを処理するの?カテゴリカルデータを処理するの?
- ランダムフォレストモデルでの予測確率を含む新しい特徴量を作成し、その特徴量を使用してAUCを計算
- ターゲットエンコーダーとカウントベクトライザーってどうちがう?
- target_encoderの使い方
- さまざまなカテゴリ変数のエンコーディング方法
- モデルの性能を評価するには、交差検証すればいい?
- Oneホットエンコーディングや、ラベルエンコーディングとは異なるの?
- classifier__alphaは0.01以外にためさなくていいの?
- /home/share/temp/venv/lib/python3.8/site-packages/sklearn/naive_bayes.py:633: UserWarning: alpha too small will result in numeric errors, setting alpha = 1.0e-10. Use `force_alpha=True` to keep alpha unchanged.
warnings.warn(
/home/share/temp/venv/lib/python3.8/site-packages/sklearn/naive_bayes.py:624: FutureWarning: The default value for `force_alpha` will change to `True` in 1.4. To suppress this warning, manually set the value of `force_alpha`.
warnings.warn(
/home/share/temp/venv/lib/python3.8/site-packages/sklearn/naive_bayes.py:633: UserWarning: alpha too small will result in numeric errors, setting alpha = 1.0e-10. Use `force_alpha=True` to keep alpha unchanged.
warnings.warn(
/home/share/temp/venv/lib/python3.8/site-packages/sklearn/naive_bayes.py:624: FutureWarning: The default value for `force_alpha` will change to `True` in 1.4. To suppress this warning, manually set the value of `force_alpha`.
warnings.warn(
/home/share/temp/venv/lib/python3.8/site-packages/sklearn/naive_bayes.py:633: UserWarning: alpha too small will result in numeric errors, setting alpha = 1.0e-10. Use `force_alpha=True` to keep alpha unchanged.
warnings.warn(
/home/share/temp/venv/lib/python3.8/site-packages/sklearn/naive_bayes.py:624: FutureWarning: The default value for `force_alpha` will change to `True` in 1.4. To suppress this warning, manually set the value of `force_alpha`.
warnings.warn(
/home/share/temp/venv/lib/python3.8/site-packages/sklearn/naive_bayes.py:633: UserWarning: alpha too small will result in numeric errors, setting alpha = 1.0e-10. Use `force_alpha=True` to keep alpha unchanged.
上記のようなエラーがでた。だが、精度が今まで一番よかった
Random Forest Accuracy: 0.7627360171001069
Random Forest Classification Report:
precision recall f1-score support
60 0.78 0.74 0.76 469
80 0.70 0.71 0.70 496
100 0.62 0.62 0.62 423
120 0.79 0.78 0.79 485
140 0.82 0.82 0.82 466
160 0.85 0.90 0.88 468
accuracy 0.76 2807
macro avg 0.76 0.76 0.76 2807
weighted avg 0.76 0.76 0.76 2807
Random Forest AUC: 0.9421794343196077
- pipeline = Pipeline([
(“classifier",MultinomialNB())
])
# 探索するハイパーパラメータの候補を指定
param_grid = {
'classifier__alpha’: [i / 1000 for i in range(1)], # 0.01 刻みで設定
# 'classifier__fit_prior’: [True, False]
'classifier__fit_prior’: [True]
}
# グリッドサーチを用いて探索
grid_search = GridSearchCV(pipeline, param_grid, cv=10)
grid_search.fit(X_train, y_train)
/home/share/temp/venv/lib/python3.8/site-packages/sklearn/naive_bayes.py:624: FutureWarning: The default value for `force_alpha` will change to `True` in 1.4. To suppress this warning, manually set the value of `force_alpha`.
warnings.warn(
/home/share/temp/venv/lib/python3.8/site-packages/sklearn/naive_bayes.py:633: UserWarning: alpha too small will result in numeric errors, setting alpha = 1.0e-10. Use `force_alpha=True` to keep alpha unchanged.
warnings.warn(
- GridSearchCVやPipelineの中でMultinomialNB(force_alpha=Trueはどうしたらいいの?
- ナイーブベイスのパラメーター
- grid_search.best_params_で最適なハイパーパラメータの値を取得
- 1e-05は?
- Pythonでは、べき乗を計算する
- /home/share/temp/venv/lib/python3.8/site-packages/sklearn/naive_bayes.py:624: FutureWarning: The default value for `force_alpha` will change to `True` in 1.4. To suppress this warning, manually set the value of `force_alpha`.
warnings.warn(
/home/share/temp/venv/lib/python3.8/site-packages/sklearn/naive_bayes.py:633: UserWarning: alpha too small will result in numeric errors, setting alpha = 1.0e-10. Use `force_alpha=True` to keep alpha unchanged.
warnings.warn(
/home/share/temp/venv/lib/python3.8/site-packages/sklearn/naive_bayes.py:624: FutureWarning: The default value for `force_alpha` will change to `True` in 1.4. To suppress this warning, manually set the value of `force_alpha`.
warnings.warn(
/home/share/temp/venv/lib/python3.8/site-packages/sklearn/naive_bayes.py:633: UserWarning: alpha too small will result in numeric errors, setting alpha = 1.0e-10. Use `force_alpha=True` to keep alpha unchanged.
warnings.warn(
/home/share/temp/venv/
- alphaパラメーターが非常に小さい値にするとなにかデメリットはある?精度はよくなったんだけど
- vectorizer_product_name = CountVectorizer()vectorizer_category_name = CountVectorizer()X_product_name_vectorized = vectorizer_product_name.fit_transform(X_product_name)X_category_name_vectorized = vectorizer_category_name.fit_transform(X_category_name)この部分は、インスタンスを分けた方がいいの?
- print(X_combined.shape)
(4047, 58372)
これの特徴量は、58372個ってこと?
- pipeline = SMOTEPipeline([ ('classifier’, MultinomialNB())]) これを通常のパイプラインにしたい。SMOTEつかいたくない
- ナイーブベイスのグリッドサーチが以下で良いのかわからない。
# 探索するハイパーパラメータの候補を指定
param_grid = {
'classifier__alpha’: [i / 100 for i in range(1, 2)], # 0.01 刻みで設定
'classifier__fit_prior’: [True, False]
}
- 'classifier__alpha’: [i / 100 for i in range(1, 2)], # 0.01 刻みで設定
これは、何パターン試すの?
- range(1, 2)って
- 2回目のオーバーサンプリングを排除するにはどうしたらいい
- ナイーブベイスをグリッドサーチしたい
- 特徴量が複数ある場合はどうしたらいい?
- 下記は、梱包サイズの目的変数ごとの、多クラス分類の指標結果。どう考察する? precision recall f1-score support 60 0.80 0.59 0.68 469 80 0.65 0.72 0.69 496 100 0.56 0.61 0.59 423 120 0.77 0.76 0.77 485 140 0.76 0.84 0.80 466 160 0.87 0.86 0.87 468 accuracy 0.73 2807 macro avg 0.74 0.73 0.73 2807weighted avg 0.74 0.73 0.73 2807
- 100サイズや80サイズの精度が低いんだよね、どうしたらいいと思う?
- カテゴリ変数をプロットできる?
- 大量にデータがあると、プロットするのは難しいよね。見にくくなるよね
- pipeline = SMOTEPipeline([
('classifier’, MultinomialNB())
])
SMOTEPipelineってなに
- smote = SMOTE(random_state=42)X_resampled, y_resampled = smote.fit_resample(X_combined, y)# データの分割X_train, X_test, y_train, y_test = train_test_split(X_resampled, y_resampled, test_size=0.3, random_state=42)# パイプラインの定義pipeline = SMOTEPipeline([ ('classifier’, MultinomialNB())])でも、データ分割の前にSMOTEした方がいいんじゃない?
- pipeline = SMOTEPipeline([ ('classifier’, MultinomialNB())])このSMOTEPipelineって、なにしてるの?Smoteしてるの?
- Accuracy:0.747773424
Precision:0.75
Recall:0.75
F1:0.75
AUC:0.938
この数値はどうだろうか?
- AUC以外をみたら、全体的に0.75程度であり、あまり性能が良いとは言えないかな?
- AUCが高いという事は、何を意味するの?
- AUCが高いということは、モデルが真陽性率を高くし、同時に偽陽性率を低く保つ能力があることを示します。つまり、正しい予測をする確率が高いと言えます。
でも、実際は高くないんでしょ?
- 分類の正確度についての具体例 例えば、60%の正確度なら、少し良いとか、90%ならとても良いとか
- —————————————————————————
LightGBMError Traceback (most recent call last)
Cell In[3], line 21
7 params = {
8 'boosting_type’: 'gbdt’,
9 'objective’: 'multiclass’,
(…)
17 'verbose’: 0
18 }
20 # LightGBMのトレーニング
—> 21 lgb_model = lgb.train(params, lgb_train, num_boost_round=100)
23 # テストデータでの予測
24 y_pred_lgb = lgb_model.predict(X_rf_test, num_iteration=lgb_model.best_iteration)
File /home/share/temp/venv/lib/python3.8/site-packages/lightgbm/engine.py:255, in train(params, train_set, num_boost_round, valid_sets, valid_names, feval, init_model, feature_name, categorical_feature, keep_training_booster, callbacks)
253 # construct booster
254 try:
–> 255 booster = Booster(params=params, train_set=train_set)
256 if is_valid_contain_train:
257 booster.set_train_data_name(train_data_name)
File /home/share/temp/venv/lib/python3.8/site-packages/lightgbm/basic.py:3437, in Booster.__init__(self, params, train_set, model_file, model_str)
3435 params.update(train_set.get_params())
3436 params_str = _param_dict_to_str(params)
-> 3437 _safe_call(_LIB.LGBM_BoosterCreate(
…
261 “""
262 if ret != 0:
–> 263 raise LightGBMError(_LIB.LGBM_GetLastError().decode('utf-8’))
LightGBMError: Label must be in [0, 6), but found 160 in label
- LightGBMでベイズ最適化したい
- LightGBMError: Cannot change feature_pre_filter after constructed Dataset handle.
- PCのメモリーって4,8,16,32、64ってあるけど、その上もあるの?
- ランダムフォレストのハイパーパラメータについて
- トレーニングデータのサブサンプルってなに
- CPUやメモリーの余裕があるんだけど、ランダムフォレストでランダムサーチすると動作がおそいんだよね
- n_jobsパラメータを使って複数のCPUコアを利用することができます。
どうやるの
- ランダムフォレストのデフォルト設定では、n_jobsパラメータはどうなってるの?
- n_jobsは何の略
- scikitlearnでn_jobsが使えるアンサンブル学習は?
- LightGBMError: Label must be in [0, 6), but found 160 in label
- 今回でた精度データがこれだ。Accuracy:0.747773424Precision:0.75Recall:0.75F1:0.75AUC:0.938
- ランダムフォレストのグリッドサーチをランダムサーチに変更したコード
- 指定した変数以外をdelしてメモリ解放したいんだが
- ランダムサーチがどれくらいで終わるか、プログレスバーとか出せる?
- ランダムサーチを用いてハイパーパラメータの探索を行う際に、tqdm を使用して進行状況を表示する
- Scipy(サイパイ)ってなに
- ValueError: Found input variables with inconsistent numbers of samples: [2807, 6547]
- rf_classifier.fit(X_rf, y_test)
testデータでトレーニングしてテストデータを予測したら精度良くなるのは当たり前じゃない?
- ランダムフォレストのトレーニングには、テストデータを使うのではなく、トレーニングデータを使用するべき?
- 初期の段階でモデルを作る際に、どのサンプルを元にベースモデルを作ったらよいだろうか
- ベースモデルは1つの商品で作っていいんだよね
- CountVectorizerってなに?
- CountVectorizerとラベルエンコーディングの違いはなに
- 連続値をとるのが回帰でしょ?
来月の需要の予測をするってことなのかな
- 例えば、将来半年分の商品ごとの回帰って可能?
- 半年分の商品ごとの需要予測を行うためのサンプルコード
- モデルのトレーニングは、商品数の分だけ行われるの?
- 20万商品あれば、20万回のモデルトレーニングが行われるの?
- 分類は1つのモデルを作るだけでよかったけど、回帰は20万個のモデルが必要になるのか・・・
- 大規模なデータセットや複数のモデルを扱う場合、可能な限り、処理が速いモデルの方がよさそう
- それだけ多くのモデルを作った際に、20万個も精度の検証は現実的ではないよね
- サンプリングして検証する方法
- サンプリングのサンプルコード
- サンプルの検証結果の平均値を算出したらいいのかな
- 'X1’, 'X2’, 'X3’, 'X4’, 'X5’
これはなに?
- これって、商品ごとに回帰するの?
- 説明変数をすべて考慮して、回帰分析してみて
- レグレッサーって、回帰の意味?
- 分類はなんて言うの?
- アルゴリズムって意外と少ないよね
- 転職するのにどんな実績があればいいと思う?
- バイク用品の通販をしているんだけど、回帰の実績を作りたい。なにか回帰するものはあるか
- 価格設定のAIを作るとして、適正化価格帯tって何?
- 売上予測をすることの何か意味はあるのか
- 在庫管理の回帰をしたい
- 需要予測をして、ボリュームディスカウントでメーカーへ依頼したいんだよね。
- 需要予測を行う回帰のサンプルコードを頂戴
- 需要予測をする際の説明変数は何があれば理想かな
- 解釈性の高いモデルを使用することが、相関関係性が高いってこと?
- 特徴量間で相関関係はみないの?
- 特徴量間で相関関係が見られる場合、片方を除外することを検討したほうがいい?
- あくまで、特徴量は目的変数との相関関係があるのが良いんだね
- 相関関係が無くても、モデルにとって重要な特徴量ならば精度は上がるってことか
- 多重共線性ってなに?
- ランダムフォレストで回帰するコード書いてみて
- 分類の時と評価以外同じコードな気がするけど
- 二次関数と指数関数の違い
- ビジネスが指数関数的に成長するという理由は?
- 指数関数は放物線といえる?
- 放物線を描くのは生物の成長が例に上がったけど、他にも放物線を描く事例を知りたい
- ビジネス関連で知りたいな放物線の事例。特に通販やデータサイエンスに使える事例
- 鈍化するというのは二次関数のどの部分?
- 放物線は頂点をすぎたらマイナス方向に動くの?
- 線形回帰や、リッジ回帰はアンサンブル学習じゃない?
- 良い精度を出すのは単一のモデルよりもアンサンブル学習だよね
- モデルの解釈性とは?それがいいと何がいいの?
- ニューラルネットワークって?
- 販売成績の分析に回帰分析を具体的に適用する方法
- 回帰分析で、ランダムフォレストはあまり使われない?
- 回帰のおすすめのモデルは?
- 分類は、最終的なモデルは勾配ブースティングで作ると精度が高いとされているけど、回帰も同じ?
- 非線形な回帰はどんなケースかな
- 放物線を描く形状とは、どんなデータといえる?
- サーキットラーンで、分類する時と回帰とではやり方は違う?
- 回帰のアルゴリズム全て教えて
- ニューラルネットワークのタスクに固有のモデルがあるとは?
- ValueError: Negative values in data passed to MultinomialNB (input X)
- 整数を10乗したらなんで負になるの?
- np.squareってなに?
- 累乗を指定したい。100乗とか
- NameError: name 'roc_curve’ is not defined
- roc_auc_scoreを使用してAUCを計算
- AxisError: axis 1 is out of bounds for array of dimension 1
- テストデータでのAUC計算
- best_model.predict(X_test)
best_model.predict_proba(X_test)
上記2つは何が違う
- バイクの車種の多クラス分類で、車種情報が1万台あるとする。だが、サンプルは5000しかないとする。この場合、学習させていない車種情報の振り分けは可能か?
- AUCを計算
- 売上の実際の数量は、この予測値を含むさまざまな要因によって影響を受ける可能性がある?
- yhatってどういういみ?予測された値?
- scikit-learnなら精度の情報がでるけど、prophetにはでないの?
- ValueError: Dataframe has less than 2 non-NaN rows.
- ValueError: No objects to concatenate
- Dataframe must have columns “ds" and “y" with the dates and values respectively.
- Dataframe has less than 2 non-NaN rows.
- Collecting fbprophet
Downloading fbprophet-0.7.1.tar.gz (64 kB)
|| 64 kB 1.9 MB/s eta 0:00:011
Collecting Cython>=0.22
Downloading Cython-3.0.10-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.6 MB)
|| 3.6 MB 9.5 MB/s eta 0:00:01
Collecting LunarCalendar>=0.0.9
Downloading LunarCalendar-0.0.9-py2.py3-none-any.whl (18 kB)
Collecting cmdstanpy==0.9.5
Downloading cmdstanpy-0.9.5-py3-none-any.whl (37 kB)
Collecting convertdate>=2.1.2
Downloading convertdate-2.4.0-py3-none-any.whl (47 kB)
|| 47 kB 4.3 MB/s eta 0:00:011
Collecting holidays>=0.10.2
Downloading holidays-0.47-py3-none-any.whl (1.0 MB)
|| 1.0 MB 11.1 MB/s eta 0:00:01
Requirement already satisfied: matplotlib>=2.0.0 in ./venv/lib/python3.8/site-packages (from fbprophet) (3.7.5)
Requirement already satisfied: numpy>=1.15.4 in ./venv/lib/python3.8/site-packages (from fbprophet) (1.24.3)
Requirement already satisfied: pandas>=1.0.4 in ./venv/lib/python3.8/site-packages (from fbprophet) (2.0.3)
Collecting pystan>=2.14
Downloading pystan-3.8.0-py3-none-any.whl (13 kB)
Requirement already satisfied: python-dateutil>=2.8.0 in ./venv/lib/python3.8/site-packages (from fbprophet) (2.8.2)
Collecting setuptools-git>=1.2
Downloading setuptools_git-1.2-py2.py3-none-any.whl (10 kB)
Requirement already satisfied: tqdm>=4.36.1 in ./venv/lib/python3.8/site-packages (from fbprophet) (4.66.2)
…
TypeError: This is a python-holidays entity loader class. For entity inheritance purposes please import a class you want to derive from directly: e.g., `from holidays.countries import Entity` or `from holidays.financial import Entity`.
—————————————-
ERROR: Command errored out with exit status 1: /home/share/temp/venv/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-mxw_32gk/fbprophet/setup.py'"'"'; __file__='"'"'/tmp/pip-install-mxw_32gk/fbprophet/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'rn'"'"', '"'"'n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))’ install –record /tmp/pip-record-ft9mjns0/install-record.txt –single-version-externally-managed –compile –install-headers /home/share/temp/venv/include/site/python3.8/fbprophet Check the logs for full command output.
Note: you may need to restart the kernel to use updated packages.
- ModuleNotFoundError: No module named 'pystan’
- fbprophetの他のインストール方法
- pystanパッケージをバージョン3.2.0でインストールする
- fbprophetではなく、ふつうのprophetはつかえない?
- 交差検証後のデータで修正ごとの精度を集計するほうがいいんじゃない?
- 商品別の受注数の予測を過去データから行いたい。python
- Prophetってなに?機械学習?
- profhetをつかいたい。受注データはどのカラムが必要か
- 総平方和って?
- 残差平方和と総平方和の違い
- Yハットと、Yバーのちがい
- 決定木係数から分かる事は?
- 回帰の評価指標の決定係数から分かる事は?
- 収入と消費の関係性を説明する場合とは、仮に収入が説明変数、消費が目的変数という意味?
- カイ二乗ってなに
- 機械学習で、行った修正ごとの精度データをExcelにまとめていこうと思うんだけどどうかな
- 交差検証前のデータで集計していけばいいのかな
- なぜ平均絶対(Mean Absolute)というの?
- 偏差の二乗って?
- 偏差は平均値を用いるんだね。中央値とかは使わないの?
- Mean Squared Error: 0.8409890188935377
- UndefinedMetricWarning: R^2 score is not well-defined with less than two samples. warnings.warn(msg, UndefinedMetricWarning)
- 2乗するのはなぜ?
- Raspberry Piでbluetoothが無くてもいいならやすい?
- スマホアプリは、アンドロイドならGoogleのアプリストアからじゃないとダウンロードできない?
要は、スマホアプリで消費者が見れるようにしたいんだけど、Pythonで簡単にアプリつくれる?
- Kivyは、Pythonのライブラリ?
- これは、どうやってデプロイするの?
- パッケージングするのは手間?
- 先のサンプルコードでパッケージングする方法
- このapkファイルを使うスマホでwebとかからダウンロードして、スマホにインストールすれば使えるってこと?
- Kivyアプリは、スマホのアプリの1つとして表示されるの?
- マイコンボードと、スマホを無線で連携させる方法ってあるかな。
- RaspberryPiでBluetoothかWifiがいいな。これらはマイコンボードに機能として持たせたものを購入しないといけないよね
- bluetoothがいいな。これまでの要件をみたすおすすめのラズベリーパイおしえて
- Raspberry Piは8000円位する?
- デスクトップアプリから、データをWebサーバーへ送信する事は可能?
- WebサーバーでAPIサーバーを立てる必要がある?
- APIで送信する際は、アプリケーションIDだけあればいい?ほかにライセンスキーとかは必要ない?
- スロットルセンサーからマイコンボードへは、銅線1本あればいい?
- 接地とは、アースということ?
- バイクを買わなくても、スロットルセンサーとバッテリーだけあればいいかな?
- スマホでみれたらいいかも
- スマホのアプリって、無料でできるの?
- シリアル通信とは?他に何か通信方法はあるの?
- シリアルとパラレルは、直列か並列かみたいなこと?
- Pythonでは、PySerialなどのシリアル通信ライブラリを使用して、シリアルポートからデータを読み取ることができます。PySerialを使用すると、シリアルポートを開き、データを読み取ることができます。
- pyserialは、どのような場面でつかうの?
- 要は、ラズベリーパイから、シリアル通信でPCへデータ転送するってこと?
データは、ファイル形式にはなっていないの?
- PCでデータを取得したら、それをデスクトップアプリやwebアプリでプロットするイメージ?
- デスクトップアプリのほうがいいかな?
- Webアプリにするにしたら、各消費者はWebサーバーを立てないといけないよね
- マイコンボード?マイコンチップ?なにそれ
- USBが入力となるマイコンボードを見つけた
- USBへ変換するのって難しい?
- バイクのセンサーから取得するのって、プラスをつなげて、マイナスはフレームへアースさせればいいの?
- スロットル開度のセンサーの信号をUSBへ変換する方法をおしえて
- アナログ入力ポート?
- USBデータ収集モジュールとは
- スロットルセンサーからアナログ信号をマイコンボードへ送る。
そのデータを一時的にどこかに保管しないといけないのでは?
- バッファって、マイコンボードに内蔵されているの?
- 特別ストレージとかは用意しなくても、ラズベリーパイは記憶できるストレージがあるの?
- マイコンボードからデータを取得したものを、USBでPCへつなげてPythonで解析したいんだ。何かライブラリとかあるの?
- キャンバスとOBD2備えてる車種知ってたら教えて
- 国内メーカーのバイクがいいな、OBD2,cancs
- 既存のセンサーから、コネクターを分岐させて取得できるかな
- 信号ってどうやって来るの?電圧の差とか?
- 仮に信号を取得して、それが何を意味しているのかはパース出来ないよね?
- 例えばスロットル開度をみるのは、フルスロットルを100%として、比較して何パーセント開いてるかをみればいいのか
- スロットル開度だけを取得したい。どうしたらいい?
- IPv4 CIDRsとは
- Lightsailからrdsへアクセスができないんだ
- セキュリティグループのタイプってなに?全てのトラフィックや、MYSQLとかあるんだけど
- ipアドレスの最後につける/32ってなに?
- 特定のIPアドレスを許可または拒否する場合に /32 を使用したほうがいいの?
- インバウンドルールとアウトバウンドルールの違い
- 外注へ引き継ぎするので、システムの仕様書を作ってくれと言われた。
どんな感じで作ればいいかな
- 簡単なウェブアプリケーションのシステム仕様書のサンプル
- Pythonでバイクになにか組み込みたい
- バイクのパフォーマンスをモニタリングするの面白そう
- バイクにOBD2ってあるの?それ車じゃないか?
全ての信号取れるポートないのかな
- RDSへのインバウンドルールに、Lightsailのプライベートアドレスを入力すれば、アクセスできる?
- アウトバウンドルールは、パブリックアクセスのルール?
- アウトバウンドルールで、RDBのMYSQLにアクセスできるようにしたい
- VPCってなに
- 1つのモデルで、全商品を回帰することは可能かな?
- 既存の商品データがあるので、それを全て学習させて1モデルで全自社品番を回帰したい
- 回帰で各商品のデータ量が均等である必要性を教えて。
- 時系列データの為、同じ商品が特徴量として複数回出てくるからではないか?
- データ不均衡の問題を軽減するために、例えば、販売実績のある商品を、1か月毎の販売個数と各特徴量をにしたらどうか。そうすれば、特徴量は同じ回数(月分)が出現するので過学習にもならないのではないか
- 販売データが不連続とはどのような意味か
- 1か月毎に学習させた場合、予測できるのは翌月?1年間分の予測も可能か?
- r2スコアとは?決定係数とはちがう?
- 1モデルで全ての商品の回帰をしたい。データは過学習にならないよう、商品ごとに1月ごとに販売個数を持たせたデータにする。
これを、過去何年分あったらいい?5年分位用意はできるが
- MySQLからの OperationalError(1045, “Access denied for user 'admin’@’ec2-3-112-29-177.ap-northeast-1.compute.amazonaws.com’ (using password: YES)")
- RMSE: 0.777どういう意味
- サンプル数がない商品は回帰できないの?
- 重回帰分析とかどうか
- 重回帰は高速なイメージがあるけど、そうでもないの?
- どうしてブースティング系は、処理速度がはやいの?
- Scikit-learnライブラリを使用してランダムフォレストを実装するサンプルコード
- これは1商品の推移のデータが入っていた方がいい?
- 実際、20万商品あるから、1商品でモデルを作る事で、不均衡なモデルにならないか心配
- 20万商品の予測を行う
- すべてのモデルをつくってみたい。非常に高速なアルゴリズムはなに?
- XGBOOSTとLightGBMって、どう使い分けたらいい?
- 統合モデルのサンプルコード頂戴
- 1つのインスタンスで2回fitさせているけど、後者の受注金額予測モデルの学習をしたら、先の受注数量の予測モデルの学習は消えるの?
- 統合モデルというのは、1つのモデルで学習をさせるという事?
- MultiOutputRegressorってなに?
- 統合モデルを作るのと、単一モデルで複数のモデルをつくるのと、どっちがいい?
- 相互依存関係とは?相関関係と関係はある?
- 相互依存関係と相関関係に関するおすすめの資格
- 機械学習で、受注数の予測を行いたい。
- ランダムフォレストでベースモデルを作りたい
- MemoryError: Unable to allocate 49.8 GiB for an array with shape (112733, 59267) and data type float64
- max_futuresはどうしたらいい?値
- 受注数量を予測するモデルは有用かな
- 受注数量に応じてマーケティング戦略は具体的にどのような事をするの
- この商品を販売したら、月間どれくらい売れるのかというモデルを作りたいんだよね
- 受注数量と受注金額を予測する事はかのう?モデルは別々にしないといけない?
- monthly_quantity20万行位なのに、800万行もある、なんで?
- 商品名略称は、カテゴリ変数なんだ。
- Oneホットエンコーディングだと、カテゴリ変数が大量になる
- カウントベクトライザーはどうだろうか
- 商品名には適している。カウントベクトライザーに重みをつけたアルゴリズムなんだっけ
- TF-IDEで処理してくれ
- いや、1つのモデルでおこないたい。
- 未知の自社品番の予測はできる?
- カテゴリ変数もあったほうが良いよね?未知の商品に対して、単価、送料、原価だけでは説明変数として不足していると思う
- monthly_quantityは18万行なのに、以下を実行すると1300万行になるpd.merge(monthly_quantity,df,how="left",on=[“自社品番"])
- monthly_quantity データフレームが18万行であるのにも関わらず、マージ後に行数が1300万行になる
- 最初に引っかかったデータだけでマージしたい
- # df データフレームから最初にヒットする行の情報を取得する
first_values = df.groupby(“自社品番").first().reset_index()
最初じゃなくて、平均値は可能か?
- このデータでランダムフォレストしたい
- Mean Squared Error: 167.6476813482921
- 他の2つの評価もおねがい
- 来月の受注数量の予測をしたいんだ。
- Mean Absolute Error: 1.7950685371673427
Coefficient of Determination (R^2): 0.6067632617562442
- R2は1に近いほど良い?
- 0.60は良いのか?
- 自社品番毎に、販売数量の予測を行いたいんだけど
- プログラミングするうえで、全てを調べないでも書けるようにした方がいい?それともGPTを利用して頭では理解できていればいいかな
- Pandas の read_csv() 関数 parse_datesってなに
- 過去5年分のデータがあるから、年月で集計したい df
- pd.merge(monthly_quantity,df)
- pd.merge() 関数でhowはなに?inner以外になにかある?
- pythonのコードは大体わかるんだけど、覚えきれないんだよね
- オブジェクトの使えるメソッドを表示とかできない?
- ListLikeU ってなに?そんな型があるの?
- Python の型ヒント(Type Hint) Literalとは?
- dfのメーカーから「その他」の文字を抽出したい
- ValueError: Cannot mask with non-boolean array containing NA / NaN values
- Pandas の DataFrame dfでsqlつかえない?
- ~って何て読むの
- vscodeでpythonでどんな引き数があるか確認したい。例えば、dropna
- 1モデルで20万件の商品データの回帰をしたい。
- 商品の販売数量を予測するための説明変数として適しているものは何だと思う?
- 学習させていない商品データの回帰もしたい
- 新商品が出た時に、販売数量を回帰したい
- 特徴量を何を選択したらいいのかわからん
- 回帰は、勝手なイメージだけど数値データだけを取り扱うというイメージがある。カテゴリ変数もつかっていいの?
- 現在20万点の商品があるのだが、全ての商品が売れているのではなくて、2割位の商品が売れている状態なんだ。売れない理由をAIでわからないかな
- AIを作るより、エクセルで分析したほうがよさそうかね
- 売れない原因は、○○!みたいなことをAIで解析させる事はできない?
- 売れない商品を特定するための簡単なサンプルコード
- 話を元に戻して、20万点の商品の来月の受注数量と金額を予測したい。だが、実際に受注が入ったのは2割位だ。
- 統計モデルとは
- 機械学習を使用して回帰分析を行いたい
- 回帰って例えば時系列で1年単位での受注数が入っていれば、回帰できるのは次の一年後だよね?
- 時系列で2015年100個、2016年150個という感じで年単位で2024年までデータが入っていたら、次の回帰2025年の販売個数を予測するんだよね?要は来月ではないよね?
- 統合モデルなら、数量以外に売上とかも予測できるってことだよね
- マーケティングで売上を上げるより、利益を上げたい
- 利益を最大化するためのマーケティングの回帰分析は目的変数は、利益になるの?説明変数は、販売価格、広告費、売上?
- 仮に、靴を作って売るとする。
説明変数:販売価格、広告費用、売上
目的変数:利益
これでマーケティングの回帰分析はどうやるの?
学習させたモデルに対して、この靴の販売価格を100円単位で変更したデータセット作り、それで予測させて最も利益が残る販売価格を見つけるとか?
- データの収集で、販売価格、広告費用、売上、利益のデータを10件あるとする。すくない?
- 機械学習で必要なサンプルデータは何件あればいい?
- 数百件のデータなら、もはや機械学習させる必要もなくないか
- 売上予測を機械学習でする手順
- 以下のデータが入っているけど、数値の説明をして。
array([151., 75., 141., 206., 135., 97., 138., 63., 110., 310., 101.,
69., 179., 185., 118., 171., 166., 144., 97., 168., 68., 49.,
68., 245., 184., 202., 137., 85., 131., 283., 129., 59., 341.,
87., 65., 102., 265., 276., 252., 90., 100., 55., 61., 92.
- 回帰分析って、実際何の役に立つの?
- 回帰分析は、バイク業界でなにか役に立つ?
- マーケティング効果の評価を回帰できるの?
- マーケティング効果の評価における回帰分析の結果は、具体的にどのような結果が出力されるの?
- マーケティングの回帰分析における予測出力は何になる
- Mean Squared Error: 2900.1936284934827R2 Score: 0.45260276297191926の解釈
- R2スコアの一般的な解釈・指標
- 糖尿病のデータセットは何を回帰するの?
- 疾患の進行度合いを示す値とは?
- ランダムフォレストは決定木よりも基本性能が高いよね
- 交差検証とグリッドサーチやランダムサーチなどの手法を組み合わせる
- NotFittedError: This RandomForestRegressor instance is not fitted yet. Call 'fit’ with appropriate arguments before using this estimator.
- trainとtestに分割する必要性
- 交差検証の結果、平均二乗誤差 (MSE)、平均絶対誤差 (MAE)の解釈
- scikit-learnライブラリを使用して回帰モデルを実装するサンプルコード
- R2スコアを計算してモデルの性能を評価 sklearn.metrics r2_score
- [LightGBM] [Warning] No further splits with positive gain, best gain: -inf
- ランダムフォレストとLightGBMの間での性能の違い
- モデルの種類
- 決定木でのモデル構築手順
- ランダムフォレストより決定木に優位性があるケースなんてあるの?
- Mean Squared Error: 2951.265466666666来月の数量予測: [204.63]Mean Absolute Error: 33.365R2 Score: 0.7861232861090577
- Mean Absolute Error: 32.589999999999996
これは、最大32個の誤差があるという意味?
- 線形回帰を使用したコード
- 在庫予測をするのに適した説明変数はなに?
- 直近の12か月のデータの平均値を、来月の売上として説明変数を渡すのは、ありなの?
- 要は、来月の受注数量を予測したいとするよね。その場合、過去の売上はわかるけど、未来の売上は分からないよね。未来の売上を仮定として回帰の説明変数に渡して数量を予測するのは、よいのか?
- data=monthly_sum.copy()
# data=data[data[“実在庫"]!=0]
data.drop([“自社品番"],axis=1,inplace=True)
# 年月列を年と月に分割して数値に変換する
data['年’] = data['年月’].dt.year
data['月’] = data['年月’].dt.month
# データから年月列を削除する
data.drop('年月’, axis=1, inplace=True)
# 特徴量と目的変数の選択
# X = data[['年’, '月’, '金額’, '原価’, '実在庫’, 'リードタイム’, '在庫補充頻度’, '在庫回転数’]]
# X = data[['年’, '月’, '原価’, '実在庫’, 'リードタイム’, '在庫補充頻度’]] #金額は、売上なので、売上が分かれば数量も分かってしまうので除外。目的変数に使える。 在庫回転数も計算式に金額が入っているので除外。
# X = data[['年’, '月’, '原価’, '実在庫’, '在庫補充頻度’]] #リードタイム除外
# X = data[['年’, '月’, '在庫補充頻度’]] #リードタイム除外
X = data[['年’, '月’, '金額’, '実在庫’, 'リードタイム’, '在庫補充頻度’, '在庫回転数’]]
y = data['数量’] # 予測したい数量
# データの分割
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# モデルの構築とトレーニング
model = RandomForestRegressor(n_estimators=100, random_state=42)
model.fit(X_train, y_train)
# テストデータを使用して予測
y_pred = model.predict(X_test)
# モデルの評価
mse = mean_squared_error(y_test, y_pred)
print(“Mean Squared Error:", mse)
# 来月のデータで予測
# 予測に使用するデータの準備(必要に応じて調整してください)
next_month_data = pd.DataFrame({'年’: [2024], '月’: [5], '金額’:[],’実在庫’: [100], 'リードタイム’:[5], '在庫補充頻度’: [3]})
金額・実在庫・在庫保管頻度、これらは直近半年の平均値をわりあてたい
- 平均絶対誤差も表示したい
- Mean Squared Error: 11967.232208333333
Mean Absolute Error: 75.78583333333333
R2 Score: 0.13274074189637586
説明変数はどうしたらいい。
- 相関係数を出したい
- 数量 1.000000
金額 0.957511
在庫回転数 0.586616
在庫補充頻度 0.579625
実在庫 0.199169
年 0.072930
月 0.033369
原価 0.020795
リードタイム NaN
Name: 数量, dtype: float64
- ランダムフォレスト以外のアルゴリズムある?
- 線形回帰を使用してモデルを構築する方法
- 金額もよそくできない?統合モデルで
- 来月の金額・来月の実在庫来月の在庫回転数はわからない
- import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestRegressor
from sklearn.metrics import mean_squared_error
# データの読み込み
# data = pd.read_csv(“your_data.csv") # データファイル名は適切に変更してください
data=monthly_sum.copy()
data.drop([“自社品番"],axis=1,inplace=True)
# 年月列を年と月に分割して数値に変換する
data['年’] = data['年月’].dt.year
data['月’] = data['年月’].dt.month
# データから年月列を削除する
data.drop('年月’, axis=1, inplace=True)
# 特徴量と目的変数の選択
X = data[['年’, '月’, '金額’, '原価’, '実在庫’, 'リードタイム’, '在庫補充頻度’, '在庫回転数’]]
y = data['数量’] # 予測したい数量
# データの分割
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# モデルの構築とトレーニング
model = RandomForestRegressor(n_estimators=100, random_state=42)
model.fit(X_train, y_train)
# テストデータを使用して予測
y_pred = model.predict(X_test)
# モデルの評価
mse = mean_squared_error(y_test, y_pred)
print(“Mean Squared Error:", mse)
# 来月のデータで予測
# 予測に使用するデータの準備(必要に応じて調整してください)
next_month_data = pd.DataFrame({'年’: [2024], '月’: [6], '金額’: ['来月の金額’], '原価’: [3179], '実在庫’: ['来月の実在庫’], 'リードタイム’: [5], '在庫補充頻度’: [2], '在庫回転数’: ['来月の在庫回転数’]})
# 予測
next_month_quantity = model.predict(next_month_data[['年’, '月’, '金額’, '原価’, '実在庫’, 'リードタイム’, '在庫補充頻度’, '在庫回転数’]])
print(“来月の数量予測:", next_month_quantity)
修正して
- 平均値でいいの?
- 金額は売上の事なんだ。金額が分かれば必然的に数量はわかるよ。
- となると、在庫回転数も金額を使って求めているから、不要かな
- 平均二乗誤差は、分りにくい。R2がいい
- Mean Squared Error: 11481.765066666667
来月の数量予測: [204.1]
R2 Score: 0.1679222998193799
- dataで実在庫が0の場合が除外したい
- Mean Squared Error: 18724.5928125
来月の数量予測: [146.61]
R2 Score: -0.2788766685306685
R2が-になった
- 時系列が飛び飛びだからかな?
- monthly_quantity = df.groupby([“自社品番", “年月"])[“数量"].sum().reset_index()
数量以外にもカラムを追加したい合計したいのがある
- monthly_sum[“在庫回転数"]=monthly_sum[“金額"]/monthly_sum[“実在庫"]
infになってしまった。
- 年月数量金額原価実在庫リードタイム在庫補充頻度在庫回転数
これらデータがそろった。
ランダムフォレストで、来月の数量を回帰して
- TypeError Traceback (most recent call last)
/tmp/ipykernel_3283197/3237657286.py in ?()
—> 22 import pandas as pd
23 from sklearn.model_selection import train_test_split
24 from sklearn.ensemble import RandomForestRegressor
25 from sklearn.metrics import mean_squared_error
/home/share/temp/venv/lib/python3.8/site-packages/sklearn/base.py in ?(estimator, *args, **kwargs)
1148 skip_parameter_validation=(
1149 prefer_skip_nested_validation or global_skip_validation
1150 )
1151 ):
-> 1152 return fit_method(estimator, *args, **kwargs)
/home/share/temp/venv/lib/python3.8/site-packages/sklearn/ensemble/_forest.py in ?(self, X, y, sample_weight)
344 “""
345 # Validate or convert input data
346 if issparse(y):
347 raise ValueError(“sparse multilabel-indicator for y is not supported.")
–> 348 X, y = self._validate_data(
349 X, y, multi_output=True, accept_sparse="csc", dtype=DTYPE
350 )
351 if sample_weight is not None:
…
1999 if (
2000 astype_is_view(values.dtype, arr.dtype)
2001 and using_copy_on_write()
TypeError: float() argument must be a string or a number, not 'Period’
- 全てのコード
- —————————————————————————
ValueError Traceback (most recent call last)
/tmp/ipykernel_3283197/857401802.py in ?()
—> 43 import pandas as pd
44 from sklearn.model_selection import train_test_split
45 from sklearn.ensemble import RandomForestRegressor
46 from sklearn.metrics import mean_squared_error
/home/share/temp/venv/lib/python3.8/site-packages/sklearn/ensemble/_forest.py in ?(self, X)
980 The predicted values.
981 “""
982 check_is_fitted(self)
983 # Check data
–> 984 X = self._validate_X_predict(X)
985
986 # Assign chunk of trees to jobs
987 n_jobs, _, _ = _partition_estimators(self.n_estimators, self.n_jobs)
/home/share/temp/venv/lib/python3.8/site-packages/sklearn/ensemble/_forest.py in ?(self, X)
595 def _validate_X_predict(self, X):
596 “""
597 Validate X whenever one tries to predict, apply, predict_proba."""
598 check_is_fitted(self)
–> 599 X = self._validate_data(X, dtype=DTYPE, accept_sparse="csr", reset=False)
600 if issparse(X) and (X.indices.dtype != np.intc or X.indptr.dtype != np.intc):
…
1999 if (
2000 astype_is_view(values.dtype, arr.dtype)
2001 and using_copy_on_write()
ValueError: could not convert string to float: '来月の金額’
- next_month_data = pd.DataFrame({'年’: [2024], '月’: [6], '金額’: ['来月の金額’], '原価’: [3179], '実在庫’: ['来月の実在庫’], 'リードタイム’: [5], '在庫補充頻度’: ['来月の在庫補充頻度’], '在庫回転数’: ['来月の在庫回転数’]})
来月の金額は売上になるなら、わからないよ。在庫補充頻度もわからない。在庫回転数もわからない。
- インフルエンサーの影響を考慮する、だがインフルエンサーも当たりはずれがあって需要が読めない
- 回帰で在庫切れで売上が立たなかった月があるんだけど、これを説明変数に入れていいのかな
- 在庫切れが売上に影響する要因として怠慢がある場合、どう説明変数に組み込む?
- 例えば、2023年5月が在庫が0の月で、売上も0だったとする。この説明変数をいれてしまうと、2024年5月の売上も0に近くなるの?
- 他の在庫管理の指標や変数もモデルに組み込むとは?
- 在庫レベルの求め方
- ひと月単位で在庫レベルを表示するにはどうしたらいいの?
- 月末時点か月初時点での在庫を在庫レベルとするの?
- 多クラス分類の場合、目的変数を説明変数に入れてはいけなかったけど、回帰の場合は目的変数を説明変数にいれていいの?
- ランダムフォレストで回帰したい
- 一時期のマーケティングで一気に売れたデータセットがあるとする。
Dec-2011
Jan-211
Feb-216
Mar-2110
Apr-218
May-2111
Jun-2113
Jul-2121
Aug-213
Oct-211
Nov-213
Dec-212
Feb-222
Feb-237
Mar-2318
Apr-2341
May-23128
Jun-2398
Jul-2336
Aug-2317
Sep-2318
Oct-231
Dec-231
これで予測とか難しいよね
- 需要予測を行う際にマーケティング活動の影響を考慮する
- 需要予測の場合、商品毎にモデルを作った方がいい?
- アンサンブル学習でソフトマックス関数が使われているものは?
- 決定木、ランダムフォレスト、SVMには、ソフトマックス関数が使われている?
- np.exp(10)とは
- 割り算の特徴
- 誤差関数とは
- 絶対二乗誤差もある?
- クロスエントロピー誤差とは
- 機械学習の回帰で何が出来る
- 予測はどれくらい先までできる?
- 回帰のメリットは?
- 通販の回帰は何に活かせる?
- 需要予測をしたい
- 最小最大スケーリングのデメリットは?標準化とどうちがう?
- 一様分布の反対の言葉は?
- エクスポネンシャルexpってなに
- ソフトマックス関数が作られた経緯
- ソフトマックス関数が使われているモデル
- ソフトマックス関数が使われているモデル
- ランダムフォレストは?
- ナイーブベイスにはソフトマックス関数は使われてる?
- 正規化ってなんだっけ
- シグモイド関数つかうのは正規化?
- Pythonで正規化する方法は?
- 正規化するメリットは?
- バイクのイラストは大量にあるから、そのデータセットをつかう?
- 恒等関数とは
- 恒等関数の由来
- 全てのアルゴリズムで多クラス分類の出力層は確率を出力しているの?
- Generative Adversarial Network
- 何の略?e
- QRコードを生成するPython
- MNISTデータセットとは
- noise = np.random.normal(0, 1, (10, latent_dim))
gen_imgs = generator.predict(noise)
fig, axs = plt.subplots(2, 5)
cnt = 0
for i in range(2):
for j in range(5):
axs[i,j].imshow(gen_imgs[cnt], cmap=’gray’)
axs[i,j].axis('off’)
cnt += 1
plt.show()
これは何が生成されるの?
- テキストで「バイクのイラストを生成して」と指示したら、バイクのイラストを生成するAIを作りたい。python
- バイクのイラストを生成するためのGANサンプルコードちょうだい
- どんなバイクのイラストを生成するの?
- ニューラルネットワークの中に深層学習があるのではなくて?
- ニューラルネットワークってなに
- 畳み込みニューラルネットワークの場合、中間層は何層あるの?
- 畳み込み層とは?
- 活性化関数とは
- RELU関数の説明
- 画像生成AIを作ることはできる?
- Pythonで画像生成AIを実装したい、どんなライブラリがある?
- Karasで生成した画像を商用利用してもいい?
- TensorflowとKarasはちがうの?
- バイクのイラストの画像生成AIをつくりたいんだ。どうしたらいい
- RuntimeError Traceback (most recent call last)
Cell In[1], line 71
68 labels = np.concatenate([np.ones((half_batch, 1)), np.zeros((half_batch, 1))])
70 # 識別器をトレーニング
—> 71 d_loss = discriminator.train_on_batch(imgs, labels)
73 # 生成器をトレーニング
74 noise = np.random.normal(0, 1, (batch_size, latent_dim))
File ~anaconda3libsite-packageskerasenginetraining.py:2498, in Model.train_on_batch(self, x, y, sample_weight, class_weight, reset_metrics, return_dict)
2450 def train_on_batch(
2451 self,
2452 x,
(…)
2457 return_dict=False,
2458 ):
2459 “""Runs a single gradient update on a single batch of data.
2460
2461 Args:
(…)
2496 RuntimeError: If `model.train_on_batch` is wrapped in a `tf.function`.
2497 “""
-> 2498 self._assert_compile_was_called()
2499 self._check_call_args(“train_on_batch")
2500 _disallow_inside_tf_function(“train_on_batch")
File ~anaconda3libsite-packageskerasenginetraining.py:3685, in Model._assert_compile_was_called(self)
3679 def _assert_compile_was_called(self):
3680 # Checks whether `compile` has been called. If it has been called,
3681 # then the optimizer is set. This is different from whether the
3682 # model is compiled
3683 # (i.e. whether the model is built and its inputs/outputs are set).
3684 if not self._is_compiled:
-> 3685 raise RuntimeError(
3686 “You must compile your model before "
3687 “training/testing. "
3688 “Use `model.compile(optimizer, loss)`."
3689 )
RuntimeError: You must compile your model before training/testing. Use `model.compile(optimizer, loss)`.
- 畳み込みニューラルネットワークとは
- 畳み込みは、深層学習になるの?
- CNNは深層学習?
- CNNの階層とは
- ニューラルネットワークと深層学習の違いは?
- どのYouTuberのなら切り抜いていいの?
- YOUTUBEAPIはなにができる
- バイクに関するYOUTUBEを取得して、TwitterにPOSTしたいんだ。
- ModuleNotFoundError: No module named 'googleapiclient’
- YouTube Data APIを使用して、どういう切り口で動画の取得ができる?
- トレンドじゃなくていいよ、毎日人気で面白い動画をTwitterで配信したいんだ。ただし、過去に投稿した動画はNG
- 最新の動画で面白い動画を抽出できる?
- TwitterにAPI申請する際の説明250文字が必要なんだ、なんか書いて
- NotFound(resp)Forbidden: 403 Forbidden
- BadRequest: 400 Bad RequestYour media IDs are invalid.
- —————————————————————————
ValueError Traceback (most recent call last)
Cell In[42], line 57
55 max_results = 10 # 取得する動画の最大数
56 max_duration = 60 # 再生時間の最大値(秒)
—> 57 filtered_videos = search_videos_by_keyword_and_duration(keyword, max_results=max_results, max_duration=max_duration)
58 print(“再生時間が1分以内の動画:")
59 for url in filtered_videos:
Cell In[42], line 31, in search_videos_by_keyword_and_duration(keyword, max_results, max_duration)
26 video_info = youtube.videos().list(
27 part=’contentDetails’, # 再生時間を取得するためにcontentDetailsを指定
28 id=video_id
29 ).execute()
30 duration = video_info['items’][0]['contentDetails’]['duration’]
—> 31 duration_seconds = parse_duration(duration)
32 # 再生時間が指定した時間以内の動画をフィルタリング
33 if duration_seconds <= max_duration:
Cell In[42], line 43, in parse_duration(duration)
39 def parse_duration(duration):
40 # ISO 8601形式の再生時間(例: “PT3M51S")を秒数に変換
41 # PTを削除して、MとSの間にある文字列を取得して分と秒に分割
42 duration = duration.replace('PT’, ")
—> 43 minutes, seconds = duration.split('M’)
44 # 秒数がない場合は0秒として扱う
45 if 'S’ in seconds:
ValueError: not enough values to unpack (expected 2, got 1)
- バグの追跡方法はどうしたらいい?
- リストアとは
- ログファイルのローテーションとは
- Pythonのloggingでログローテーションの機能とかない?
- セキュリティログとは
- 収益化はチャンネル登録者何人から?
- YouTubeのapi出動画を取得できるの?
- チャンネル内のすべての動画を切り抜きたいんだけど
- セレニウムでYOUTUBE動画のダウンロードできる?
- 切り抜く際に、動画をダウンロードしないといけない
- 動画のアップロードはapiでもできる?
- YouTubeのアップロードに関する1日のアップロード上限は?
- チャンネルをわければチャンネルごとにapiをつかっていいの?
- Githubでプロジェクトを作る時、会社用でアカウント作って、開発用に個人のアカウントでDockerとリポジトリクローンして作ってもらう方がいいかな?
- 単体テストと結合テストのやり方おしえて
- 話す機能ってこと?
- ラズベリーパイは、Ubuntuを入れる事はできる?cronつかいたいんだけど
- YouTubeの切り抜きはチャンネル分けないでもいい?
- Whisperとはなにがちがうの?
- Whisperをつかうと何が出来るの?発話形式とは?
- 袋にラベルシールを貼る仕事があるんだ、これ出来ないかな?
- ロボットにホースを繋げて、水やり出来ないかな
- アクチュエータとラズベリーパイを使った面白いアイデアなんでもいいからくれ
- 何か、実用的なものはあるかな?私生活で
- スループット
- GPIO
- GPIOは、アナログの信号を受け取れる場所?
- 5V5Aだと何ワット?
- 25ワットは1時間稼働させるといくら
- Julius
- juliusをつかうと、言葉をはなせるの?
- 要は、文字起こしができる?
- ラズベリーパイを使った組み込み系だと何かあるかな?面白いこと
- センサーを接続するのは、Bluetoothとかでできる?とても広いんだ
- 自動冠水システムについて詳しく
- 冠水は手動のホースを使ってるんだが
- GPSはIOTシムがないとだめだよね?
- バイクに取り付けるハードウェアの選択
どんなハードウエアがあるの?
- ラズベリーパイを連結させてハイスペックサーバーつくれる?
- クラスター管理ソフトの使い方
- ホームオートメーション?
- メディアセンターとは?
- フットスイッチの使い道
- Wifiのアクセスポイントってなに
- Unityってなに
- ポップアップストアとは
- NB-SIMってなに
- IOTシムってなに?通常のスマホにいれるシムと何が違うの?
- IoT SIMの通信速度は遅いの?
- ラズベリーパイでGPSでバイクがどこにあるかを実現することは可能か?
- センサーでエンジンオイルの汚れを検知とかできない?
- 自動車の、衝突検知ってどんなセンサーつかってるの?カメラ以外に。
- ステッピングモーターってなに
- バイクの場合、どんなところにステッピングモーターが使われている?
- ソレノイドバルブってなに
- レーザーモジュールの使い道
- 重さを図るマットとかないかな?商品をマットの上において、重さで在庫数を判定したい
- RFIDタグごとに、商品を割り当てていけばいい?
- RFIDに商品情報を入れるのはどうやるの?
- RFIDが読み取り専用ってなっているんだけど
- 商品管理をしたい、再利用可能なRFIDタグがいい。おすすめの商品を教えて
- 赤外線のカメラにできる事は?
- 人間の体からは、赤外線を出しているの?
- 赤外線ってなに
- バイクの業界で赤外線を利用したものってある?
- 赤外線は、熱源を感じ取るの?
- RFIDで読み書き可能なものを教えて
- 倉庫で使いたいんだ。何度も読み書きできるものが欲しい
- RFIDには商品をどうやって割り当てるの?
- RFIDタグが100個入りとかで売られているんだけど、それぞれのRFIDタグに、ユニークな番号がふられているの?
- バイクのセンサー
- バイクのセンサー
- 無人レジの仕組み、どの商品を取ったのかはどうやって判別する
- ビジョン技術
- RFIDってなに?
- RFIDは、使い捨てなの?
- RFIDの設定はどうするの?
- RFIDのタグに商品情報をいれるってこと?
- RFIDは、商品に巻き付けて使うの?
- 追跡情報ってなに?それほど遠くまで追跡できるの?
- 例えば、棚卸の時、RFIDリーダーで、半径5メーターの商品を全て取得する事もかのう?
- 再利用可能なRFIDはあるの?
- 自動植物水やりシステムを実現したい
- 水やり装置にコストが結構かかりそうなんだけど、低コストで実現するアイデアある?
- 自動播種機とかつくれないかな、たねまく機械
- IMUとは
- 磁力計は、何に活かされるの?
- バイクについているセンサーは、何がある?
- pandasのTってなに
- df.head()は、何行返す?
- np.random.normal(mu, sigma, 1000)
muとsigma
- ax.pie(x, labels=labels, startangle=90, counterclock=False, shadow=True, autopct=’%1.2f%%’)
時計回りになる?
- Pythonで作ったプログラムを動かしたいんだけど、PCをずっと稼働させるのは電気代がかかりそう。めちゃめちゃ小さいサーバーとかない?
- ラズベリーパイで、組み込み系で面白い製品教えて
- 農業系でなにかないかな?
- 害虫の発見はできるの?どうやるの?
- ノルムとはちがうの?
- 2次元配列のドット積は求められるの?
- ドット積は内積のこと?
- 2次元の行列は、内積の計算はできるの
- a@bとnp.dot(a,b)はおなじ?
- pandasのto_html
- 具体的にどんな出力になるの?
- 変数にアンダースコアを使うのはなぜ?
- _="test"
上記のようにアンダースコアに代入するのはなぜ
- ベクトルの足し算
- 線形代数とは
- どうして線形代数というの?
- 代数とは
- 機械学習で特徴量が100個ある場合、次元数は100という認識でよいか
- 確率密度関数と確率質量関数の違い
- ドット積
- エクセルってプログラミング言語なの?
- 低レイヤー処理ってなに?
- 高レイヤーはなに?
- 中レイヤーはあるの?
- コンパイル不要ってどういう意味?
- クラスタリングに用いられるアルゴリズム
- DBSCANは分割数は指定できるの?
- pythonのif文で
if data == None:
noneの場合は、処理をするという記述表現があると思うが、返り値がNoneでなければ処理されないよね?
不確実性があるからやめた方がいいと思うが、どうだろうか。
- 返り値がNoneかどうかは、事前に知っておく必要があるよね
- 問題集とかで、正解の回答を正しい足っていうんだけど、なんで?
- マーケティングに統計が必要な理由は?
- Pythonのエンジニアに統計検定が必要な理由は?
- juliaってなに
- juliaとjupyter notebookの違い
- メインフレームと、ワークステーションの違い
- to_sqlメソッドってあったっけ
- read_sqlもある?
- fillnaで平均値をいれる
- fillnaで最頻値
- set_titleとsuptitle
- matplotlibで曲線を描くメソッドはcurveメソッド?
- 統計検定2級
- 保育士国家資格?
- 資格の参考書を部長におねだりしたら、データサイエンティストに統計検定がどうして必要なのかをきかれた。
- 情報システムとは
- EDMモデル
- IT経営力指標
- ワークステーションとは
- サーバーとはちがうの?
- ハイスペックPCがワークステーション?
- メインフレームとは
- I/Oバウンドタスクとは
- スレッドとプロセスの違い
- GILの制約とは
- CPUバウンドタスクとは
- スレッドが1つという事は、CPUも1コアしか使わないということ?
- 非同期処理とマルチスレッドの違い
- 非同期処理で、複数のCPUコアは使えないの?
- ITガバナンスとは
- Pythonの強化学習について
- 通販サイトでレコメンドを作りたいんだよね、どうしたらいいかな
- ニューラルネットワーク以外で強化学習する方法とかあるの?
- Q-Learning、SARSA、モンテカルロ法、ポリシー勾配法のそれぞれメリットデメリットおしえて
- 楽天市場でのレコメンドシステムの実装したいんだよね
- 楽天市場でレコメンドシステムを構築する場合、説明変数は何を用意したらいいかな
- 商品毎に5つの商品を表示したいんだ
- 自己学習で、事前に重み付けさせて置くこととかできるの?私はA商品を買う人はB商品を買う可能性が高いというのを知ってるから
- オーバーヘッドとは
- オーバーヘッドのメリットデメリット
- 実際のECのレコメンドを想定してQ学習で書く。商品IDを出力する
- レコメンドを作成したとする。翌日、新しい情報が入って来た。それを追加するにはどうしたらいい
- 新しい情報を追加してレコメンドシステムを更新する具体的なコード
- レコメンドされる商品を2つにできる?
- 例えば、AからZという商品があったとする。これらをレコメンドで表示する場合、どこに定義したらいいのか?
- お客さんの行動履歴の情報は無いんだ。商品情報・受注情報しかないけど、レコメンドシステム大丈夫そう?
- 顧客情報があるほうが、強化学習は適しているんだ?
- 強化学習に必要な特徴量すべてあげて
- 商品別クリック数・商品情報・受注情報・顧客情報上記の特徴量で、商品レコメンドできる?ほかに必要な情報ある?
- 商品別クリック数・商品情報・受注情報・顧客情報上記特徴量を使い、商品のレコメンドを作成
- Pythonで商品のレコメンドを作成するためのサンプルコード
- NameError: name 'calculate_reward’ is not defined
- NameError: name 'is_terminal_state’ is not defined
- 強化学習を使ってレコメンド表示するコードをPythonで書いて
- Q値とは
- プログラムを途中でとめると、Q値はリセットされてしまうのかな
- 20万点の商品があって、強化学習でレコメンドを表示させたいんだ。
説明変数はどうしよう
- 報酬を最大化させるってどうやるのか、クリック数とかで判断するのか
- レコメンドシステムの性能向上のため、クリック率も説明変数にいれる
- リアルタイムでモデルを学習させる場合
- リアルタイムで学習させるサンプルコード
- 強化学習をつかったレコメンドをリアルタイムで学習させる方法
- レコメンドのための特徴量(説明変数)として商品名、カテゴリ、販売価格をいれたい
- 強化学習を使用してレコメンドシステムを構築するためのサンプルコード Q学習
- 強化学習に説明変数とか無いの?
- 商品のレコメンドをしてもらうのに、なにも強化学習へは情報(データ)を渡さなくていいの?
- 解析とデータマイニングは同じ意味合いかな?
- レコメンドを強化学習で行いたいんだ
- 強化学習の解説
- サンプルコードかいて
- CartPole環境ってなに
- Q学習とは
- ε-greedy法とは
- 需要予測に基づくクラスタリング:
在庫アイテムの需要予測に基づいてクラスタリングを行います。例えば、需要予測のパターンや需要量に基づいて在庫アイテムをグループ化することができます。これにより、需要の高い商品や需要の低い商品を適切にグループ化し、在庫レベルや補充計画を最適化することができます。
これはどういう意味?
- 需要データというのは?売上データのこと?
- トレンドのデータは、需要データとはいえないのかな
- 通販で強化学習を利用した物ってなにがある
- レコメンドを作りたい
- 評価行列?
- 評価行列を用いるのは、統計的手法なのかな
- データマイニングってなに
- 要は、クラスタリングや分類、回帰等の結果を考察して、解釈すること?
- 在庫アイテムの特性(サイズ、色、ブランドなど)に基づいてクラスタリングを行います。例えば、同じカテゴリの商品や類似した特性を持つ商品をグループ化することができます。これにより、在庫アイテムをより効率的に管理し、類似した特性を持つ商品の補充や再注文を調整することができます。
どういう意味これ
- 在庫アイテムの特性に基づいてクラスタリングを行う場合、特徴量は何になる?
- 在庫アイテムの売れ行きのパターンに基づいてクラスタリングを行います。例えば、売れ筋商品や季節商品、定番商品などの売れ行きパターンに基づいてクラスタリングすることができます。これにより、異なる売れ行きパターンを持つ商品をグループ化し、それぞれのグループに適した在庫管理戦略を適用することができます。
これはどういう意味?
- 在庫アイテムの売れ行きのパターンに基づいてクラスタリングを行う場合、特徴量はどうするの?
- クラスタリングは、時系列データでもいいの?
- KMEANSや階層クラスタリングやDBSCANでも時系列データをクラスタリングできるの?
- 売れ行きのパターンに基づくクラスタリング:
在庫アイテムの売れ行きのパターンに基づいてクラスタリングを行います。例えば、売れ筋商品や季節商品、定番商品などの売れ行きパターンに基づいてクラスタリングすることができます。これにより、異なる売れ行きパターンを持つ商品をグループ化し、それぞれのグループに適した在庫管理戦略を適用することができます。
これは在庫量までは把握できないよね?在庫量を把握するには別途回帰するの?
- 例えば、10月、11月、12月という風に、月ごとにクラスタリングするのはどうしたらいいの?できる?
- クラスタリングは、学習させるという言い方をするの?
- 教師あり学習と強化学習だけが、学習をするのか
- でも、教師無し学習っていうんだね。
- カテゴリのクラスタリング
- どのようにしてクラスタリングするの?商品名の単語とか?
- たとえば、バイク用品を販売していたら、どんなクラスターにわけられると思う?
- カテゴリならどんなクラスターに分けられると思う?
- 在庫のクラスタリング
- 標準偏差からなにがいえる?
- 標準偏差の信用区間とかなかったっけ
- 具体的に教えて、標準偏差の値は95%の信頼があるの?
- pythonで信頼区間を計算するコードちょうだい
- レコメンドでこの信頼区間は使われる?
- 標準偏差がとサンプルデータがあれば、信頼区間は求められるってことでOK?
- 標本サイズが十分に大きい(通常は30以上)
これは、レコードが?
- 商品のレコメンドで、信頼区間を用いるやり方
- アイテムの評価に対する信頼区間とは?アイテムの評価はどうやるの
- レビューが無い商品が大半なんだがレコメンデーションどうしよ
- 顧客セグメンテーションでクラスターに分けたとする、それでどのようなマーケティングができる?
- クラスタリング結果は、どのように出力されるの?
- 実際の出力結果のサンプルちょうだい
- 3次元の説明変数のときの出力結果のサンプルちょうだい
- 多次元になるとグラフではなくて、テキストデータでみて考察するしかないのかな
- 統計結果を機械学習に活かしたい
- 統計的手法と機械学習アルゴリズムを、統計の観点を詳しく説明
- htmlでcolor red
- フォントサイズも含めてテキストを赤色にする
- styleは使いたくない
- ラズベリーパイは、オンプレミスになるのかな
- 顧客セグメンテーションのクラスタリングとは
- サンプルコードかいてPythonde
- クラスタリングの説明変数は、基本2つかな?
- 多次元にすると、プロットできないから考察出来ないと思ったんだが
- 本番環境で電子回路を構築するにはどうしたらいいの?どんなハードウエアをつかうの?
- GPIOピンについて詳しく
- パルス幅変調って?何の役に立つの
- PWMは、変圧器みたいな?
- εイプシロンとは
- 統計をつかって通販に活かしたい
- 無料でしたいんだ。VPNはお金かかるよね
- アパートでIPアドレスが変更されるタイミングってなに?
- IPアドレスが変更するために、定期的にルーターを再起動する仕組みをいれたらどうか
- ラズベリーパイのGPIOってなに
- アナログ信号をいれてもいいの?バイクのセンサーから配線引っ張ってきて、GPIOに接続してもいい?
- ADCの製品おしえて
- MCP3008はどうやってつなぐの?ブレッドボード
- ブレッドボードってテスト用なの?
- 在庫数を予測する際に未知の値の売上データはどう設定するのか?
- クローラーでrequestsでHTMLデータを取得しているんだけど、取得したデータは旧サイトでそこからリダイレクトしているから取得ができていなかった。どうしたらいい
- サーバー側は、クライアント側で開かれたWebページのどこの座標をクリックしたか判別とかできるの?
- デスクトップアプリをつくって、PCから座標を指定してCSVを200回ダウンロードしたいんだ。
業販サイト側にはばれないかな?
- 業販サイト側は、クリック操作を認識できるか?座標の観点で
- javascriptはどこで分かる?
- 仮に座標検知をした場合、それはクリックしたときだけ?マウスを動かす事も検知できるの?
- サーバーサイドで直接マウスの移動を検知はできないね?
- ラズベリーパイで、アパートでグローバルIPを一定時間で変更する方法なんてないよね?
- 通販業界で活かされるクラスタリング
- Pythonで5次元の特徴量がある回帰のサンプルコード
- カテゴリ変数を説明変数にして
- 在庫の回帰をするサンプルコード頂戴
- 説明変数に売上を入れているが、予測する際に売上は未知の値になると思う。どのように設定したらよいのか?もしくは、説明変数に売上を入れるのは不適切なのか?
- 手計算で最適な発注量を求めてみる
- 関数と方程式を一緒に計算できるの?
- X,y,zなら三元方程式?
- 一次方程式と一次関数のちがい
- ようは、一次関数は既に解がわかってるってこと?
- クラスタリングは、通販でどういうことができる?
- 具体例、小売業者が特定の商品の在庫を最適化するケース
- 2x-y=5ってなに
- 2つの商品がある、発注予算は100万だ。最適化を具体例を挙げてみる
- 線形計画法以外に類似したものってある?
- オペレーションズリサーチとは?
- 目的関数とは
- 目的関数を数式で表してみて
- 二次式とは
- 二次式と二次方程式と二次関数の違い
- 方程式ってなに
- 線形計画法で、配送を最適化できるの?
- 顧客セグメンテーション
- ビールの売り子をしているんだけど、どうやったらたくさん売れると思う?
- 線形計画法について、制約についておしえて
- 在庫の最適化問題を線形計画法で解く
- pythonでもあるの?ソルバー
- 決定変数とは
- 目的変数と決定変数の違い
- 簡単な具体的な数式で表現してみて
- 超平面と半空間とは
- 単連結とは
- メーカーAの商品が過去の実績でコンスタントに毎月100個売れていたとする。年間1200個売れる。
メーカーAが毎年1月にキャンペーンを打ち、仕切り条件が30%安くなる。購入量の制約上限は特になし。
これを機会に1年分購入したほうが得になるよね。
これが途端に売れなくなるリスクを考えた時、どれくらいを仕入れるのが良いと思う?
また、売れなくなるリスクは何があるだろうか。
- 適切な数量を計算するためどのように計算したらよいと思う?
- 仮の計算をしてみてよ
- 売れないリスクを考慮してみて。競合商品がでてきた。メーカーが不祥事を起こした等が原因で。
- 線形計画法で、ECで使えそうなものある?
- {},"genreId":"203220″,"tags":[],"hideItem":true,"unlimitedInventoryFlag":false,"purchasablePeriod":{“start":"","end":""},"features":{“searchVisibility":"ALWAYS_VISIBLE","displayNormalCartButton":true,"displaySubscriptionCartButton":false,"inventoryDisplay":"HIDDEN_STOCK","shopContact":true,"review":"SHOP_SETTING","displayManufacturerContents":false},"payment":{“taxIncluded":true,"cashOnDeliveryFeeIncluded":false},"itemDisplaySequence":1,"layout":{“itemLayoutId":8,"navigationId":0,"layoutSequenceId":0,"smallDescriptionId":0,"largeDescriptionId":0,"showcaseId":0},"variants":{“var-change":{“merchantDefinedSkuId":"","restockOnCancel":false,"backOrderFlag":false,"hidden":true,"standardPrice":"9800″,"articleNumber":{“exemptionReason":"4″},"attributes":[{“name":"ブランド名","values":[“-“]},{“name":"メーカー型番","values":[“-“]},{“name":"代表カラー","values":[“-“]}]}}},
{“errors":[{“code":"IE0178″,"message":"The url of productDescription.pc is not allowed.","metadata":{“propertyPath":"productDescription.pc"}}]}
- 数理最適化と機械学習の融合アルゴリズム
- 汎用ソルバーとは
- 決められた予算の中で、2つの商品があって生産数を最大化したい
- 例えば、
Aの商品:コスト100円
Bの商品:コスト200円
予算:10万円
誤差個数:20個
これを線形計画法で解いてみて
- 最小値以外にも、最大値とか求められるの?
- 具体的に数値入れて教えて
- 仮の数値をいれて線形計画法で計算
- 在庫不足1個あたりのコストってなに?
- 在庫過剰1個あたりのコストとは
- 線形計画法は、コストを説明変数にするの?売上とかではないんだね。ネガティブな要素を説明変数にしているイメージ
- 線形計画法とは
- 宝くじの当たる確率
- 当たる確率は、応募者の数によってきまる?
- 宝くじの当選確率は、事前に決まっているの?
- 期待値の計算は、加重平均とにてる?
- 確率の求め方
- 例えば、期待値を求める際に、各販売個数に確率を掛けて、加重平均を出して計算していくが、その確率はどうやって求めているの?
- 線形計画法をつかって何か役立つことあるかな
- 通販なんだけど線形計画法でなにかない
- 在庫の最適化をしたい、どうしたらいい
- 線形計画法を使って在庫の最適化をする方法
- 在庫の最適化を行うための線形計画問題のサンプルの計算式
- 利益を最大化する線形計画法おしえて
- 具体的におねがい
- プログラム使わないで線形計画法で解いてみて
- 他にも問題だして、線形計画法
- 解析コストの高い元のモデルとは
- サロゲートとは
- サロゲートモデルと普通のモデルの違いは?
- 数理最適化アルゴリズム構築とは
- 整数計画法ってなに、分りやすく
- シミュレーテッドアニーリング
- 勾配法、進化的アルゴリズム
- 整数計画法の計算式
- 線形計画法の式は?
- pythonをexeではなくて、pyファイルを仮想環境で構築して配布できないだろうか
- exeファイルにするのに、pyinstaller以外になにかない?
- cx_Freezeをつかいたい
- ImportError: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.htmlOutput is truncated. View as a scrollable element or open in a text editor. Adjust cell output settings..
- TypeError: 'str’ object is not callable
- サロゲートモデルってなに
- 解析コスト削減のためのサロゲートモデル構築とは
- @media(hover: hover)and (prefers-reduced-motion)
- UnboundLocalError: local variable 'accuracy_score’ referenced before assignment
- PulpSolverError: GUROBI: Not Available
- PulpSolverError: GUROBI: Not Available
- GurobiError: No Gurobi license found (user dell25, host DESKTOP-8JHCE4R, hostid 74e1ce8d, cores 4)
- gurobipy.GurobiError: No Gurobi license found
- mysqlのサーバーがAWSにあって、そこへアクセスしたいんだ
- pythonでrdsのmysqlへ接続したい
- UnboundLocalError: local variable 'connection’ referenced before assignment
- RDSから、どんなデータベースがあるかみれる?
- AWSのコントロールパネルからみれる?
- RDSのデータベースが消えている。だれが消したか分かる方法はあるか
- cronが動いていないみたいなんだ
- root@531a0c7c5e99:/home/NBSystem# systemctl status
System has not been booted with systemd as init system (PID 1). Can’t operate.
Failed to connect to bus: Host is down
- AWSのLightsailでDjangoでアプリを開発して、別のIPアドレスのローカル環境で動作させる事は可能か
- 非同期処理 python
- 非同期処理と、マルチプロセスやマルチスレッドはどうちがうの?
- 価格調整ツールを高速化したい
- solverpath はどこに渡せばいいの?
- RDBにLightsailからアクセスできるようにしたい
- パブリックアクセシビリティ」を「はい」に変更したい
- ObjectNotFound: (mysql:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException
- 'mysql’ は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。
- 狙った性能を実現する仕様を導くための逆解析手法構築
- AttributeError: 'NoneType’ object has no attribute 'actualSolve’
- コードがJupyter Notebookでは正常に実行されるが、コマンドラインから実行するとエラーが発生する
- 数理最適化モデル構築
- 最適化技術活用ロードマップとは
- ヒューリスティック手法
- 進化的アルゴリズム
- 多項式はビジネスにどう生かせる?
- O(NlogN)ってどうやって解くの
- 量子アニーリング
- NP困難
- NP完全
- NP完全は、通販にどういかせる?
- NP完全とは一言でいうとなに?
- 多項式とは
- 多項式ってグラフ化できる?
- 多項式にすると何がイイの?
- inputタグ内のvalueの値を取得したい
- BeautifulSoupでサイズとカラー別で取得したいんだ
- 辞書型にappendしたい
- NP完全問題
- return self.soup(id_="right_area")[0](“h3")[0].get_text(strip=True)この取得、エラーになる?
- pythonの requestsモジュールのユーザーエージェントのデフォルト値
- ドメイン .ac
- requestsモジュールにユーザーエージェントを以下付与して
Chrome: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36
- .*?ってなに?
- 非貪欲マッチがあるという事は、貪欲マッチもあるの?
- 00 08 * * *
これは、何時に実行する?
- object of type 'NoneType’ has no len()
- これは、相関関係とはどうちがうの?
- 擬相関とは
- pythonで指定したフォルダ内の全ファイルに拡張子.jpgをつけるソースコード
- バッチ最適化問題
- バッチ処理
- pythonの requestsモジュールのユーザーエージェント
- 機械学習のモデルなら、多くの説明変数があるけど、この場合どうしたらいいの?逆関数をつかい、どれかの説明変数の数値を上げて、逆解析するってことだよね?
- どうやって影響を与える説明変数を特定するの?目的変数に対する説明変数ごとの相関関係?
- 因果関係の分析って何?それを理解しなくても、相関係数だけ見ればいいのでは?
- 編相関関係っていうんだっけ?
- Aの相関係数が高いが、実際Bの相関係数が要因でAもあがっていた。これをなんという?
- ジニ係数は、1に近いほど平等?
- 機械学習で在庫予測して最適化する場合と、非線形最適化する場合と、メリットデメリットおしえて
- 商品開発を、逆問題解析を利用して算出できる?
- <商品開発における配合の最適化>
与えられた種類の配合を用いて、商品の特性を再現する問題を考えます。配合の値によって、特性を予測するモデルを構築し、次にユーザーがほしい特性からどのような配合が必要かを逆算します。こちらも同様に、逆問題解析が適用できます。
これらの課題に対して、逆問題解析が全ての解決手段となるわけではないですが、私は逆問題解析は、「ほしい結果から手段を探る」という手順であることから、これは「人間が受け入れやすい、自然なアプローチ」であるように感じています。機械で出した施策を現場の担当者の方に利用してもらうためには、むやみやたらに数学的に高度化するよりも、人に説明しやすいアプローチであることが重要なことは多々あります。こういった点からも逆問題解析を用いるメリットがあるかと考えています。
- 機械学習で売上予測をして、それに対して逆問題解析で、どうやったらその売上を取りに行けるのかという問題をとける?
- サンプルコード頂戴
- Optimal price: 2.1316282072803006e-14
Predicted sales at optimal price: 999.9999999999998
- 最適な価格が非常に小さい値になっていることから、制約条件や初期解の設定を再考
- Optimal price: 5.720574881621588e-06
Predicted sales at optimal price: 999.9999427942512
- ランダムサーチやグリッドサーチはどうだろうか?
- ランダムサーチ・グリッドサーチは局所解に陥る可能性は?
- 非線形の数理最適化はどうやるの?遺伝的アルゴリズム以外にもある?
- 通販で非線形の最適化問題はどの場面で使う?
- 逆問題解析
- 逆問題解析をバイク通販に役立てられる?
- xlogxってなに
- 極限と関係ある?
- xlogxは、なぜ一旦下がって上がる形状のグラフになるの?
- xlogxはビジネスにどう活かされる?
- フーリエ変換はビジネスにどう活かされる?
- 逆関数とは
- ブラックボックス最適化
- 進化計算、遺伝的アルゴリズム、粒子群最適化、ベイズ最適化、適応的ランダム探索tぽは
- 遺伝的アルゴリズムは、在庫管理にどうやって生かせる?
- 線形計画法とはどうちがうの?同じ数理最適化?
- 局所解とは
- ベイズ最適化でも局所解になる可能性はある?
- Excelでモザイク図を使いたい
- モザイク図を利用した場合、最大値を100%として度数割合を表示できるが、母数の大小についてか考慮していないが、よいのか?複数のデータを元にデータ分析するための1つの材料としてみるのか?
- df[“ITEM"]空白でsplitしたい
- AttributeError: 'float’ object has no attribute 'split’
- 分割した後から1つ目と2つ目を新しいカラムにそれぞれ入れて、CSV出力
- dfをsplitする
- log_{10}(50)ってなに?
- 度数分布の階級値は、階級の平均値?
- 度数は、階級に属するデータの数?
- seleniumで現在のURL表示
- seleniumでログインして、そのセッションを引き継いで、requestsメソッドでアクセスできる?
- 度数分布表の相対度数は、全体の度数に対して、何パーセントか?
- クロス集計表とは
- バイク用品通販で、クロス集計は何に使える?
- 統計分析手法一覧
- 商品・年齢別のクロス集計分析
- バイク用品店が実施できるいくつかのマーケティング施策
- モザイク図は、度数分布表を可視化するためにあるの?
- 度数分布表をまとめたものが、クロス集計表?
- 通販で、レーダーチャートって何に使える?
- 分析に使える?レーダーチャート
- レーダーチャートの点数は、どうやってつけるの?
- 偏差値って何に使えるの?
- 度数分布の階級の範囲はどうしたらいい?
- 階級幅は、等間隔なの?
- 確率はECにどう活かせるかな
- 条件付確率はバイクECにどう生かせる?
- 車種ごとの専用サイトを作って、成約率を高めたい。専用サイトは無理にしても、専用ページはつくれるだろうか。カテゴリが複雑になるだろうか
- ECにおける観察研究と実験研究は、それぞれ何が該当する?具体例をあげちょ
- クロス集計の活用例
- YOUTUBEで収益化をしたい。どうしたらいい
- 日本の市場規模
日本語で答えて
- Excelで度数分布表を作りたい
- 変動係数を通販に活かせることはある?
- 通常の標準偏差の計算だと、68%以内に収まるという意味だよね。
±2ってなに?
- 変動係数は、価格以外に何かに使えるかな
- 標準化を使い、通販に何か生かせないか?
- 顧客セグメンテーションは、標準化により、同ビジネスに活かせるの?
- 通販において、相関係数があるものってなんだろう
- bashでファイルの更新日を取得したい
- サロゲートモデルのサンプルコード教えて
- sklearnで分類する手法すべて教えて
- 回帰もすべて教えて
- クラスタリングもすべて教えて
- 次元削減もすべて教えて
- Pythonでmatplotlib、seaborn のラベルの日本語の文字化けを直す方法
- japanize-matplotlibを使ってseabornの日本語文字化けを直す方法
- sklearnについて教えて
- sklearnで分類の手法すべて教えて
- サポートベクターマシンのサンプルコード教えて
- 決定木のサンプルコード教えて
- ランダムフォレストのサンプルコード教えて
- ナイーブベイズのサンプルコード教えて
- k-最近傍法のサンプルコード
- ニューラルネットワークのサンプルコード教えて
- 勾配ブースティングのサンプルコード教えて
- 多層パーセプトロン
- Pythonのsqlite3のメソッド lastrowid
- Pythonのsqlite3のメソッド arraysize
- Pythonのsqlite3のメソッド description
- Pythonのsqlite3のメソッド connection
- Pythonのsqlite3のメソッド keys
- Pythonのsqlite3のメソッド set_progress_handler
- Pythonのsqlite3のメソッド set_trace_callback
- Pythonのsqlite3のメソッド enable_load_extension
- Pythonのsqlite3のメソッド load_extension
- Pythonのsqlite3のメソッド row_factory
- Pythonのsqlite3のメソッド text_factory
- Pythonのsqlite3のメソッド total_changes
- Pythonのsqlite3のメソッド iterdump
- Pythonのsqlite3のメソッド backup
- Pythonのsqlite3のメソッド fetchone
- Pythonのsqlite3のメソッド fetchmany
- Pythonのsqlite3のメソッド fetchall
- Pythonのsqlite3のメソッド rowcount
- Pythonのsqlite3のメソッド create_function
- Pythonのsqlite3のメソッド create_aggregate
- Pythonのsqlite3のメソッド create_collation
- Pythonのsqlite3のメソッド interrupt
- Pythonのsqlite3のメソッド set_authorizer
- チャットGPTみたいなテキストベースのaiをつくるにはどうしたらいいの?
- チャットgptはいつまで無料で使えるの?
- undetected_chromedriverの使い方教えて Python
- pip uninstallが終わらない場合の対処法
- Pythonのsqlite3のメソッド connect
- Pythonのsqlite3のメソッド cursor
- Pythonのsqlite3のメソッド execute
- Pythonのsqlite3のメソッド commit
- Pythonのsqlite3のメソッド close
- Pythonのsqlite3のメソッド executemany
- Pythonのsqlite3のメソッド version
- Pythonのsqlite3のメソッド isolation_level
- Pythonのsqlite3のメソッド in_transaction
- Pythonのsqlite3のメソッド rollback
- Pythonのsqlite3のメソッド executescript
- Pythonのsklearnメソッド random_projection
- Pythonのsklearnメソッド semi_supervised
- Pythonのsklearnメソッド svm
- Pythonのsklearnメソッド tree
- Pythonのsklearnメソッド utils
- チャットgptは、何を学習材料にしたの?
- Pythonのsklearnメソッド isotonic
- Pythonのsklearnメソッド kernel_approximation
- Pythonのsklearnメソッド kernel_ridge
- Pythonのsklearnメソッド linear_model
- Pythonのsklearnメソッド manifold
- Pythonのsklearnメソッド metrics
- Pythonのsklearnメソッド mixture
- Pythonのsklearnメソッド model_selection
- Pythonのsklearnメソッド multiclass
- Pythonのsklearnメソッド multioutput
- Pythonのsklearnメソッド naive_bayes
- Pythonのsklearnメソッド neighbors
- Pythonのsklearnメソッド neural_network
- Pythonのsklearnメソッド pipeline
- Pythonのsklearnメソッド preprocessing
- Pythonのsklearnメソッド exceptions
- Pythonのsklearnメソッド experimental
- Pythonのsklearnメソッド feature_extraction
- Pythonのsklearnメソッド feature_selection
- Pythonのsklearnメソッド gaussian_process
- Pythonのsklearnメソッド impute
- Pythonのsklearnメソッド inspection
- 仮定でいいので、在庫レベルの最適化をしてみて。ベイズの定理で。
- AQUOS使ってるんだけど、電話かけた時に、相手側に自分の表示される名前を変更したい
- Pythonのsklearnメソッド base
- Pythonのsklearnメソッド calibration
- Pythonのsklearnメソッド cluster
- Pythonのsklearnメソッド compose
- Pythonのsklearnメソッド covariance
- Pythonのsklearnメソッド cross_decomposition
- Pythonのsklearnメソッド datasets
- Pythonのsklearnメソッド decomposition
- Pythonのsklearnメソッド discriminant_analysis
- Pythonのsklearnメソッド dummy
- Pythonのsklearnメソッド ensemble
- ベン図は、ECにどう活用できる?
- 根源事象とは、ECにどう活かせる?
- 余事情を用いた確率計算は、ECにどう活かせる?
- ベイズの定理をECで活用できる?
- 在庫管理をベイズの定理を用いて算出してみて
- 統計学をビジネスに活かしたい。
手順とかあるの?
- 仮説検定ってなに
- 変動係数を算出して、比較する事でビジネスにどういうメリットがある?
- 変動係数は、平均に対する標準偏差の割合を示す指標です。このため、異なるスケールや単位のデータでも比較が容易です。例えば、売上高と利益率などの異なる指標を変動係数で比較することができます。
これに何のメリットがある?どういう活用方法がある?
- 例えば、売上高の変動係数が利益率の変動係数よりも大きい場合、売上高の方がより不安定であると判断できます。
不安定な事によるデメリットは?
- ECマーケテイングにおいて、もっとも重要な事は?
- ECマーケターの仕事
- ECで階乗ってどんな時に使う?活用シーンおしえて
- 順列は、ECでどう活かせる?
- AさんとBさんがそれぞれさいころを1回ずつ投げる時、目の合計が8以上になるのは何通りあるか。
- Excelで箱ひげ図を作りたい。データを四分位数で示す必要があるとおもうんだけど、どうやって箱ひげ図を作ったらいい?
- 四分位範囲は、個数が偶数ならどうなるの?
- ECでクロス集計はどのような場面で役立つ?
- クロス集計に使われるデータは、全てカテゴリ変数?
- 標準偏差は、ビジネスにどう活かせる?
- 売上が高い地域への集中投資を行う理由はなに?
- ROI(投資利益率)の最大化になぜなる?人口が多いから、固定報酬で投資した際に効率が良いとか、そういう理由?
- 度数分布の分析方法
- ローレンツ曲線からどうビジネスに活かせる?
- 効果測定をレポートにしたい。どんなアプリがいいかな、Googleのがあればそれを使いたい
- Excelで幾何平均
- 歪度と尖度が、データセット全体に対しての数値だよね。例えば、尖度が+の場合、どのデータが尖っている要因なのかまでは、尖度情報からは分からないよね?その場合どうしたらいいの?
- Excelで、尖度と歪度を求めたい
- 歪度と尖度は、どこからどこの値を取るの・
- 箱ひげ図は、どのような場合につかったらいい?
- 売上の偏差値を出したとする。その場合、単に売上が多い順と並べた時にどうちがうの?
- 偏差値を出した。これをグラフ描画にしてみたい。縦軸・横軸なににしようか
- ヒストグラムでエクセルで描画したい。階級分けどうしよう
- 通販でバブルチャートってどう活かせるかな
- 上記サンプルデータをバブルチャートにプロットして、どう考察できる?
- 度数分布表をつかって、バイク用品ECの分析への活用方法一覧
- 3件法
- Excelで分散の求め方
- countifsみたいな条件指定で分散を求められないかな?
- 商品ごとの受注実績から変動係数を求めたんだけど、価格戦略に活かしたい。
具体的に係数が何以下の場合はどうしたらいいとかある?
- 中程度の変動係数の場合、なぜセグメンテーション戦略を行うのか?
- バンドル販売は、どのような商品に行ったほうが良いか
- 売上が0の商品が大量にあると、偏差値も下がるよね
- 商品毎の売上高に対する偏差値を出した。これらは何を意味するのか
- 平均
- 2次関数の相関関係は表現できるのか
- 帯グラフ
- bashで行選択するには?
- bashのターミナルで行ごと削除したい。
- bashのターミナルで行ごと削除したい。キーボードのショートカットをおしえて
- bashでフォルダを検索したい
- モデルでカラムを必須にしたくない
- djangoでモデルにnullを許容したい
- HTML側でもnullを許容したい
- {% extends 'cms/base.html’ %}
{% block title %}商品リスト{% endblock %}
{% block content %}
<h2>商品の作成</h2>
<form action="{% url 'cms:create_product’ %}" method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">作成</button>
</form>
{% endblock %}
実行すると、「このフィールドを入力してください」ってでる
- django 管理サイト ログイン情報 わすれた
- 欠損値
- 平均、中央値、分位数、合計、割合の違い
- python venv testvenvで仮想環境を作るけど、仮想環境のtestvenvの中に開発用ソースを入れる必要性はない?
- linuxでプロセスを確認するには?
- rakuten_main.pyが実行されているか確認したいんだ
- プロセスの稼働開始時間を知りたい
- dockerの中に、osとかはいってるの??
- dockerは、サーバーなの?
- dockerって一言で言えばなにをするものなの
- linuxやwindowsでも実行できるってこと?
- 要は、異なるサーバー上でもうごかせるってことに価値があるの?
- dockerのデメリットはなにがある?
- dockerコマンド?bashとかじゃないの?
- dockerがないと、何が不便なの
- 例えば、pythonで作ったツールをdockerにいれるのは、なにかいいことあるの?
- Pythonツールをデプロイってなに
- docker内のアプリケーションを、定期実行はできるの?
- windowsの場合は?
- 同じ環境で実行するなら、dockerは不要?
- dockerでdjangoつくれる?
- * 8 * * * sh /home/share/scp_sakura_suruzo_data/cron.sh
どういう意味
- インタプリタを指定していなくても、activateしていればいいの?
- * * * /1 * sh /home/share/jenkins_build/cron.sh
どういういみ
- * * * */1 * sh /home/share/jenkins_build/cron.sh
- * * * */1 * sh /home/share/jenkins_build/cron.sh
どういう意味
- 毎月実行されるという事?
- bashで現在のターミナルのカレントディレクトリにファイルアップロードしたい
- chmodで編集も可能にできる?
- sudo chown -R root:root /path/to/folder
これはどういう意味?
- ubuntuでファイルに上書きできない。
- main.py’ を保存できませんでした。ファイル 'vscode-remote://ssh-remote+192.168.8.205/home/share/scp_sakura_suruzo_data/main.py’ を書き込むことができません (NoPermissions (FileSystemError): Error: EACCES: permission denied, open '/home/share/scp_sakura_suruzo_data/main.py’)
- /home/ec-server/.ssh
上記に秘密鍵を送りたい
- chmod でサブフォルダも変更したい
- cron.sh: 15: cannot create home/share/scp_sakura_suruzo_data/cron.log: Directory nonexistent
- 47 15 * * * sh /home/share/scp_sakura_suruzo_data/cron.sh
これはどういう意味?
- (venv) ec-server@ecserver:/home/share$ ls
ls: ディレクトリ '.’ を開くことが出来ません: 許可がありません
- 読み取りも書き込みも実行も付与したい
- activateがうまくいっていない
- 全ユーザーにたいして適用したい
- sudo chmod +rx ./
これはどうなる?カレントディレクトリ?
- linuxの.sshフォルダはどこにある
- .sshの「.」は隠しフォルダとして使うんだっけ?
- 逆にbashで失敗したら実行するには&&ではなくて何を使う?
- &&と||を組み合わせる事はできるの?
- bashでif文はあるの?
- 0 2 * * * cd /path/to/local/repository git pull origin master上記をif文使ってできる?
- 0 2 * * *これの意味
- クーロンジョブで毎分実行するには?
- クーロンジョブで3分毎に実行するには?
- /は時間ごとにって意味?
- githubでリポジトリをpullしているクライアントへ、一括に反映させる方法はある?
- クライアントへpushする方法はある?
- 工数の人日
- bashでフォルダのアクセスを許可したい。
- ネットワーク共有は、サーバーが離れている場合はどうなる?AWSとサクラVPSの場合。
- AWS S3やさくらのオブジェクトストレージを使用したい
- 2つのサーバー間のネットワークをどうやって共有するの
- バージョン管理システム (VCS) を使用:
バージョン管理システム(例: Git)を使用して、share.pyファイルをリポジトリに格納します。各サーバーで適切なバージョンのshare.pyをクローンまたはダウンロードして使用します。これにより、変更の追跡と管理が容易になります。
上記を利用した場合、定期的に各サーバーに反映させれる方法はあるのか?
- bashの&&ってなに
- pythonでSSH接続を使用してサーバーに接続し、コマンドを実行するサンプルコード
- PCを起動したらリモートデスクトップを起動したい
- プログラムをWindowsのスタートアップにしたらどうなる?
- 接続先のIPアドレスもいれたい
- uhd graphics 630 解像度
- ウルトラワイドモニターをかったんだけど、解像度が低くて全画面にできない
- lg hdr wfhdのウルトラワイドモニターで、uhd graphics630で接続してるんだけど、解像度が1920以上がない
- HDMIケーブルのバージョンの見分け方
- タスクスケジューラで動かしている.pyスクリプトを、実行中にファイル編集したらどうなる?
- 複数のサーバーでshare.pyファイルを共有して使いたい。
- bashでファイルを作る
- import requests
url = “http://example.com" # 確認したいサーバーのURLを指定
try:
response = requests.get(url)
response.raise_for_status()
print(“サーバーは正常に稼働しています。")
except requests.exceptions.RequestException as e:
print(f"サーバーが正常に稼働していません。エラー: {e}")
VPSに接続できる?
- ポートHTTPTCP80Any IPv4 address
- ConnectionResetError(104, 'Connection reset by peer’)
- SSH接続を使用してサーバーに直接アクセスし、問題を調査する
- HTTPリクエストして、サーバーダウンしているか確認するPythonスクリプト
- WindowsのVPSに接続して、サーバーが起動しているか確認するPythonスクリプト
- PING 133.242.136.52 (133.242.136.52) 56(84) バイトのデータ
— 133.242.136.52 ping 統計 —
送信パケット数 1, 受信パケット数 0, パケット損失 100%, 時間 0ミリ秒
VPS (133.242.136.52) は応答していません。
起動してるんだけど
- ファイルサイズを知りたい
- bashでファイルサイズを知りたい
- pingのポート番号
- リモート接続の種類教えて
- タスクスケジューラでアプリケーションが閉じていたら実行する方法はある?
- VSCODEでSSH接続でドラッグアンドドロップでファイルアップロードする際、時間を知りたい
- bash killできない
- ロールバックとは
- HTTPでサーバーが稼働しているか確認するサンプルスクリプト
- タスクスケジューラでタスクが停止していたら実行する方法ある?
- AWSのlightsailが停止していた。停止に気づく方法
- AWS Systems Managerについて
- ping送信って、サーバーダウンしてるか確認
- アクティブでないセッションのタイムアウトがない
- 「制限時間に達したらセッションを終了」これを無効にしたらどうなる
- 「アクティブなリモートデスクトップサービスセッションの制限時間を設定する」これを無効にしたらどうなる
- アクティブでアイドル状態になっているリモートデスクトップサービスのセッションの制限時間を設定する
これを無効にしたらどうなる
- 「切断されたセッションの制限時間を設定する」これはなに
- 「切断されたセッションの制限時間を無効にした場合」 無効にしたらどうなる
- 「切断されたセッションの制限時間」の変更が有効になるためには、特に再起動はしたほうがいい?
- リモートデスクトップのクライアントのPCを再起動したら、セッションはきれる?
- リモートデスクトップサーバー側で何か設定は必要かな?
- リモートデスクトップアプリをタスクスケジューラで起動して指定のサーバーへ接続したい。
- リモートデスクトップ接続のアプリケーションを、縮小化すると、セッションは切れる??
クライアントでリモートデスクトップ接続を縮小化して、サーバーのタスクスケジューラで指定の時間に起動すると起動しない。
だが、拡大してリモートデスクトップ接続のアプリケーションをアクティブな状態にするとサーバーのタスクスケジューラは正常に起動する
- タスクスケジューラで、仮想デスクトップで起動させる方法ある?
- サービスとしてブラウザを実行:
ブラウザをサービスとして実行することも検討できますが、通常のWebブラウザはサービスとして実行することが難しく、動作が不安定になる可能性があります。
- リモートデスクトップ接続をしていないと、非対話モードになる?
- リモートデスクトップ接続してなくても対話モードにする方法ってある?
- “Interact with desktop" オプションがグループポリシーエディタに表示されない
- リモートデスクトップ接続でセッションはどれくらいで切れるの?
- ユーザーアカウントのログオン情報:
タスクスケジューラでプログラムを実行する際、ユーザーアカウントがログオン情報を保持できるように設定してください。これにより、ログオンされていない状態でもプログラムが正常に動作します。
- 「操作」タブの下部にある「ユーザーアカウントを切り替えて実行(U)」オプションを選択します。これがみあたらない
- ログオンってなに
- SSH接続したらそれはログオン状態になっているといえる?
- EDGEがログオフ状態でもブラウザを起動できるようにしたい。
- サービスとしてブラウザを起動:
タスクスケジューラではなく、Windowsサービスとしてブラウザを起動することを検討します。これにより、サービスがログオンしていない状態でも実行できます。
- オートログオンの設定:
Windowsサーバーにオートログオンを設定して、サーバーが自動的に特定のユーザーアカウントでログオンするようにします。これにより、ログオフ状態でも特定のユーザーセッションが確立され、ブラウザが起動できます。
- オートログオンは、常時ログオンした状態になっているという事?
- オートログオンに設定したが、ブラウザは起動しない。
- 非対話モードでプログラムを実行とは、ヘッドレスモードってこと?
- Windows Serverのエディションには、Standard、Datacenter、Essentialsなどがあり、それぞれのエディションによって提供される機能が異なります。一部のエディションでは gpedit.msc が利用できず、代わりにレジストリエディタを使用する必要があります。
セッションのタイムアウト設定を変更する方法としては、次の手順を試してみてください。
レジストリエディタを開く:
Win + R キーを押して「実行」ダイアログを開き、そこに regedit と入力して Enter キーを押します。
レジストリキーを変更:
次のレジストリキーに進みます。
Copy code
HKEY_LOCAL_MACHINESOFTWAREPoliciesMicrosoftWindows NTTerminal Services
右側のウィンドウで MaxDisconnectionTime という名前の DWORD 値を見つけます。
MaxDisconnectionTime を右クリックして「変更」を選択し、値データを 0 に設定します。
再起動:
変更を適用するためには、コンピュータを再起動する必要があります。
これにより、セッションがアクティブでない場合でもセッションが維持されるようになります。ただし、レジストリエディタを使用する際には慎重に操作し、変更前にバックアップを取ることをお勧めします。
このやりかたをやってみたが、ログオンは維持されていないみたいだ。
Internetエクスプローラーのドライバーが起動しない。
- グループポリシーエディタの設定:
gpedit.msc を使用できる場合は、グループポリシーエディタで該当するポリシーを確認し、セッションのタイムアウトに関するポリシーが正しく構成されているか確認してください。
- 側のウィンドウで「セッション時間制限」に関連するポリシーが表示されます。
無効 もしくは 有効 となっており、それに応じた時間が設定されていることを確認します。
すべて未構成になっている。どうしたらいい
- windowsサーバーでログオフ状態だと、ブラウザが自動起動しないんだ。なんで
- ブラウザがサービスとして実行されている場合、サービスがログオフ状態で実行されるように設定されているか確認してください。必要に応じてサービスのログオンのプロパティを変更してみてください。
- edgeなんだけど、サービスはどれに該当するかな
- seleniumでinternetexplorerのドライバーをwindowsサーバーで毎朝8時に動作させたい。
ヘッドレスモードが使えないので、ブラウザを起動する必要がある。
プログラムはすでにできていて動作確認済みだ。
タスクスケジューラで動作させたいが、常にサーバーへログオンしている状態ではないので、Internetexplorerのドライバーが動作しない。ブラウザが起動しないのだ。
その対応についてどうしたらよいか教えてほしい。
- ユーザーの権限設定:
タスクスケジューラで設定したタスクが正しく実行されるようにするために、関連するユーザーアカウントが適切な権限を持っていることを確認してください。ドライバーやプログラムがアクセスできるように権限を付与してください。
これはどうしたらいい
- scheduleで同階層にある、main.pyのif __name__ =="__main__":を実行させたい
- windowsサーバーでリモートデスクトップ接続を解除すると、ログオフ状態になってしまう。常にログオン状態にしておきたいが方法ある?
- ディスコネクトせずにセッションを残す:リモートデスクトップ接続時に、「ディスコネクト」ボタンを使用すると、セッションがログオフされずに残ります。再接続時には、前回の状態が保持されます。
- セッションのタイムアウト設定変更:ログオフを回避するもう一つの方法は、セッションのタイムアウト設定を変更することです。これにより、一定時間アクティブでない状態でもセッションが維持されます。これは一時的な解決策であり、セキュリティ上の懸念があるため慎重に設定する必要があります。グループポリシーエディタ (gpedit.msc) を開き、コンピュータの構成 -> Windowsの設定 -> セッションのセキュリティ -> アクティブでないセッションのタイムアウト でセッションのタイムアウトを変更できます。
- セッションのセキュリティがない
- Windowsserverでセッションのタイムアウト設定を変更する方法
- リモートデスクトップを全画面から縮小させるには?
- リモートデスクトップ接続中にメニューバーが表示されなくなった
- item_import_path=r"../update_suruzo_price_search/download"
これだとカレントディレクトリによって変わるよね、なんかいい方法ない?
- タスクスケジューラで「ユーザーがログオンしているかどうかにかかわらず実行する」にチェックして実行すると、実行しない
- パイソンで定期実行させるモジュールのサンプルコード
- scheduleモジュールについて詳しく
- 毎日8時半にジョブを実行させたい
- time.sleep(60)にしたらタスクはスキップされる?
- import schedule
import time
from datetime import datetime
def job():
print(“ジョブが実行されました。")
# 毎日8時30分にジョブを実行
schedule.every().day.at(“08:30").do(job)
while True:
# 現在の日時を取得
current_time = datetime.now().strftime(“%H:%M:%S")
print(f"現在の時刻: {current_time}")
# スケジュールに登録されているジョブを実行
schedule.run_pending()
# 1分ごとに確認
time.sleep(120)
これなら、タスクはスキップされる可能性はある?8時31分になったらタスクは実行されないよね
- 基本sleepは60秒にしておいた方がいい?
- schedule.run_pending()は、スケジュールされているジョブを全て実行させるってこと?
- ジョブが未だ実行中の場合、どうなるの?
- トランザクションを明示的にコミットしてないけどいいの?
- with session.begin():
for index, row in df.iterrows():
user = User(name=row['name’])
session.add(user)
これは、for文で回る回数=トランザクションの回数ってこと?
- SQLalchemyにしたら、トランザクション管理も自動的にしてくれる?
- SQLAlchemyを使用してデータベースからデータを取得するための基本的なSELECTクエリ
- 重複する場合は上書きとかの処理できる?
- SQLalchemyでできないことはある?
- SQLalchemyで出来ないことは、SQL文を直接書いて処理
- PythonでSQL文を直接書いてSQLAlchemyを使用する
- PythonでSQL文を書いているんだけど、SQLalchemyへスムーズへ移行するにはどうしたらいいかな
- SQLAlchemyの詳細
- dataframeのデータをsqlalchemyを使って更新できる?
- オンプレミスとVPSはどうちがうの?
- Bashシェルスクリプトを使用して、特定のファイルの容量を確認
- 全行削除するSQL
- windowsタスクスケジューラをbashで管理できないの?
- システムって2つ以上のモジュールが連携していればシステムといえる?
- pythonでDBを管理するライブラリはある?
- SQLAlchemyにできる事
- ORMとは
- SQLAlchemyで外部キーの使い方
- unsupported operand type(s) for -: 'int’ and 'str’ (yahoo_main.py)
- VPSはクラウドのサーバーでしょ、自社のサーバーもVPSっていうの?
- タスクスケジューラの設定に「タスクの再実行がスケジュールされていない場合に削除されるまでの時間」という項目があるが、これは何?
- UrlFetchAppとは
- * 9 * * * sh /home/share/scp_sakura_suruzo_data/cron.shこれはどういういみ?
- ユニットテストってなに
- ユニットテストのサンプル教えて
- ユニットテストとデバッグは異なる?
- ユニットテストは、何パターンもするの?
- テストが不十分だとどうなる
- セキュリティに関するテスト、具体的にどのようなケース?
- from .settings import variable1
クラスや関数だけでなく、変数も「import」で指定できるの?
- pythonでmainの開始を定義したい
- pythonをタスクスケジューラで実行すると、どこかで一時停止するように止まってしまう。
ただ、どこでとまっているか分からないんだ。どうすればいい?
- python your_script.py > output.log 2>&1
これを実行すると、どんな風にログがでるの?
- print文がでるってこと?
- loggingつかうのと、print文で標準出力する方法とどっちがいいの?何が違う?
- python -m pdb your_script.py pdbとは
- windowsサーバーのタスクスケジューラで定期実行すると動作しない。ただ、実行ボタンを押下すると正常に実行される、何が原因だとおもう?
- Excelの「再計算実行」ボタンは、全てのシートに反映される?
- from .setting import *
from setting import *
2つは同じ意味?
- 相対インポートで、settings.pyには、変数が入っている。どうよみこませたらいい?
from .settings import *
でいい?
- Total Physical Memory: Total Physical Memory: 表示されない
- Lightsailにwebサーバーを付けるのはどうやるの
- Djangoでのウェブサーバーはどうやるの
- ウェブ上で Django アプリケーションを公開するためには
- LightsailにMYSQLをおきたい
- gitignoreのサンプルファイル
- windowsのエクスプローラー左に表示されているメニューを消したい
- ポート番号を指定してSSH接続を行う
- Windowsサーバーのメモリをチェックするpythonスクリプト
- 公開鍵認証を使用してリモートサーバーにSSHでアクセス
- Pythonでクラウドのwindowsサーバー(VPS)のメモリー状況を定期的に把握したい。
- 公開鍵認証を使用してリモートサーバーにアクセスする
- VPNを構築するために特別ハードウエアを用意する必要とかは無い?サーバーとクライアントのソフトウエアの設定だけでいける?
- VPNで接続したら、そのままbashのコマンドがつかえるの?
- sshとvpnはちがうの?
- VPNなんか使わないでも、SSH接続すればいいじゃん
- VPNとSSHの併用はできるの?
- VNCするためにVPNする
- サーバーがダウンしていないかping送信を定期実行で確認しようと思う
- サーバーの監視をするスクリプト
- Ubuntuのサーバーでデスクトップが開けないのはなぜ?
- AWS Lightsailにデスクトップを入れる事も可能?
- AWS Lightsailにデスクトップ環境を構築し、リモートからアクセスする
- Ubuntu上でデスクトップ環境をセットアップし、それにリモートからアクセスする
- GUIで操作するなら、SSHはNGでしょ?VNCしか術はない?
- VNCで接続する場合、同じグローバルIPアドレスからでないとアクセスできないよね?別なグローバルIPアドレスからVNCでアクセスは可能?
- VNCサーバーへのアクセスを特定のネットワークからのみ許可することは可能か
- VPNってどうやるの
- mysqlを設置して、pythonで操作するところまで教えて
- ファイヤーウォールでpingの受信を受け付けたい
- awsのubuntuサーバーでpingを受信したい
- Error: not a valid RSA private key file
- ipynbでやってたからSSH接続エラーでてた。
- free -m コマンドの出力結果でメモリ4Gのサーバーってわかる?
- free -m コマンドはメモリ(RAM)だけでなく、CPUもみれないの?
- lscpu コマンドの詳細な出力
- lscpu コマンドでCPU利用率とかはわからないの?
- Mysql workbenchの使い方
- MySQL Workbenchを日本語化できない?
- PostgreSQLとMySQLは、DBサーバーを設置しないといけないの?
- MYSQLとPostgreSQLは、基本操作はおなじ?
- Redmineを未完了→完了にするには
- VPNの設定
- VPNってお金かかるの?
- UbuntuでVPN接続したい
- SQLAlchemyのサンプルコード
- SQLAlchemyで既存のデータベースに接続したい場合はどうするの?
- SQLAlchemyを使用する場合、既存のデータベースを操作するときも、モデルを定義しないといけないの?手間だね
- MySQL Workbenchってなに
- MySQLの使い方
- Ubuntu に MySQL をインストールする手順
- MySQLをインストールした、Pythonで接続するまで
- CSSで余白があかないよ~
- <h3>のフォントを変えたいbootstrap
- Bootstrapではtext-primaryと同様、secondaryもある?
- HTMLページに動画を埋め込み、ページアクセス時に動画が自動再生されるようにする
- viエディタでテキストをコピーする方法
- 現在のファイルから指定のファイルまでの相対パスを取得
- githubのコミットして同期とは
- bootstrapでmarginを上に指定したい
- mt-10(マージンを指定)かpt-10(パディングを指定)か、どっちがいいの?
- aタグを使って記事ページへリンクさせたい。そのとき、djangoでurls.pyとか、どうしたらいい?
- 記事ページごとにurls.pyを設定するの面倒なんだけど
- utf-8
Shift_JIS(Excelの標準のフォーマット)
cp932
utf-16
utf-32
iso-8859-15
mac_japanese
euc_jp
iso2022_jp
ibm437
windows-1252
latin-1
ascii
各文字コードについて各々簡単に説明して。記事つくりたい
- Bootstrap pt-50とかもできる?
- for文で都度returnを返したい
- ModuleNotFoundError: No module named 'BytesIO’
- pandas to_csvのエンコーディングの種類教えて
- pandas のto_csvメソッドがサポートしているエンコーディングの一覧2
- pandas のto_csvメソッドがサポートしているエンコーディングの一覧
- shutil.moveの使い方
- shutil使わなくてもいいよ、if文使わずに上書き移動できる?
- os.path.basename
- 文字コードを変換するプログラムをdjangoで作りたい
- DjangoでCSVのファイルをアップロードして、文字コードをチェックボックスで指定してアップロードして、変換してDLさせたい
- request.POST.get('selected_encoding’, 'utf-8’)これどういう意味?
- フォームで複数ファイルを選択できるようにするにしたい
- [<InMemoryUploadedFile: sku_data_20240109123145.csv (text/csv)>, <InMemoryUploadedFile: sku_data_20240109123146.csv (text/csv)>]
Detected encoding: Windows-1254, Confidence: 0.9856597913264844
Error: I/O operation on closed file.
Detected encoding: SHIFT_JIS, Confidence: 0.99
Error: I/O operation on closed file.
- def concat_csv(request):
if request.method == 'POST’ and request.FILES.getlist('files’):
files = request.FILES.getlist('files’)
print(files)
data_list = []
for file in files:
try:
with file.open('rb’) as f:
# ファイルの中身を一部読み取ってエンコーディングを判定
result = chardet.detect(f.read(10000))
detected_encoding = result['encoding’]
confidence = result['confidence’]
print(f"Detected encoding: {detected_encoding}, Confidence: {confidence}")
# ファイルを再度開いてから読み込み
with file.open('rb’) as f:
# ファイルがCSVかどうかのチェックも追加
if file.name.endswith('.csv’):
try:
df = pd.read_csv(f, encoding=detected_encoding)
data_list.append(df)
except UnicodeDecodeError as e:
print(f"UnicodeDecodeError: {e}")
print(“Failed to read CSV file even with detected encoding.")
except pd.errors.EmptyDataError:
print(“CSV file is empty.")
else:
print(f"Unsupported file format: {file.name}")
except Exception as e:
print(f"Error: {e}")
# データが1つ以上ある場合にのみ pd.concat を実行
if data_list:
df = pd.concat(data_list, axis=0)
# 以下、データフレームの後続の処理を行う(例:CSVに保存、レスポンスとして返すなど)
# 保存先のパスを指定(適切なパスを設定してください)
output_path = “/Concat_data.csv"
# ファイルの保存
df.to_csv(output_path, index=False, encoding="cp932″, errors="ignore")
# ファイルのダウンロードを促すレスポンスを返す
with open(output_path, 'rb’) as file:
response = HttpResponse(file.read(), content_type=’application/force-download’)
response['Content-Disposition’] = f’attachment; filename={os.path.basename(output_path)}’
return response
return render(request, 'tools/concat_csv.html’)
- Error: 'utf-8’ codec can’t decode byte 0x82 in position 0: invalid start byte
Error: 'utf-8’ codec can’t decode byte 0x82 in position 0: invalid start byte
- Error: 'utf-8’ codec can’t decode byte 0x82 in position 0: invalid start byte
Error: 'utf-8’ codec can’t decode byte 0x82 in position 0: invalid start byte
[21/Jan/2024 05:22:30] “POST /tools/concat_csv/ HTTP/1.1" 200 2502
- エラーしてもignoreできない?
- Error: Expected object of type bytes or bytearray, got: <class 'str’>
- ナビゲーションを作りたい
- urls.pyで該当のURLパターンにnameを指定し、ナビゲーションバー内のリンクにそのnameを使ってリンクを設定したい
- UnicodeDecodeError: 'charmap’ codec can’t decode byte 0x8e in position 7: character maps to <undefined>
- 余白とかもいい感じにして、左に寄り過ぎてる
- bootstrapのpタグ
- 各タグのクラスの規則性みたいなのはあるの?
- bootstrapのチートシート
- djangoでPCのローカルフォルダの名前を変更とかできる?
- def concat_csv(request):
if request.method == 'POST’ and request.FILES.getlist('files’):
files = request.FILES.getlist('files’)
print(files)
data_list=[]
for file in files:
try:
data_list.append(pd.read_csv(file, encoding="cp932″))
except UnicodeDecodeError:
try:
data_list.append(pd.read_csv(file, encoding="shift-jis"))
except UnicodeDecodeError:
data_list.append(pd.read_csv(file, encoding="utf-8″))
except pd.errors.ParserError:
# XLRDErrorが発生する可能性があるため、ParserErrorに変更
data_list.append(pd.read_excel(file, encoding="cp932″))
df = pd.concat(data_list, axis=0)
t_delta = datetime.timedelta(hours=9)
JST = datetime.timezone(t_delta, 'JST’)
now_jst = datetime.datetime.now(JST)
now = now_jst.strftime('%Y%m%d%H%M%S’)
output_path = “/Concat_data.csv"
df.to_csv(output_path, index=False, encoding="cp932″, errors="ignore")
# ファイルのダウンロードを促すレスポンスを返す
with open(output_path, 'rb’) as file:
response = HttpResponse(file.read(), content_type=’application/force-download’)
response['Content-Disposition’] = f’attachment; filename={os.path.basename(output_path)}’
return response
# return HttpResponse('Files uploaded successfully.’)
return render(request, 'tools/concat_csv.html’ )
ファイルを連結して出力したい
- chardetなどのライブラリを使ってファイルのエンコーディングを判定することもできます。
- cronで2時間毎に実行したい
- cronで3時間毎に実行したい
- crontabのエディタをviにしたい
- bootstrapをdjangoで使いたい
- bootstrapを使ってh2タグをスタイリッシュにしたい
- Bootstrap 5が反映されない
- bootstrapのタイトル
- bootstrapのフォーム
- {% extends 'tools/base.html’ %}
{% load django_bootstrap5 %}
{% block content %}
<!– tools/upload.html –>
<h2 class="h2″>サーバーへファイルをバックアップ</h2>
<form action="" method="post" enctype="multipart/form-data">
{% csrf_token %}
<input type="file" name="files" multiple>
<input type="submit" value="Upload">
</form>
{% endblock %}
- windowsでサンダーバードを4時間毎に再起動させたい。
- Thunderbirdのインストール先
- thunderbirdをリスタートして送受信したい
- サンダーバードの送受信は何分に一回される?操作できる?
- .gitignore ファイル
- Visual Studio Code (VSCode)でGitからトラッキングされているファイルやディレクトリを削除
- GitHubにおいて、プライベートブランチを作成
- gitでデプロイする場合はpullするの?
- .gitがあるんだけど、どこからpullしたかわかる?
- githubのアップロード上限は1ファイル何メガ
- ファイル容量が大きいCSVがあったので、gitignoreを追加してコミット・プッシュしたい
- githubでリポジトリ名を変更できる?
- VSコードでgithubでcrawlというリポジトリを作ってpushしようとしたんだけど、既にgithubにあるとvscode上で出てしまった。ただgithubには既にリネームして重複しないようにしてある。けど、「github repository already exists」と表示されてリポジトリーつくれない
- VS Codeでの git commit が終わらない
- VS Codeでgit commitが終了せずに「No connection」
- nano テキストエディタを使用して、行ごと削除する手順
- vi を使用して crontab ファイルを開く
- viで全行選択
- vi エディタで行を削除するための手順
- vi エディタで行をコピーして貼り付ける手順
- Redmineでのステータスの一括変更
- Redmineで子チケット(サブチケット)のみを抽出する方法
- Redmineで全てのチケットを一括で終了
- Redmineで一括でチケットをエクスポート
- /var/spool/cron/crontabs/ユーザー名に遷移したいが、「許可がありません」とでた
- crontab -rを誤って押して削除してしまった。
- ログファイルを確認するための基本的なコマンド bash
- settings.py モジュール内で定義されている変数一覧を取得したい Django
- NameError: name 'settings’ is not defined Django
- %whosとは Ipython
- ファイル更新日を知りたい bash
- Redmineでチケットのステータスを一括更新したい
- Redmineの一番孫のチケットだけ取得したい
- Redmineでパスワード認証したい
- Redmineがログインしていなくても見れてしまう。どうにかしたい
- Pythonを使用してSSH公開鍵認証でAmazon Lightsailへアクセスして、ファイルを設置したい
- UbuntuのSSH関連のファイルのあるパスってどこ
- 同一階層の settings.py を別のPythonファイルからインポートする
- settings.py 内の全ての変数や関数を * で一括してインポートしたい
- TypeError: cannot unpack non-iterable HTTPBasicAuth object
- crontab -r コマンドをおしてcrontab ファイルを削除してしまった。
- ElementNotInteractableException
- AttributeError: 'WebElement’ object has no attribute 'get_text’
- DATA_UPLOAD_MAX_NUMBER_FILESを無制限に設定する Django
- Product_dataこれを複数系にすると?
- DataFrame(df)の1列目をインデックスとして指定する
- RedmineでCSVでチケットを削除したい
- ユーザーアカウントの設定から自動ログオンを有効にする手順
- メモリとCPUの利用率を取得する
- paramiko を使用してSSH接続を確立し、free -m コマンドをリモートマシン上で実行してメモリの使用状況を取得
- WindowsでリモートマシンのメモリやCPUの利用率を取得
- WinRMでの公開鍵認証
- command_to_run = “ここに実行したいPowerShellコマンドを指定"
CPU、メモリの利用率がほしい
- ValueError: max() arg is an empty sequence
- ValueError: max() arg is an empty sequence
- フォルダが存在するにも関わらず、glob で引き当てられない
- windowsからubuntuに引っ越ししているんだ。それでubuntuでうごかないんだ。os.path.getctimeが対応していないのかな?
- os.path.getmtime は、ファイルの最終更新時刻を取得
- Pythonでカレントディレクトリを確認する
- TypeError: 'str’ object is not callable
- ユーザーが常にログオンしている状態に保つ
- ModuleNotFoundError: No module named 'ti’
- Administrator@133.242.136.52: Permission denied (publickey,keyboard-interactive).
- /etc/ssh/sshd_config
このファイルがない、configファイルはある
- sshd_config ファイルはSSHサーバー側の設定ファイル?
- Host 133.242.136.52
HostName 133.242.136.52
User Administrator
Port 22333
IdentityFile ~/.ssh/id_rsa
これを追加した
- Permission denied (publickey,keyboard-interactive).
- 公開鍵はサーバーに設置して、秘密鍵はクライアントに設置するんだよね?
- CryptographyDeprecationWarning: Blowfish has been deprecated “class": algorithms.Blowfish
- driver = webdriver.Chrome()
これでつかうseleniumのchromeのバージョンはわかる?
- AttributeError: 'str’ object has no attribute 'capabilities’
- TypeError: __init__() got an unexpected keyword argument 'executable_path’
- headlessモードでChromeを起動する
- AttributeError: 'WebDriver’ object has no attribute 'find_element_by_id’
- ImportError: attempted relative import with no known parent package
- —————————————————————————
NameError Traceback (most recent call last)
Cell In[1], line 1
—-> 1 aa
NameError: name 'aa’ is not defined
—————————————————————————
TypeError Traceback (most recent call last)
Cell In[29], line 12
9 chrome_options.binary_location = “/usr/bin/google-chrome-stable" # お使いの環境に合わせて変更してください
11 # ChromeDriverを起動
—> 12 driver = webdriver.Chrome(executable_path=chrome_path, options=chrome_options)
TypeError: __init__() got an unexpected keyword argument 'executable_path’
- chrome_options.binary_location = “/usr/bin/google-chrome-stable" # お使いの環境に合わせて変更してください
この部分って、カレントディレクトリ関係ある?
- —————————————————————————
SessionNotCreatedException Traceback (most recent call last)
Cell In[32], line 12
9 chrome_options.binary_location = “/usr/bin/google-chrome-stable" # お使いの環境に合わせて変更してください
11 # ChromeDriverを起動
—> 12 driver = webdriver.Chrome(options=chrome_options)
File ~/.local/lib/python3.8/site-packages/selenium/webdriver/chrome/webdriver.py:45, in WebDriver.__init__(self, options, service, keep_alive)
42 service = service if service else Service()
43 options = options if options else Options()
—> 45 super().__init__(
46 browser_name=DesiredCapabilities.CHROME[“browserName"],
47 vendor_prefix="goog",
48 options=options,
49 service=service,
50 keep_alive=keep_alive,
51 )
File ~/.local/lib/python3.8/site-packages/selenium/webdriver/chromium/webdriver.py:61, in ChromiumDriver.__init__(self, browser_name, vendor_prefix, options, service, keep_alive)
52 executor = ChromiumRemoteConnection(
53 remote_server_addr=self.service.service_url,
54 browser_name=browser_name,
(…)
57 ignore_proxy=options._ignore_local_proxy,
58 )
…
#13 0x55f26b618008 <unknown>
#14 0x55f26b6181d7 <unknown>
#15 0x55f26b62a124 <unknown>
#16 0x7fdc361a8609 start_thread
Output is truncated. View as a scrollable element or open in a text editor. Adjust cell output settings…
- AttributeError Traceback (most recent call last)
File ~/.local/lib/python3.8/site-packages/selenium/webdriver/common/driver_finder.py:38, in DriverFinder.get_path(service, options)
37 try:
—> 38 path = SeleniumManager().driver_location(options) if path is None else path
39 except Exception as err:
File ~/.local/lib/python3.8/site-packages/selenium/webdriver/common/selenium_manager.py:84, in SeleniumManager.driver_location(self, options)
77 “""Determines the path of the correct driver.
78
79 :Args:
80 – browser: which browser to get the driver path for.
81 :Returns: The driver path to use
82 “""
—> 84 browser = options.capabilities[“browserName"]
86 args = [str(self.get_binary()), “–browser", browser]
AttributeError: 'str’ object has no attribute 'capabilities’
During handling of the above exception, another exception occurred:
AttributeError Traceback (most recent call last)
Cell In[34], line 5
2 from webdriver_manager.chrome import ChromeDriverManager
4 # ChromeDriverを起動
…
—> 40 msg = f"Unable to obtain driver for {options.capabilities['browserName’]} using Selenium Manager."
41 raise NoSuchDriverException(msg) from err
43 if path is None or not Path(path).is_file():
AttributeError: 'str’ object has no attribute 'capabilities’
Output is truncated. View as a scrollable element or open in a text editor. Adjust cell output settings…
- —————————————————————————
TypeError Traceback (most recent call last)
Cell In[35], line 5
2 from webdriver_manager.chrome import ChromeDriverManager
4 # ChromeDriverを起動
—-> 5 driver = webdriver.Chrome(executable_path=ChromeDriverManager().install())
TypeError: __init__() got an unexpected keyword argument 'executable_path’
- —————————————————————————
AttributeError Traceback (most recent call last)
File ~/.local/lib/python3.8/site-packages/selenium/webdriver/common/driver_finder.py:38, in DriverFinder.get_path(service, options)
37 try:
—> 38 path = SeleniumManager().driver_location(options) if path is None else path
39 except Exception as err:
File ~/.local/lib/python3.8/site-packages/selenium/webdriver/common/selenium_manager.py:84, in SeleniumManager.driver_location(self, options)
77 “""Determines the path of the correct driver.
78
79 :Args:
80 – browser: which browser to get the driver path for.
81 :Returns: The driver path to use
82 “""
—> 84 browser = options.capabilities[“browserName"]
86 args = [str(self.get_binary()), “–browser", browser]
AttributeError: 'str’ object has no attribute 'capabilities’
During handling of the above exception, another exception occurred:
AttributeError Traceback (most recent call last)
Cell In[36], line 5
2 from webdriver_manager.chrome import ChromeDriverManager
4 # ChromeDriverを起動
…
—> 40 msg = f"Unable to obtain driver for {options.capabilities['browserName’]} using Selenium Manager."
41 raise NoSuchDriverException(msg) from err
43 if path is None or not Path(path).is_file():
AttributeError: 'str’ object has no attribute 'capabilities’
Output is truncated. View as a scrollable element or open in a text editor. Adjust cell output settings…
- which chromedriver
でbashで叩いて、表示されない場合は、インストールできてないの?
- ubuntu でコマンドでchromeを起動したい
- “ipynb" ファイルとは
- Jupyter Notebookのセルでcd(ディレクトリの変更)を直接実行することはできません
- Jupyter Notebookのセルで現在のディレクトリを表示する
- —————————————————————————
SessionNotCreatedException Traceback (most recent call last)
Cell In[21], line 1
—-> 1 driver = webdriver.Chrome()
File ~/.local/lib/python3.8/site-packages/selenium/webdriver/chrome/webdriver.py:45, in WebDriver.__init__(self, options, service, keep_alive)
42 service = service if service else Service()
43 options = options if options else Options()
—> 45 super().__init__(
46 browser_name=DesiredCapabilities.CHROME[“browserName"],
47 vendor_prefix="goog",
48 options=options,
49 service=service,
50 keep_alive=keep_alive,
51 )
File ~/.local/lib/python3.8/site-packages/selenium/webdriver/chromium/webdriver.py:61, in ChromiumDriver.__init__(self, browser_name, vendor_prefix, options, service, keep_alive)
52 executor = ChromiumRemoteConnection(
53 remote_server_addr=self.service.service_url,
54 browser_name=browser_name,
(…)
57 ignore_proxy=options._ignore_local_proxy,
58 )
60 try:
—> 61 super().__init__(command_executor=executor, options=options)
…
#13 0x55ae01573008 <unknown>
#14 0x55ae015731d7 <unknown>
#15 0x55ae01585124 <unknown>
#16 0x7fd085e05609 start_thread
Output is truncated. View as a scrollable element or open in a text editor. Adjust cell output settings…
- {
“name": “SessionNotCreatedException",
“message": “Message: session not created: Chrome failed to start: exited normally.n (session not created: DevToolsActivePort file doesn’t exist)n (The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)nStacktrace:n#0 0x56069c2bdf83 <unknown>n#1 0x56069bf76cf7 <unknown>n#2 0x56069bfae60e <unknown>n#3 0x56069bfab26e <unknown>n#4 0x56069bffb80c <unknown>n#5 0x56069bfefe53 <unknown>n#6 0x56069bfb7dd4 <unknown>n#7 0x56069bfb91de <unknown>n#8 0x56069c282531 <unknown>n#9 0x56069c286455 <unknown>n#10 0x56069c26ef55 <unknown>n#11 0x56069c2870ef <unknown>n#12 0x56069c25299f <unknown>n#13 0x56069c2ab008 <unknown>n#14 0x56069c2ab1d7 <unknown>n#15 0x56069c2bd124 <unknown>n#16 0x7f8bb748e609 start_threadn",
“stack": “u001b[0;31m—————————————————————————u001b[0mnu001b[0;31mSessionNotCreatedExceptionu001b[0m Traceback (most recent call last)nCell u001b[0;32mIn[22], line 1u001b[0mnu001b[0;32m—-> 1u001b[0m driver u001b[38;5;241m=u001b[39m u001b[43mwebdriveru001b[49mu001b[38;5;241;43m.u001b[39;49mu001b[43mChromeu001b[49mu001b[43m(u001b[49mu001b[43m)u001b[49mnnFile u001b[0;32m~/.local/lib/python3.8/site-packages/selenium/webdriver/chrome/webdriver.py:45u001b[0m, in u001b[0;36mWebDriver.__init__u001b[0;34m(self, options, service, keep_alive)u001b[0mnu001b[1;32m 42u001b[0m service u001b[38;5;241m=u001b[39m service u001b[38;5;28;01mifu001b[39;00m service u001b[38;5;28;01melseu001b[39;00m Service()nu001b[1;32m 43u001b[0m options u001b[38;5;241m=u001b[39m options u001b[38;5;28;01mifu001b[39;00m options u001b[38;5;28;01melseu001b[39;00m Options()nu001b[0;32m—> 45u001b[0m u001b[38;5;28;43msuperu001b[39;49mu001b[43m(u001b[49mu001b[43m)u001b[49mu001b[38;5;241;43m.u001b[39;49mu001b[38;5;21;43m__init__u001b[39;49mu001b[43m(u001b[49mnu001b[1;32m 46u001b[0m u001b[43m u001b[49mu001b[43mbrowser_nameu001b[49mu001b[38;5;241;43m=u001b[39;49mu001b[43mDesiredCapabilitiesu001b[49mu001b[38;5;241;43m.u001b[39;49mu001b[43mCHROMEu001b[49mu001b[43m[u001b[49mu001b[38;5;124;43m"u001b[39;49mu001b[38;5;124;43mbrowserNameu001b[39;49mu001b[38;5;124;43m""u001b[39;49mu001b[43m]u001b[49mu001b[43m
- Chromeブラウザのインストール:
/usr/bin/google-chromeのパスにChromeブラウザが存在することを確認してください。また、それが実行可能な状態であることも重要です。
ここに、「googhe-chrome」と「google-chrome-stable」がある
- —————————————————————————
SessionNotCreatedException Traceback (most recent call last)
Cell In[27], line 7
4 options = webdriver.ChromeOptions()
5 options.binary_location = chrome_path
—-> 7 driver = webdriver.Chrome(options=options)
File ~/.local/lib/python3.8/site-packages/selenium/webdriver/chrome/webdriver.py:45, in WebDriver.__init__(self, options, service, keep_alive)
42 service = service if service else Service()
43 options = options if options else Options()
—> 45 super().__init__(
46 browser_name=DesiredCapabilities.CHROME[“browserName"],
47 vendor_prefix="goog",
48 options=options,
49 service=service,
50 keep_alive=keep_alive,
51 )
File ~/.local/lib/python3.8/site-packages/selenium/webdriver/chromium/webdriver.py:61, in ChromiumDriver.__init__(self, browser_name, vendor_prefix, options, service, keep_alive)
52 executor = ChromiumRemoteConnection(
53 remote_server_addr=self.service.service_url,
54 browser_name=browser_name,
(…)
57 ignore_proxy=options._ignore_local_proxy,
58 )
…
#13 0x559b440dc008 <unknown>
#14 0x559b440dc1d7 <unknown>
#15 0x559b440ee124 <unknown>
#16 0x7fe4532b9609 start_thread
Output is truncated. View as a scrollable element or open in a text editor. Adjust cell output settings…
- chromedriberのバージョンを自動で更新掛ける方法なかったっけ?
- オンプレミスの対義語は?
- AWSのLightsailはVirtual Private Server (VPS)?
- VNC(Virtual Network Computing)とは
- Docker(ドッカー)ってなに
- DockerのコンセプトとPythonのvenv(仮想環境)はまた別なの?
- Docker内でPythonのvenvを使って仮想環境を作成する
- タスクスケジューラを使用して新しいフォルダを作成し、親フォルダからファイルを移動させる
- crontab ファイルを vi エディタ
- viをデフォルト指定
- crontab ファイルが nano で開かれる viがいい
- numpy.core._exceptions._UFuncNoLoopError: ufunc 'greater’ did not contain a loop with signature matching types (<class 'numpy.dtypes.Int64DType’>, <class 'numpy.dtypes.StrDType’>) -> None
- プログラムを作ったけどバグが多い
- デバッグは、運用を開始してバグが発生したら修正するの?
- タスクスケジューラで実行したタスクが残っているかどうかを確認する方法
- Djangoアプリケーション内で定期的なタスクを実行することはできる?
- オンプレミス(On-Premises)のメリットは?
- “install clip for external clipboard" のエラーメッセージ
- bashでmicro エディタを終了させる
- Vim(Vi Improved)とは
- emacsをuninstallしたい
- aptとapt-getの違い
- apt と apt-get はどっちでもいい?
- aptってなに
- apt コマンドを使用して、インストールされているパッケージの一覧を表示
- aptでおすすめのパッケージある?
- ターミナル上で動作するシステムモニタリングツール htopの見方
- オンプレミスとは
- nano エディタで切り取りはどうやるの
- nano エディタで行ごと削除したい
- Ctrl + K で “2番目のキーを待っています" というメッセージが表示される
- Microテキストエディタの使い方
- ビデオカードを交換すればモニターの解像度3000pxまでいける?
- ビデオカードどれにしたらいい?おすすめ
- 解像度3000pxに対応したビデオカード
- bash と vi の基本的な使い方
- vi エディタで backspace キーや delete キーはつかえないの?
- vim と vi の違い
- vim エディタにおいて、テキスト内の範囲を選択する
- vimではなく、windowsみたいに普通のエディタないのか?
- bash上で使いやすいエディタ
- nanoでコピーってどうやるの
- M-6でコピーできるらしいけど、どうやるの
- Jenkinsの場合は、pipをつかわずに、Jenkinsがそのビルドという実行可能なファイルへの変換をおこなっているってこと?
- Jenkinsとは
- JenkinsはEC(E-commerce)のシステムの開発に何か役立つか
- プログラミングのテストの種類
- 横幅3000pxのウルトラワイドモニターを持っているんだけど、ビデオカードの制限で1920pxまでしか表示できない。
- 仮想デスクトップマネージャー
- この1つのモニターを分割して、1モニターで2つのデスクトップを1500pxずつ表示とかできないよね
- STATIC_URL = '/static/’ STATIC_ROOT = os.path.join(BASE_DIR, 'static’)#追記このstatic/cssを読み込みたいんだけど、pathを指定しても読み込めない。
- Djangoのデフォルト設定では、STATICFILES_DIRSが指定されていない場合、アプリケーション内のstaticディレクトリが探索される
- django.core.management.base.SystemCheckError: SystemCheckError: System check identified some issues:
ERRORS:
?: (staticfiles.E002) The STATICFILES_DIRS setting should not contain the STATIC_ROOT setting.
- matplotlibで日本語を表示させたい
- だめだ、matplotlibで日本語が正しく表示されない
- findfont: Font family 'IPAexGothic’ not found.
- クロールしてるんだけど、500 Internal Server Error
An internal server error occurred. Please try again later.がでる
- Tkinterなら、デスクトップアプリだから、PCのファイルを削除したりリネームしたりできるの?
- webアプリケーションだと、毎日定期的にPCの指定パスのファイルを削除するとかはできないけど、デスクトップアプリならできるよね
- Jenkinsは、主にどんな使い道があるの
- 自動ビルドってなに。ビルドってなに
- 日常的につかっているPythonは誰がビルドしてるの?
- Pythonでパスからファイル名を取得する
- 指定フォルダの中身を全て削除する
- 指定されたフォルダ内のファイル(サブディレクトリは削除されません)を削除する
- djangoで変数を表示させたい。
- HTMLで動画を埋め込む
- Pythonを使用してデスクトップ上の座標をクリックする
- tkinterを使って指定した座標でウィンドウ内のボタンをクリックする
- tkinterを使用して座標を受け付け、指定された座標にウィンドウを移動する単純な例
- 指定の時間になったら、指定の場所をクリックしたい
- Djangoでログイン機能を実装したい
- Djangoでログインユーザーによって表示を変えたい
- Djangoでユーザーごとにページの中で表示を変えたい。
- クラウド機能を提供したい
- Bootstrapでsuccessに関する装飾したい
- Twitterで競合のアカウントの新着つぶやきを取得して表示したい
- Twitter APIを使用して特定のユーザーの今日のつぶやきだけを取得する
- フォントカラーをオレンジに
- 日本語で返して
- ショピファイapiで在庫調整したい
- Cell In[9], line 4
2 import_xlsx=r"./shopify_create_product_coocase.xlsx"
3 # import_xlsx=r"C:Usersdell25Documentsshopify_create_product_coocase.csv"
…
–> 145 raise ImportError(msg)
146 return None
148 # Handle submodules: if we have submodule, grab parent module from sys.modules
ImportError: Missing optional dependency 'openpyxl’. Use pip or conda to install openpyxl.
- dfのiterrowsの使い方
- read_xlsxでシート指定
- endpoint = f'{shop_url}/admin/api/2022-01/products.json?handle={product_handle}’
# ヘッダーの設定
headers = {
'Content-Type’: 'application/json’,
'X-Shopify-Access-Token’: access_token
}
# 商品取得のリクエスト
response = requests.get(endpoint, headers=headers)
# レスポンスの確認
if response.status_code == 200:
product_id = response.json()['products’][0]['id’]
print(f’Product ID: {product_id}’)
else:
print(f’Error: {response.status_code}n{response.text}’)
dfでidとハンドルを格納してreturnして
- 日本語希望
- for ループを使用して複数の商品情報を取得し、それらを concat して一つの DataFrame にまとめるコード
- タグ内に画像を回り込ませる
- タグとは
- タグを右に配置して、他の要素がその周りに回り込まないようにする
- Djangoでログインの人によって使えるサービスを変えたい
- Githubにデータを保存して、動作環境を異なるpcで同じにしたい、どうしたらいい
- そもそもosが違うんだ。
- プロビジョニングツールについてくわしく
- Dockerだけじゃだめなの?
- Docker使ってみたい
- DockerのOSはどうなっているの?
- ということは、windowsで作った場合、dockerのosはwindowsになるイメージ?
- linuxで稼働させる場合は、可能ならwindowsではなくlinuxで開発するほうがいいのかな
- dockerのメリットをもう一度教えて
- dockerでcpuやメモリの利用制限はできるの?
- スケーラビリティとあるが、スケールアップってどういうこと?CPUやメモリのリソースをってこと?
- 3つのコンテナインスタンスを起動ってどういうこと?プロセスを3つ動かすイメージ?
- オーケストレーションツールってなに
- dockerhubは、docker+githubみたいなもの?
- dockerimageには、ソースコードも入っているんでしょ?
- Dockerfileの例
- djangoでcpuやメモリ制限って出来るの?
- denied: requested access to the resource is denied
- Dockerイメージとは
- Dockerイメージの「ファイルシステムのスナップショット」とは
- dockerでpythonつかってみたい
- dockerで作る事で、他のサーバーでも簡単に実行できるの?
- windowsでpythonを作って、ubuntuサーバーで動かす場合でもDocker使っていれば動く?
- ubuntuには、windowsのosは入っていないけど、異なるホストOSで動くの?
- dockerのメリット
- dockerの設定はなにができるの?ubuntuのバージョンとか設定できるの
- windows環境で、ubuntu環境で動かすプログラムを開発したい。dockerをつかうとubuntu環境を仮想的に作って動かせるの?
- ubuntuのhtopのswpってなに
- 現在メモリ16GBなんだけど32GBへアップグレードしたほうがいいかな
- メモリに6GB空き容量があるのに、スワップしている理由はなに
- $ docker build -t docker101tutorial .
2024/01/31 10:49:40 http2: server: error reading preface from client //./pipe/docker_engine: file has already been closed
[+] Building 0.1s (2/2) FINISHED docker:default
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 2B 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
ERROR: failed to solve: failed to read dockerfile: open /var/lib/docker/tmp/buildkit-mount1144662347/Dockerfile: no such file or directory
- vi エディタで行を切り取る
- wslでデスクトップ表示できるの?
- WSL上で利用できるデスクトップ環境はXfce以外になにがある
- gnomeとubuntuって何が違う
- ターミナルは何がある
- 一般的に認知度のたかいターミナルを列挙してみて、コマンドプロンプト、bash等
- Djangoの中級者としてのスキル
- Djangoの上級者としてのスキル
- 'wget’ は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
- 環境変数の設定
- 他の人が作ったprivateリポジトリでgit cloneできる?
- $ docker build -t docker101tutorial .
bash: docker: command not found
- WSL (Windows Subsystem for Linux) のUbuntuディストリビューションでルートディレクトリが見にくい
- WSL (Windows Subsystem for Linux) のUbuntuディストリビューション内でのパスワード変更したい
- sudoのデフォルトのパスワードは?
- sudoのパスワードを設定しなかったんだけど
- sudo コマンドのパスワードを忘れてしまった場合
- UbuntuのWSL(Windows Subsystem for Linux)を初期化する
- wlsのubuntuのターミナルのカレントディレクトリの色が青でわかりにくい
- GitHubで自分が参加しているリポジトリはどこでみれる?
- GitHubのプロフィールページでコラボレーションしているリポジトリが表示されない
- Create a new forkってなに
- ubuntuをUSBフラッシュメモリに入れる際、どれくらいの容量が必要か
- wslを使えるようにした。windowsのexplorerから、wslのフォルダにいくには?
- ディストリビューションのシェア率
- WSLを使いたい
- Ubuntuをマルチブートしたい
- Windowsで別アカウントを削除する方法
- GitHubで他のユーザーからリポジトリへのメンバー招待を受けた場合
- GitHubのリポジトリにスターをつけて保存しておいた方がいいの?
- どのリクエストにServerが入っている?
- リクエストヘッダー情報の内容内訳
- 他の情報で言語やフレームワークの取得はできる?
- dockerを利用するときに、pythonファイルやvenvファイルを置く時のファイル構造おしえて
- linuxってOSなの?
- linuxのディストリビューションの種類おしえて
- PCがwindowsなんだけどlinuxも一緒に動かせたりする?
- ホストOSをlinuxでdockerをつくりたいんだけど、WSLでlinuxを立ち上げてそこで作ったらいいかな?
- Linuxディストリビューションごとに操作上の違いってある?
- zshやfishはどのディストリビューション?
- centosとubuntuのちがいは?
- aptとyumではパッケージは全然ちがうの?
- 競合のwebサイトの使っているサーバーソフトをチェックしたい
- whois コマンドとは
- WHOIS情報からはサーバーのソフトウエア情報は得れるのか?
- ServerヘッダーがAmazonS3とでてきた
- S3はサーバーソフトウエアなの?
- どのファイルがサーバーソフトウエアをつかっているのかな
- Djangoでアクセスあたりの制限もできるの?
- Djangoで特定の処理を遅延させる
- Djangoで同一IPアドレスのアクセスがおおい場合、制限をしたい
- Django Middlewareはサーバーが再起動されると ip_count がリセットされる
- IPアドレス制限を行うための他の方法
- django-axesとは
- NginxでIPアドレス制限する方法
- 一定回数のアクセスがあった場合、拒否するとかは可能?
- ngx_http_limit_req_moduleで一時的ではなく、永続的に拒否はできる?
- Nginxではifディレクティブを使用して条件に基づいてアクセスを拒否
- Nginxで同一IPのアクセスをカウントして10回以上は永続拒否できる?
- Apache HTTP Serverでは、同一IPアドレスからのアクセス回数をカウントして一定回数以上の場合に永続的に拒否することは可能か
- <form method="post" action="" enctype="multipart/form-data">
{% csrf_token %}
<div class="mb-3″>
<label for="files" class="form-label">ファイルを選択してください</label>
<input type="file" class="form-control" id="files" name="files" multiple>
</div>
<table class="table">
<thead>
<tr>
<th>調査キーワード</th>
<th>ジャンルID</th>
<th>調査店舗</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<input type="text" class="form-control" id="keyword" name="keyword">
</td>
<td>
<input type="text" class="form-control" id="genre_id" name="genre_id">
</td>
<td><input type="text" class="form-control" id="store" name="store"></td>
</tr>
</tbody>
</table>
<button type="submit" class="btn btn-primary" style="width: 100%; “>調査開始</button>
</form>
buttonを中央に配置したいんだ
- display: inline-block;って?
- csvをread_csvで読み込んでHTMLで表示させたい
- モデルを使わなくていい、CSVをdfで読み込んでそのままHTMLへ渡したい
- classes=’table table-bordered’ってなに
- 同様に38ページ作りたいんだけど、同じようにした方がいいのかな?大変だな
- ほぼ似たようなコンセプトのページなんだけど、簡単にページ作成できないかた
- djangoで指定のフォルダ内のcsvファイルのダウンロードリンクを生成する方法ないかな。
- djangoでcpuやメモリ制限って出来るの?
- background-imageを文字の後ろにしたい
- Djangoでテンプレートエンジンのタグをコメントアウトする方法
- 指定したサイトのfaviconを取得する方法ある?
- vscodeでポートが自動転送される
- 41556のポートをつかいたいのに、41557に転送されてしまう
- VSCodeのポートフォワーディング設定
- <form method="post" action="" enctype="multipart/form-data">
{% csrf_token %}
<div class="mb-3″>
<label for="files" class="form-label">ファイルを選択してください</label>
<input type="file" class="form-control" id="files" name="files" multiple>
</div>
<button type="submit" class="btn btn-primary">調査開始</button>
</form>
調査キーワード、ジャンルID,調査店舗の入力欄を設けてviewで処理したい
- 調査キーワードの横に、ジャンルIDをテーブル形式で置きたい
- Djangoでルーティング(URLパターン)で全てのページに対してログインが必要な制約を追加する
- Djangoで@login_requiredデコレータで、リダイレクト先を変更したい
- ImproperlyConfigured: AUTH_USER_MODEL refers to model 'myapp.CustomUser’ that has not been installed
- Djangoでデフォルトのユーザーモデルを使いたい
- Djangoでサインアップへリンクしたい
- Djangoでログインしている場合は、名前を表示させたい
- Djangoでログアウトの機能も入れたい
- Djangoでログアウトすると、管理サイトに遷移してしまうよ
- Djangoでログインするとhttp://127.0.0.1:8020/accounts/profile/にとぶ
- Djangoでreturn renderのrenderってどういう意味なの?
- renderは、レンダリングの略かな?
- Djangoのrender と redirectの違いは
- Djangoのrenderとredirectは、引き数を渡せるかどうかが違いかな?
- リンクの先頭にアイコンをつけたいんだけど、pngがいいのかicoがいいのか、方法
- Djangoのcssでimgタグで{% static 'favicon.ico’ %}をいれたい
- cssにdjangoのタグつかえる?
- Djangoでリダイレクト先に変数とか渡せないよね
- Djangoで指定の権限以上なら表示させたい
- Djangoでuser_passes_testデコレータでリダイレクト先を動的に変えたい
- Djangoでナビゲーションも、ログインしていなければ非表示にしたい
- Djangoで権限に応じて表示を変えれる?
- Djangoでスタッフ権限、スーパーユーザー権限で変更したい
- Djangoで全てのページをログインしていないと見れないようにする
- Bootstrapを使用してフォームをスタイリッシュにデザイン
- DjangoのUserCreationFormのデザイン変更
- Djangoでナビゲーションが多くなり過ぎた
- Bootstrapのドロップダウンメニューを有効にする
- Djangoで、権限やグループを使用してユーザーのアクセス制御を行う
- Djangoのビューの機能を制限したい
- Djangoでは、ユーザーの権限はモデルで管理?
- Authentication and Authorization セクションに移動し、Permissions を選択します。Permissions がない
- DjangoでURL パターンを権限によって制限する
- これはなに?
def has_access_your_feature(user):
return user.has_perm('your_app.can_access_your_feature’)
- Djangoで特定のURLやビューにアクセスする際にログインしていることが条件でアクセス可能にする
- Djangoでlogin_required デコレータは URL パターンに適用する
- Djangoでlogin_required デコレータに login_url パラメータを指定する
- Djangoの一番簡単なログイン機能だけ
- django.template.exceptions.TemplateDoesNotExist: registration/login.html
- Djangoのデフォルトのログインビューで使用されるログイン情報
- Not Found: /accounts/profile/
[31/Jan/2024 17:11:16] “GET /accounts/profile/ HTTP/1.1" 404 2234
- Djangoでユーザーアカウントを作成する画面はどうやって作る
- Djangoでredirectしたい
- app_nameのあるurlpatternsの場合、redirectはどうやる
- Djangoにログイン機能を付けて権限によって使える機能を管理したい
- フォルトのユーザーモデルを使用する場合は、settings.py ファイルで AUTH_USER_MODEL を設定します
- Djangoでの基本的なログインビューと権限制御
- django.template.exceptions.TemplateDoesNotExist: registration/login.html
- [31/Jan/2024 16:56:01] “GET /registration/login/ HTTP/1.1" 404 2240 Not Found: /tools/registration/login/
- items = RakutenItem.objects.
このitemsからshopCodeが自店舗のものの価格を取得したい
- Djangoで更新日から30件以内の価格を取得したい
- Djangoのrequest.GET.sortってなに
- djangoでテンプレート内のtbody内が空になったんだが
- TypeError at /tools/rakuten_price_search/
Cannot filter a query once a slice has been taken.
- サムネイル画像が再読み込みされない
- None?timestamp=が表示される
- timestampはブラウザが画像をキャッシュしないようにするために使用されるもの
- モデルから自店舗の価格を取得したい
- <div class="mb-3″>
どういう意味
- 3px?
- def fetch_rakuten_data(keyword,genre_id,shopCode,sort):
この関数にリストで引き数を渡せる?
- request.POST.get('shopCode’)でviewで全ての引数を受け取るにはどうしたらいい?
- all_parametersのキーだけをリストに取得する
- 辞書型のキーってなんだっけ
- Djangoで、大量にフォームのデータがあるから、request.POST.getするのが大変なんだ
- params.get('field’,1),
とセットしているのだけど、うまくいかない
- Noneが渡されていないから、’1’が渡されないんだ
- 'NGKeyword is not valid
- File “/home/share/django/lib/python3.8/site-packages/django/template/base.py", line 511, in parse
compiled_result = compile_func(self, token)
File “/home/share/django/lib/python3.8/site-packages/django/template/defaulttags.py", line 1088, in load
lib = find_library(parser, name)
File “/home/share/django/lib/python3.8/site-packages/django/template/defaulttags.py", line 1028, in find_library
raise TemplateSyntaxError(
django.template.exceptions.TemplateSyntaxError: 'custom_filters’ is not a registered tag library. Must be one of:
admin_list
admin_modify
admin_urls
cache
django_bootstrap5
humanize
i18n
l10n
log
static
tz
- 使えるようにはなった。けど、inputに値は保持されない。
<div class="mb-3″>
<label for="{{ parameter.label }}" class="form-label">{{ parameter.label }}</label>
<input type="text" class="form-control" id="{{ parameter.name }}" name="{{ parameter.name }}"
value="{% if request.POST.parameter and parameter in request.POST.parameter %}{{ request.POST.parameter|get_item:parameter }}{% endif %}">
</div>
- def rakuten_price_search(request):
parameters=[{'name’:’keyword’,’label’:’検索キーワード:※○’},
{'name’:’shopCode’,’label’:’ショップコード:※○’},
{'name’:’itemCode’,’label’:’商品コード:※○’},
{'name’:’genreId’,’label’:’ジャンルID:※○’},
{'name’:’tagIds’,’label’:’タグID’},
{'name’:’hits’,’label’:’1ページあたりの取得件数’},
{'name’:’page’,’label’:’取得ページ’},
{'name’:’sort’,’label’:’ソート’},
{'name’:’minPrice’,’label’:’最小価格’},
{'name’:’maxPrice’,’label’:’最大価格’},
{'name’:’availability’,’label’:’販売可能’},
{'name’:’field’,’label’:’検索フィールド’},
{'name’:’carrier’,’label’:’キャリア’},
{'name’:’imageFlag’,’label’:’商品画像有無フラグ’},
{'name’:’orFlag’,’label’:’OR検索フラグ’},
{'name’:’NGKeyword’,’label’:’除外キーワード’},
{'name’:’purchaseType’,’label’:’購入種別’},
{'name’:’shipOverseasFlag’,’label’:’海外配送フラグ’},
{'name’:’shipOverseasArea’,’label’:’海外配送対象地域’},
{'name’:’asurakuFlag’,’label’:’あす楽フラグ’},
{'name’:’asurakuArea’,’label’:’あす楽配送対象地域’},
{'name’:’pointRateFlag’,’label’:’ポイント倍付けフラグ’},
{'name’:’pointRate’,’label’:’商品別ポイント倍付け’},
{'name’:’postageFlag’,’label’:’送料フラグ’},
{'name’:’creditCardFlag’,’label’:’クレジットカード利用可能フラグ’},
{'name’:’giftFlag’,’label’:’ギフト対応フラグ’},
{'name’:’hasReviewFlag’,’label’:’レビューありフラグ’},
{'name’:’maxAffiliateRate’,’label’:’アフィリエイト料率最大制限値’},
{'name’:’minAffiliateRate’,’label’:’アフィリエイト料率最小制限値’},
{'name’:’hasMovieFlag’,’label’:’動画ありフラグ’},
{'name’:’pamphletFlag’,’label’:’資料請求対応フラグ’},
{'name’:’appointDeliveryDateFlag’,’label’:’配送日指定対応フラグ’},
{'name’:’elements’,’label’:’出力要素’},
{'name’:’genreInformationFlag’,’label’:’ジャンルごとの商品数取得フラグ’},
{'name’:’tagInformationFlag’,’label’:’タグごとの商品数取得フラグ’},
]
if request.method == 'POST’:
# ファイルの取得
files = request.FILES.getlist('files’)
# keyword,genre_id,store="","",""
# 他の情報の取得
keyword = request.POST.get('keyword’)
genre_id = request.POST.get('genre_id’)
shopCode = request.POST.get('shopCode’)
proce_sort_option= request.POST.get('proce_sort_option’)
fetch_rakuten_data(keyword,genre_id,shopCode,proce_sort_option)
# items = RakutenItem.objects.all()[:30]
# items = RakutenItem.objects.order_by('-created_at’)[:30]
items = RakutenItem.objects.order_by('-updated_at’)[:30]
# items = RakutenItem.objects.order_by('-startTime’)[:30]
# print(items)
# parameters = ['keyword’, 'shopCode’, 'itemCode’, 'genreId’, 'tagId’, 'hits’, 'page’, 'sort’, 'minPrice’, 'maxPrice’, 'availability’, 'field’, 'carrier’, 'imageFlag’, 'orFlag’, 'NGKeyword’, 'purchaseType’, 'shipOverseasFlag’, 'shipOverseasArea’, 'asurakuFlag’, 'asurakuArea’, 'pointRateFlag’, 'pointRate’, 'postageFlag’, 'creditCardFlag’, 'giftFlag’, 'hasReviewFlag’, 'maxAffiliateRate’, 'minAffiliateRate’, 'hasMovieFlag’, 'pamphletFlag’, 'appointDeliveryDateFlag’, 'elements’, 'genreInformationFlag’, 'tagInformationFlag’]
return render(request, “tools/rakuten_price_search.html", {'items’: items,"parameters":parameters})
else:
# parameters = ['keyword’, 'shopCode’, 'itemCode’, 'genreId’, 'tagId’, 'hits’, 'page’, 'sort’, 'minPrice’, 'maxPrice’, 'availability’, 'field’, 'carrier’, 'imageFlag’, 'orFlag’, 'NGKeyword’, 'purchaseType’, 'shipOverseasFlag’, 'shipOverseasArea’, 'asurakuFlag’, 'asurakuArea’, 'pointRateFlag’, 'pointRate’, 'postageFlag’, 'creditCardFlag’, 'giftFlag’, 'hasReviewFlag’, 'maxAffiliateRate’, 'minAffiliateRate’, 'hasMovieFlag’, 'pamphletFlag’, 'appointDeliveryDateFlag’, 'elements’, 'genreInformationFlag’, 'tagInformationFlag’]
return render(request, “tools/rakuten_price_search.html",{“parameters":parameters})
- parameters=[{'name’:’keyword’,’label’:’検索キーワード:※○’},
{'name’:’shopCode’,’label’:’ショップコード:※○’},
{'name’:’itemCode’,’label’:’商品コード:※○’},
{'name’:’genreId’,’label’:’ジャンルID:※○’},
{'name’:’tagIds’,’label’:’タグID’},
{'name’:’hits’,’label’:’1ページあたりの取得件数’},
{'name’:’page’,’label’:’取得ページ’},
{'name’:’sort’,’label’:’ソート’},
{'name’:’minPrice’,’label’:’最小価格’},
{'name’:’maxPrice’,’label’:’最大価格’},
{'name’:’availability’,’label’:’販売可能’},
{'name’:’field’,’label’:’検索フィールド’},
{'name’:’carrier’,’label’:’キャリア’},
{'name’:’imageFlag’,’label’:’商品画像有無フラグ’},
{'name’:’orFlag’,’label’:’OR検索フラグ’},
{'name’:’NGKeyword’,’label’:’除外キーワード’},
{'name’:’purchaseType’,’label’:’購入種別’},
{'name’:’shipOverseasFlag’,’label’:’海外配送フラグ’},
{'name’:’shipOverseasArea’,’label’:’海外配送対象地域’},
{'name’:’asurakuFlag’,’label’:’あす楽フラグ’},
{'name’:’asurakuArea’,’label’:’あす楽配送対象地域’},
{'name’:’pointRateFlag’,’label’:’ポイント倍付けフラグ’},
{'name’:’pointRate’,’label’:’商品別ポイント倍付け’},
{'name’:’postageFlag’,’label’:’送料フラグ’},
{'name’:’creditCardFlag’,’label’:’クレジットカード利用可能フラグ’},
{'name’:’giftFlag’,’label’:’ギフト対応フラグ’},
{'name’:’hasReviewFlag’,’label’:’レビューありフラグ’},
{'name’:’maxAffiliateRate’,’label’:’アフィリエイト料率最大制限値’},
{'name’:’minAffiliateRate’,’label’:’アフィリエイト料率最小制限値’},
{'name’:’hasMovieFlag’,’label’:’動画ありフラグ’},
{'name’:’pamphletFlag’,’label’:’資料請求対応フラグ’},
{'name’:’appointDeliveryDateFlag’,’label’:’配送日指定対応フラグ’},
{'name’:’elements’,’label’:’出力要素’},
{'name’:’genreInformationFlag’,’label’:’ジャンルごとの商品数取得フラグ’},
{'name’:’tagInformationFlag’,’label’:’タグごとの商品数取得フラグ’},
]
このparametersを普通のリスト形式にすると上手く行くんだよ
- できた!
- <form method="post" action="" enctype="multipart/form-data">
{% csrf_token %}
<div class="row">
{% for parameter in parameters|slice:":6″ %}
<div class="col-md-4″>
<div class="mb-3″>
<label for="{{ parameter.label }}" class="form-label">{{ parameter.label }}</label>
<input type="text" class="form-control" id="{{ parameter.name }}" name="{{ parameter.name }}"
value="{% if parameter.name in request.POST %}{{ request.POST|get_item:parameter.name }}{% endif %}">
</div>
</div>
{% if forloop.counter|divisibleby:3 and not forloop.last %}
</div>
<div class="row">
{% endif %}
{% endfor %}
</div>
<!– アコーディオン –>
<div id="accordion" class="row">
<div class="card">
<div class="card-header" id="headingOne">
<h5 class="mb-0″>
<button class="btn btn-link" type="button" data-bs-toggle="collapse" data-bs-target="#collapseOne"
aria-expanded="true" aria-controls="collapseOne">
追加の入力項目を表示
</button>
</h5>
</div>
<div id="collapseOne" class="collapse" aria-labelledby="headingOne" data-bs-parent="#accordion">
<div class="card-body row">
{% for parameter in parameters|slice:"6:" %}
<div class="col-md-4″>
<div class="mb-3″>
<label for="{{ parameter.label }}" class="form-label">{{ parameter.label }}</label>
<input type="text" class="form-control" id="{{ parameter.name }}" name="{{ parameter.name }}"
value="{% if parameter.name in request.POST %}{{ request.POST.parameter.name }}{% endif %}">
</div>
</div>
{% endfor %}
</div>
</div>
</div>
</div>
アコーディオンの部分だけ値が保持されない。
- 辞書型が原因っぽい
- <form method="post" action="{%url 'tools:rakuten_price_search’%}" enctype="multipart/form-data">
{% csrf_token %}
<div class="col-md-4″>
<div class="mb-3″>
<label for="keyword" class="form-label">keyword</label>
<input type="text" class="form-control" id="keyword" name="keyword"
value="{{ request.POST.parameter }}">
</div>
</div>
<!– フォームの送信 –>
<button type="submit" class="btn btn-primary" style="height: 60px;">調査開始</button>
</form>
postするとinputににデータが保持されず消えてしまう
- <form method="post" action="" enctype="multipart/form-data">
{% csrf_token %}
<div class="row">
{% for parameter in parameters|slice:":6″ %}
<div class="col-md-4″>
<div class="mb-3″>
<label for="{{ parameter.label }}" class="form-label">{{ parameter.label }}</label>
<input type="text" class="form-control" id="{{ parameter.name }}" name="{{ parameter.name }}"
value="{{ request.POST.parameter.name }}">
</div>
</div>
{% if forloop.counter|divisibleby:3 and not forloop.last %}
</div>
<div class="row">
{% endif %}
{% endfor %}
</div>
<!– アコーディオン –>
<div id="accordion" class="row">
<div class="card">
<div class="card-header" id="headingOne">
<h5 class="mb-0″>
<button class="btn btn-link" type="button" data-bs-toggle="collapse" data-bs-target="#collapseOne"
aria-expanded="true" aria-controls="collapseOne">
追加の入力項目を表示
</button>
</h5>
</div>
<div id="collapseOne" class="collapse" aria-labelledby="headingOne" data-bs-parent="#accordion">
<div class="card-body row">
{% for parameter in parameters|slice:"6:" %}
<div class="col-md-4″>
<div class="mb-3″>
<label for="{{ parameter.label }}" class="form-label">{{ parameter.label }}</label>
<input type="text" class="form-control" id="{{ parameter.name }}" name="{{ parameter.name }}"
value="{{ request.POST.parameter.name }}">
</div>
</div>
{% endfor %}
</div>
</div>
</div>
</div>
<!– フォームの送信 –>
<button type="submit" class="btn btn-primary" style="height: 60px;">調査開始</button>
</form>
ここがうまくわたせていないようだ。value="{{ request.POST.parameter.name }}
- filter_expression = self.compile_filter(token.contents)
File “/home/share/django/lib/python3.8/site-packages/django/template/base.py", line 600, in compile_filter
return FilterExpression(token, self)
File “/home/share/django/lib/python3.8/site-packages/django/template/base.py", line 703, in __init__
raise TemplateSyntaxError(
django.template.exceptions.TemplateSyntaxError: Could not parse the remainder: '(parameter.name,")’ from 'request.POST.get(parameter.name,")’
- kwargs[key] = parser.compile_filter(value)
File “/home/share/django/lib/python3.8/site-packages/django/template/base.py", line 600, in compile_filter
return FilterExpression(token, self)
File “/home/share/django/lib/python3.8/site-packages/django/template/base.py", line 703, in __init__
raise TemplateSyntaxError(
django.template.exceptions.TemplateSyntaxError: Could not parse the remainder: '(parameter.name,’ from 'request.POST.get(parameter.name,’
- File “/home/share/django/lib/python3.8/site-packages/django/template/engine.py", line 157, in find_template
template = loader.get_template(name, skip=skip)
File “/home/share/django/lib/python3.8/site-packages/django/template/loaders/cached.py", line 57, in get_template
template = super().get_template(template_name, skip)
File “/home/share/django/lib/python3.8/site-packages/django/template/loaders/base.py", line 28, in get_template
return Template(
File “/home/share/django/lib/python3.8/site-packages/django/template/base.py", line 154, in __init__
self.nodelist = self.compile_nodelist()
File “/home/share/django/lib/python3.8/site-packages/django/template/base.py", line 200, in compile_nodelist
return parser.parse()
File “/home/share/django/lib/python3.8/site-packages/django/template/base.py", line 513, in parse
raise self.error(token, e)
File “/home/share/django/lib/python3.8/site-packages/django/template/base.py", line 511, in parse
compiled_result = compile_func(self, token)
File “/home/share/django/lib/python3.8/site-packages/django/template/loader_tags.py", line 293, in do_extends
nodelist = parser.parse()
File “/home/share/django/lib/python3.8/site-packages/django/template/base.py", line 513, in parse
raise self.error(token, e)
File “/home/share/django/lib/python3.8/site-packages/django/template/base.py", line 511, in parse
compiled_result = compile_func(self, token)
File “/home/share/django/lib/python3.8/site-packages/django/template/loader_tags.py", line 232, in do_block
nodelist = parser.parse((“endblock",))
File “/home/share/django/lib/python3.8/site-packages/django/template/base.py", line 513, in parse
raise self.error(token, e)
File “/home/share/django/lib/python3.8/site-packages/django/template/base.py", line 511, in parse
compiled_result = compile_func(self, token)
File “/home/share/django/lib/python3.8/site-packages/django/template/defaulttags.py", line 853, in do_for
nodelist_loop = parser.parse(
File “/home/share/django/lib/python3.8/site-packages/django/template/base.py", line 513, in parse
raise self.error(token, e)
File “/home/share/django/lib/python3.8/site-packages/django/template/base.py", line 511, in parse
compiled_result = compile_func(self, token)
File “/home/share/django/lib/python3.8/site-packages/django/template/defaulttags.py", line 1482, in do_with
extra_context = token_kwargs(remaining_bits, parser, support_legacy=True)
File “/home/share/django/lib/python3.8/site-packages/django/template/base.py", line 1116, in token_kwargs
kwargs[key] = parser.compile_filter(value)
File “/home/share/django/lib/python3.8/site-packages/django/template/base.py", line 600, in compile_filter
return FilterExpression(token, self)
File “/home/share/django/lib/python3.8/site-packages/django/template/base.py", line 703, in __init__
raise TemplateSyntaxError(
django.template.exceptions.TemplateSyntaxError: Could not parse the remainder: '(parameter.name)’ from 'request.POST.get(parameter.name)’
[02/Feb/2024 15:40:27] “POST /tools/rakuten_price_search/ HTTP/1.1" 500 297758
- return parser.parse()
File “/home/share/django/lib/python3.8/site-packages/django/template/base.py", line 513, in parse
raise self.error(token, e)
File “/home/share/django/lib/python3.8/site-packages/django/template/base.py", line 511, in parse
compiled_result = compile_func(self, token)
File “/home/share/django/lib/python3.8/site-packages/django/template/loader_tags.py", line 293, in do_extends
nodelist = parser.parse()
File “/home/share/django/lib/python3.8/site-packages/django/template/base.py", line 513, in parse
raise self.error(token, e)
File “/home/share/django/lib/python3.8/site-packages/django/template/base.py", line 511, in parse
compiled_result = compile_func(self, token)
File “/home/share/django/lib/python3.8/site-packages/django/template/loader_tags.py", line 232, in do_block
nodelist = parser.parse((“endblock",))
File “/home/share/django/lib/python3.8/site-packages/django/template/base.py", line 513, in parse
raise self.error(token, e)
File “/home/share/django/lib/python3.8/site-packages/django/template/base.py", line 511, in parse
compiled_result = compile_func(self, token)
File “/home/share/django/lib/python3.8/site-packages/django/template/defaulttags.py", line 853, in do_for
nodelist_loop = parser.parse(
File “/home/share/django/lib/python3.8/site-packages/django/template/base.py", line 513, in parse
raise self.error(token, e)
File “/home/share/django/lib/python3.8/site-packages/django/template/base.py", line 511, in parse
compiled_result = compile_func(self, token)
File “/home/share/django/lib/python3.8/site-packages/django/template/defaulttags.py", line 1482, in do_with
extra_context = token_kwargs(remaining_bits, parser, support_legacy=True)
File “/home/share/django/lib/python3.8/site-packages/django/template/base.py", line 1116, in token_kwargs
kwargs[key] = parser.compile_filter(value)
File “/home/share/django/lib/python3.8/site-packages/django/template/base.py", line 600, in compile_filter
return FilterExpression(token, self)
File “/home/share/django/lib/python3.8/site-packages/django/template/base.py", line 703, in __init__
raise TemplateSyntaxError(
django.template.exceptions.TemplateSyntaxError: Could not parse the remainder: '(parameter.name)’ from 'request.POST.get(parameter.name)’
[02/Feb/2024 15:41:57] “POST /tools/rakuten_price_search/ HTTP/1.1" 500 297650
- <!– templates/tools/trend_search.html –>
{% extends “tools/base.html" %}
{% load static %}
{% load humanize %}
{% block title %}楽天価格調査{% endblock %}
{% block content %}
<h2>楽天価格調査</h2>
<p class="text-muted mb-3″>CSVの1列目に入力した列のデータを取得して、現時点の価格を調査します。</p>
<p>
<ul>
<li>※日本語データがうまく読み込まれない場合があります。<a
href="{% url 'tools:conversion_character_code’ %}">CSV文字コード変換ツール</a>で文字コードをUTF-8に変換してから再度アップロードしてください。</li>
<li><a href="{% static './’ %}">テンプレートファイルはこちら</a></li>
<li><a href="{%url 'tools:rakuten_genre_id’%}">楽天ジャンルIDはこちら</a></li>
<li><a href="{%url 'tools:rakuten_tag_id’%}">楽天タグIDはこちら</a></li>
<li>※サムネイル画像が表示されない場合「Shift+F5」を押して下さい。</li>
<li>※○:検索キーワード、ジャンルID、商品コード、ショップコードのいずれかが指定されていることが必須です。</li>
</ul>
</p>
<style>
.center-button {
text-align: center;
}
.center-button button {
display: inline-block;
}
</style>
<form method="post" action="" enctype="multipart/form-data">
{% csrf_token %}
<div class="row">
{% for parameter in parameters|slice:":6″ %}
<div class="col-md-4″>
<div class="mb-3″>
<label for="{{ parameter.label }}" class="form-label">{{ parameter.label }}</label>
{% with parameter_value=request.POST.get(parameter.name) %}
<input type="text" class="form-control" id="{{ parameter.name }}" name="{{ parameter.name }}"
value="{% if parameter_value %}{{ parameter_value }}{% endif %}">
{% endwith %}
</div>
</div>
{% if forloop.counter|divisibleby:3 and not forloop.last %}
</div>
<div class="row">
{% endif %}
{% endfor %}
</div>
<!– アコーディオン –>
<div id="accordion" class="row">
<div class="card">
<div class="card-header" id="headingOne">
<h5 class="mb-0″>
<button class="btn btn-link" type="button" data-bs-toggle="collapse" data-bs-target="#collapseOne"
aria-expanded="true" aria-controls="collapseOne">
追加の入力項目を表示
</button>
</h5>
</div>
<div id="collapseOne" class="collapse" aria-labelledby="headingOne" data-bs-parent="#accordion">
<div class="card-body row">
{% for parameter in parameters|slice:"6:" %}
<div class="col-md-4″>
<div class="mb-3″>
<label for="{{ parameter.label }}" class="form-label">{{ parameter.label }}</label>
<input type="text" class="form-control" id="{{ parameter.name }}" name="{{ parameter.name }}"
value="{{ request.POST.parameter.name }}">
</div>
</div>
{% endfor %}
</div>
</div>
</div>
</div>
<!– フォームの送信 –>
<button type="submit" class="btn btn-primary" style="height: 60px;">調査開始</button>
</form>
{% if csv_path %}
<p class="text-center"><a href=" {% static './’ %}{{ csv_path }}" download class="btn btn-success"
style="margin:auto">CSVダウンロード</a></p>
{% endif %}
<!– <div class="container mt-5″> –>
<table class="table table-bordered ti_mt-30″>
<thead class="thead-light">
<tr>
<th>店舗名<br><i>ショップコード</i></th>
<th>ジャンルID</th>
<th>タグID</th>
<th>商品名</th>
<th>販売価格</th>
<th>商品リンク</th>
<th>サムネ画像</th>
</tr>
</thead>
<tbody>
{% for item in items %}
<tr>
<td>{{ item.shopName }}<br><br>
<p><i>{{item.shopCode}}</i></p>
</td>
<td>{{item.genreId}}</td>
<td>{{item.tagIds}}</td>
<td>{{ item.itemName }}</td>
<td style="text-align: right;">{{ item.itemPrice| intcomma }}</td>
<td style=" text-align: center;"><a href="{{ item.itemUrl }}" target="_blank"
class="btn btn-danger btn-sm"><u>楽天</u></a></td>
<td style="text-align: center;"><img src="{{ item.smallImage1 }}" alt="{{ item.item_name }}"></td>
</tr>
{% endfor %}
</tbody>
</table>
<!– </div> –>
{% if items %}
{% endif %}
{% endblock %}
- HTMLフォームのサンプル
- BootstrapのAccordion(アコーディオン)でデフォルトで非表示にする
- data-toggle="collapse"ってなに
- デフォルトで閉じた状態にしたいんだよね
- <div id="accordion">
<!– アコーディオン要素1 –>
<div class="card">
<div class="card-header" id="headingOne">
<h5 class="mb-0″>
<button class="btn btn-link" data-toggle="collapse" data-target="#collapseOne" aria-expanded="true"
aria-controls="collapseOne">
追加項目を表示
</button>
</h5>
</div>
<div id="collapseOne" class="collapse" aria-labelledby="headingOne" data-parent="#accordion">
<div class="card-body">
{% for parameter in parameters|slice:"6:" %}
<div class="mb-3″>
<label for="{{ parameter }}" class="form-label">{{ parameter }}</label>
<input type="text" class="form-control" id="{{ parameter }}" name="{{ parameter }}"
value="{{ request.POST.parameter }}">
</div>
{% endfor %}
</div>
</div>
</div>
</div>
アコーディオンがうまく機能しない
- <!– リスト先頭6個のみを表示 –>
<div class="row">
<form action="">
{% for parameter in parameters|slice:’:6′ %}
<div class="col-md-4″>
<div class="mb-3″>
<label for="{{ parameter.label }}" class="form-label">{{ parameter.label }}</label>
<input type="text" class="form-control" id="{{ parameter.name }}" name="{{ parameter.name }}"
value="{{ request.POST.parameter.name }}">
</div>
</div>
{% if forloop.counter|divisibleby:3 and not forloop.last %}
</div>
<div class="row">
{% endif %}
{% endfor %}
</div>
<!– 多くの要素がある為、他の要素はアコーディオンで表示 –>
<div id="accordion">
<div class="card">
<div class="card-header" id="headingOne">
<h5 class="mb-0″>
<button class="btn btn-link" data-bs-toggle="collapse" data-bs-target="#collapseOne"
aria-expanded="true" aria-controls="collapseOne">
追加項目を表示
</button>
</h5>
</div>
<div id="collapseOne" class="collapse" aria-labelledby="headingOne" data-bs-parent="#accordion">
<div class="card-body">
{% for parameter in parameters|slice:"6:" %}
<div class="mb-3″>
<label for="{{ parameter.label }}" class="form-label">{{ parameter.label }}</label>
<input type="text" class="form-control" id="{{ parameter.name }}" name="{{ parameter.name }}"
value="{{ request.POST.parameter.name }}">
</div>
{% endfor %}
</div>
</div>
</div>
</div>
<!– フォームの送信 –>
<button type="submit" class="btn btn-primary" style="height: 60px;">調査開始</button>
</form>
上手く機能しない。
- 3カラムにする方法
- これにフォーム追加して
- 追加項目を表示
を押下するとpostしてしまう
- <form method="post" action="" enctype="multipart/form-data">
{% csrf_token %}
<div class="row">
{% for parameter in parameters|slice:":6″ %}
<div class="col-md-4″>
<div class="mb-3″>
<label for="{{ parameter.label }}" class="form-label">{{ parameter.label }}</label>
<input type="text" class="form-control" id="{{ parameter.name }}" name="{{ parameter.name }}"
value="{{ request.POST.parameter.name }}">
</div>
</div>
{% if forloop.counter|divisibleby:3 and not forloop.last %}
</div>
<div class="row">
{% endif %}
{% endfor %}
</div>
<!– アコーディオン –>
<div id="accordion">
<div class="card">
<div class="card-header" id="headingOne">
<h5 class="mb-0″>
<button class="btn btn-link" type="button" data-bs-toggle="collapse" data-bs-target="#collapseOne"
aria-expanded="true" aria-controls="collapseOne">
追加項目を表示
</button>
</h5>
</div>
<div id="collapseOne" class="collapse" aria-labelledby="headingOne" data-bs-parent="#accordion">
<div class="card-body">
{% for parameter in parameters|slice:"6:" %}
<div class="mb-3″>
<label for="{{ parameter.label }}" class="form-label">{{ parameter.label }}</label>
<input type="text" class="form-control" id="{{ parameter.name }}" name="{{ parameter.name }}"
value="{{ request.POST.parameter.name }}">
</div>
{% endfor %}
</div>
</div>
</div>
</div>
<!– フォームの送信 –>
<button type="submit" class="btn btn-primary" style="height: 60px;">調査開始</button>
</form>
ここまではいいかんじ!Thanks!
アコーディオンを3カラムに変更したい
- col-md-4ってなんなの
- <form method="post" action="" enctype="multipart/form-data">
{% csrf_token %}
<div class="row">
{% for parameter in parameters|slice:":6″ %}
<div class="col-md-4″>
<div class="mb-3″>
<label for="{{ parameter.label }}" class="form-label">{{ parameter.label }}</label>
<input type="text" class="form-control" id="{{ parameter.name }}" name="{{ parameter.name }}"
value="{{ request.POST.parameter.name }}">
</div>
</div>
{% if forloop.counter|divisibleby:3 and not forloop.last %}
</div>
<div class="row">
{% endif %}
{% endfor %}
</div>
<!– アコーディオン –>
<div id="accordion" class="row">
<div class="card">
<div class="card-header" id="headingOne">
<h5 class="mb-0″>
<button class="btn btn-link" type="button" data-bs-toggle="collapse" data-bs-target="#collapseOne"
aria-expanded="true" aria-controls="collapseOne">
追加の入力項目を表示
</button>
</h5>
</div>
<div id="collapseOne" class="collapse" aria-labelledby="headingOne" data-bs-parent="#accordion">
<div class="card-body row">
{% for parameter in parameters|slice:"6:" %}
<div class="col-md-4″>
<div class="mb-3″>
<label for="{{ parameter.label }}" class="form-label">{{ parameter.label }}</label>
<input type="text" class="form-control" id="{{ parameter.name }}" name="{{ parameter.name }}"
value="{{ request.POST.parameter.name }}">
</div>
</div>
{% endfor %}
</div>
</div>
</div>
</div>
<!– フォームの送信 –>
<button type="submit" class="btn btn-primary" style="height: 60px;">調査開始</button>
</form>
入力データが保持されない。postすると消える
- HTMLで使用されるid、class、およびその他の属性についての説
- parametersでviewで渡されてきたリストをfor文で回して表示させたい
- {% for parameter in parameters |slice 3: %}
- テンプレートエンジンで3つ目以降から表示させたい
- if forloop.counter|divisibleby:3 and not forloop.last
- TemplateSyntaxError(django.template.exceptions.TemplateSyntaxError: Could not parse the remainder: '[parameter]’ from 'request.POST.[parameter]’
- django.template.exceptions.TemplateSyntaxError: Invalid block tag on line 109: 'break’, expected 'elif’, 'else’ or 'endif’. Did you forget to register or load this tag?
- アコーディオンが表示されないよ
- {% for parameter in parameters %}
これで5つ目以降は、アコーディオンで表示させたいの
- Bootstrapのアコーディオン「追加項目を開く」ボタンを押下したら、全て表示される仕様にしたい
- 6個以上のparameterの場合、「他の入力項目を表示する」ボタンを押下するとアコーディオンで全項目のラベル・入力欄(input)が表示されるようにする。再度「他の入力項目を表示する」ボタンを押下するとアコーディオンが閉じる仕様にしたい
- アコーディオンの簡単なサンプルコード教えて
- 指定フォルダのファイル名を取得したいコマンドプロンプト
- HTTP Status 400 Bad Request
- ブラウザを変更することで通信が成功する原因は何?
- submit ボタンを押した際に、テキストボックスの内容が消えてしまう
- フォーム内でテキストボックスの内容が正しく保持されず、以前のキーワードが残っている
- テキストボックスの値が以前のキーワードで検索されてしまう
- keyword,genre_id,store=""
複数の変数を一度に初期化できないの?
- Djangoでモデルから最新の30件を更新日の降順で取得する
- Djangoで更新日の情報をモデルに追加する
- 予実管理とは
- ダイレクトビジネスとは
- ベンダーとは
- 販促とプロモーションの違い
- <!– フォームのデータを表示 –>
{{ params }}
これどこにかくの?
- Djangoフォームのデータを受け取る際に form-control いらない?
- <input type="text" name="adjust_item_price" placeholder="調整後の価格">
ここってvalueいれなくていいの?
- HTMLのvalue属性ってなに
- placeholder="調整後の価格" これは初期値じゃないの?
- viewが受け取る為に、inputタグで必要なのはなにかな
- input タグの type 属性を “hidden" に設定することで、非表示の入力フィールド(hiddenフィールド)を作成できる
- input タグの type 属性が “hidden"の場合、どうなるの
- id 属性は主にCSSやJavaScriptから特定の要素を選択・操作するために使用される
- HTMLのフォームがGETメソッドを使用する場合、データは主に初回のページ読み込み時にサーバーに送信される
- フォームが送信されたかどうかをDjangoのビューで判定する
- Djangoのビューで2つのフォームを区別する
- <Response [400]>
{“error_description":"set sort from +affiliateRate,-affiliateRate,+reviewCount,-reviewCount,+reviewAverage,-reviewAverage,+itemPrice,-itemPrice,+updateTimestamp,-updateTimestamp,standard","error":"wrong_parameter"}
- フォーム内で sort パラメータを追加する
- 8 11 13 ? 18
A:13
B:14
C:15
D:16
E:17
?に入るのは、A~Eどれか
- Djangoのテンプレートで値が保持されていないよ
- フォームを2つ用意する。AとBのフォームとする。Aのフォームは、AだけPOSTする。BのフォームはAとBの2つをPOSTする
- フォームAが複数のフィールドを持つ場合、それを考慮してフォームBにデータを送信するHTML
- params = request.POST.dict()で取得できていない、何が問題かな
- ブートストラップで横幅を広げたい
- Bootstrapのグリッドシステムで使用される列の数を増やす
- inputタグないとviewにおくれない
- main要素の中に多くのコンテンツがあり、それによって見た目が見づらくなっている
- DjangoのViewのコードが長くなっちゃう
- ユーティリティ関数とは
- Djangoで成功したら、「調整完了」を表示させたい
- formのactionってなに、ブランクでいいの?
- params = request.POST.dict()
これはなに
- request.POST オブジェクトは、HTTP POST リクエストで送信されたすべてのデータを保持している
- params = request.POST.dict()がある場合、そのままrenderで返して、HTMLで再表示させたい
- django.template.exceptions.TemplateSyntaxError: Invalid filter: 'filter’
- カスタムフィルターとして get_item を使用するときは、filter タグと同様に使用する
- RakutenItem.objects.order_by('-updated_at’)[:30]
この中から、itemPriceの最安を1つだけ取得したい
- TemplateSyntaxError(django.template.exceptions.TemplateSyntaxError: add requires 2 arguments, 1 provided
- Djangoテンプレートで引き算したい
- class="col-md-10 ms-sm-auto col-lg-10 px-md-4
これなに
- ModuleNotFoundError: No module named 'models’
- シェルでデバッグするのじゃなくて、普通に、pythonファイルを実行させてデバッグしたいな
- from django.test import TestCaseの使い方
- recent_items = RakutenItem.objects.order_by('-updated_at’)[:30]
これをdfにいれたい
- data のカラム名は、sqlite3のカラム名を使って全件取得して
- dfの中からshopCodeで抽出して
- キャッシュは関係ない?
- サーバー側でキャッシュを常にクリアするとか指示できない?
- 画像だけキャッシュを無効化できるかな
- str(recent_prices.loc[0,[“itemPrice"]]
これをhtmlで表示したい
- str(recent_prices.loc[0, [“itemPrice"]]) これを数値として返したい。
- Djangoでitem.postageFlag==0なら「送料込み」とテンプレートエンジンで表示したい
- Djangoのテンプレート内で elif はつかえる?
- 環境変数を削除したい
- 環境変数一覧
- File “/home/share/django/lib/python3.8/site-packages/django/apps/registry.py", line 91, in populate
app_config = AppConfig.create(entry)
File “/home/share/django/lib/python3.8/site-packages/django/apps/config.py", line 193, in create
import_module(entry)
File “/usr/lib/python3.8/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File “<frozen importlib._bootstrap>", line 1014, in _gcd_import
File “<frozen importlib._bootstrap>", line 991, in _find_and_load
File “<frozen importlib._bootstrap>", line 973, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'django.contrib.humanizemodels’
- class TestModel(models.Model):
File “/home/share/django/lib/python3.8/site-packages/django/db/models/base.py", line 129, in __new__
app_config = apps.get_containing_app_config(module)
File “/home/share/django/lib/python3.8/site-packages/django/apps/registry.py", line 260, in get_containing_app_config
self.check_apps_ready()
File “/home/share/django/lib/python3.8/site-packages/django/apps/registry.py", line 137, in check_apps_ready
settings.INSTALLED_APPS
File “/home/share/django/lib/python3.8/site-packages/django/conf/__init__.py", line 102, in __getattr__
self._setup(name)
File “/home/share/django/lib/python3.8/site-packages/django/conf/__init__.py", line 82, in _setup
raise ImproperlyConfigured(
django.core.exceptions.ImproperlyConfigured: Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.
- Djangoのテストフレームワークを使用することをお勧めします。
- djangoでデバッグする方法
- djangoでモデルからデータ取得して、データをprint文で表示したいだけの場合、runserverでサーバーを立ち上げないといけないの?
- —————————————————————————
AttributeError Traceback (most recent call last)
Cell In[3], line 62
58 retrieved_data = session.query(ProductData).filter_by(id=1).first()
60 # データの属性にアクセス
61 # print(retrieved_data.html_id)
—> 62 print(retrieved_data.定価)
64 # FetchProductURLクラスなど、他の部分も同様に修正してください
AttributeError: 'NoneType’ object has no attribute '定価’
- session.query(ProductData).filter_by(id=1)
このidってなに?
- dfをそのままormで処理できるかな
- ProductData(**row.to_dict())
これはなに
- redmineの文字が小さいので、大きくしたい
- vscodeでviにデフォルト設定にしたい
- export でvim
- class TestModel(models.Model):
File “/home/share/django/lib/python3.8/site-packages/django/db/models/base.py", line 129, in __new__
app_config = apps.get_containing_app_config(module)
File “/home/share/django/lib/python3.8/site-packages/django/apps/registry.py", line 260, in get_containing_app_config
self.check_apps_ready()
File “/home/share/django/lib/python3.8/site-packages/django/apps/registry.py", line 137, in check_apps_ready
settings.INSTALLED_APPS
File “/home/share/django/lib/python3.8/site-packages/django/conf/__init__.py", line 102, in __getattr__
self._setup(name)
File “/home/share/django/lib/python3.8/site-packages/django/conf/__init__.py", line 89, in _setup
self._wrapped = Settings(settings_module)
File “/home/share/django/lib/python3.8/site-packages/django/conf/__init__.py", line 217, in __init__
mod = importlib.import_module(self.SETTINGS_MODULE)
File “/usr/lib/python3.8/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
ModuleNotFoundError: No module named 'tools’
- 有効/無効
- ORMを使ったCRUD一通り教えて
- session.query(ProductData).filter_by(id=1).first()
filterってどんなのがあるの?
- —————————————————————————
OperationalError Traceback (most recent call last)
File c:UsersAdministratorDocumentstask_schedulercrawlLibsite-packagessqlalchemyenginebase.py:1969, in Connection._exec_single_context(self, dialect, context, statement, parameters)
1968 if not evt_handled:
-> 1969 self.dialect.do_execute(
1970 cursor, str_statement, effective_parameters, context
1971 )
1973 if self._has_events or self.engine._has_events:
File c:UsersAdministratorDocumentstask_schedulercrawlLibsite-packagessqlalchemyenginedefault.py:922, in DefaultDialect.do_execute(self, cursor, statement, parameters, context)
921 def do_execute(self, cursor, statement, parameters, context=None):
–> 922 cursor.execute(statement, parameters)
OperationalError: no such column: product_data.ブランド名_英名
The above exception was the direct cause of the following exception:
OperationalError Traceback (most recent call last)
Cell In[1], line 58
55 session = Session()
57 # IDが1のデータを取得
—> 58 retrieved_data = session.query(ProductData).filter_by(id=1).first()
60 # データの属性にアクセス
61 print(retrieved_data.html_id)
…
FROM product_data
WHERE product_data.id = ?
LIMIT ? OFFSET ?]
[parameters: (1, 1, 0)]
(Background on this error at: https://sqlalche.me/e/20/e3q8)
- windows11でbatファイルを管理権限で実行すると「パスが指定されていません」と表示される。
コマンドプロンプトから実行すると正常に実行される。
- バッチファイルを実行中に一時停止する
- コマンドプロンプトでpos-pcposとでた
- @echo offwhoamipausecd C:UsersPOSワンドライブ_backupデスクトップpython spooler.py これを実行したい
- コマンドプロンプトを管理権限で実行すると正常に実行できるが、batファイルを管理権限で実行すると権限が付与されていない
- Windows 11では、互換性タブが直接表示されない
- ショートカットタブがない
- Pythonファイルを管理権限で実行したい
- スクリプト内で管理者権限を確認する方法を以下に実装して
import tkinter as tk
from tkinter import messagebox
import win32serviceutil
def start_print_spooler():
try:
service_name = 'Spooler’ # Print Spoolerのサービス名
print(“Starting Print Spooler…")
# サービスの起動
win32serviceutil.StartService(service_name)
print(“Print Spooler started successfully.")
# ダイアログボックスの表示
messagebox.showinfo(“Print Spooler Started", “Print Spooler has been started successfully.")
except Exception as e:
print(f"Error starting Print Spooler: {e}")
messagebox.showerror(“Error", f"Error starting Print Spooler: {e}")
def stop_print_spooler():
try:
service_name = 'Spooler’ # Print Spoolerのサービス名
print(“Stopping Print Spooler…")
# サービスの停止
win32serviceutil.StopService(service_name)
print(“Print Spooler stopped successfully.")
# ダイアログボックスの表示
messagebox.showinfo(“Print Spooler Stopped", “Print Spooler has been stopped successfully.")
except Exception as e:
print(f"Error stopping Print Spooler: {e}")
messagebox.showerror(“Error", f"Error stopping Print Spooler: {e}")
if __name__ == “__main__":
# ウィンドウの作成
root = tk.Tk()
root.title(“Print Spooler Controller")
# ラベル
label = tk.Label(root, text="Print Spooler Controller", font=(“Helvetica", 16))
label.pack(pady=10)
# ボタン(起動)
start_button = tk.Button(root, text="Start Print Spooler", command=start_print_spooler)
start_button.pack(pady=5)
# ボタン(停止)
stop_button = tk.Button(root, text="Stop Print Spooler", command=stop_print_spooler)
stop_button.pack(pady=5)
# ウィンドウの表示
root.mainloop()
- ORMは制約はどうなるの
- sqlalchemyの場合、外部キーの制約とかはどうなる
- 0有効・無効TEXT00
1メーカーコードINTEGER01
2メーカー名TEXT00
3表示名称TEXT00
4かなTEXT00
makerテーブルもsqlalchemyでモデルつくって
- vscodeでbashからファイルを開く
- Pingってなに
- ファイヤーウォールでpingの許可
- IPv4とIPV6でファイヤーウォールの設定が違うの?
- windowsでプリンターのスプーラーが停止してしまった、起動させたい。
- pythonでPrint Spoolerを停止させるスクリプト
- tkinterを使用してPrint Spoolerを起動・停止するサンプルスクリプト
- コマンドプロンプトで “アクセスが拒否されました" というエラーメッセージが表示される
- Starting Print Spooler…Error starting Print Spooler: (5, 'OpenSCManager’, 'アクセスが拒否されました。’)
- 管理者権限でスクリプトを実行するためのバッチファイルの例
- Pythonスクリプトをダブルクリックで実行できるようにする
- ERROR: No matching distribution found for win32serviceutil
- [Errno 2] No such file or directory
- sqlで降順にしてから重複削除
- SQLでJANコードのみdistinctしたくて、仕切 も表示させたい
- Bootstrapのアラートコンポーネントを使用して、調整が失敗した場合に赤いアラートを表示
- Djangoでスーパーユーザーを追加
- ¥15,000 @¥14,250
どういう意味
- Connection error!connect EHOSTUNREACH 172.31.43.181:3306
- AWS のRDSをつかってMYSQLを接続したい
- RDSの画面からテーブル作れる?
- RDSの接続方法
- Can’t connect to MySQL server on 'django.ciq7p3j3sfqv.ap-southeast-2.rds.amazonaws.com:3306’ (10060)
- IntegrityError: UNIQUE制約が失敗しました: tools_rakutenitemauto.itemCode
- Djangoのモデルで重複する場合は更新
- threadingのサンプルコード
- bashでグローバルIP取得
- DjangoでMySQLを使用する
- Djangoの古いマイグレーションファイルを削除してもいい?
- VSCodeでMySQLをみたいんだけど
- MYSQLへ接続するには?
- Error:ER_NOT_SUPPORTED_AUTH_MODE
- データベースのテーブルを表示したい
- MySQLをいれてみたけど、テーブル表示どうやるの
- SQLiteを使用してデータをデータベースに追加する
- SQLiteからMySQLにデータを移行する
- SQLiteをUbuntuでセットアップする
- MySQLをUbuntuで使う
- mysqlを管理するソフトある?SQLITEBROWSERみたいな
- mysql work benchの使い方
- See above for output.note: This error originates from a subprocess, and is likely not a problem with pip.
- ERROR: Could not build wheels for mysqlclient, which is required to install pyproject.toml-based projects
- ERROR: Failed building wheel for mysqlclientFailed to build mysqlclientERROR: Could not build wheels for mysqlclient, which is required to install pyproject.toml-based projects
- mysqlclient をインストールする
- print() 関数で改行したい
- print() 関数には sep というオプション
- dfをfor文でparamsという辞書側に変換する
- Djangoのモデルのテーブルのレコードを全て削除する
- Djangoのシェルを使用して、モデルのテーブルのレコードを削除する
- KeyError: “'__name__’ not in globals"
- delete from “tools_rakutenitemauto"
- テーブル内のレコードを全て削除するSQL
- attempt to write a readonly database
- df_subsetってどういう意味
- スレッドとプロセスって違うの?
- SQLiteの場合、トランザクションを使用しても、複数のスレッドやプロセスからの同時書き込み操作を完全に回避することはできない
- MYSQLをdjangoでつかえる?
- DjangoでMySQLを使用する場合、MySQLサーバーを別途用意する必要があるの?
- sqliteにもトランザクション処理はあるでしょ? MYSQLとなにがそんなにちがうの?
- django.db.utils.OperationalError: database is locked このエラーはMYSQLのトランザクション処理したら解消されるの?
- basenc 関数の名前に含まれる “nc" はおそらく “base" の略称
- Dockeの簡単な使い方について
- Visual Studio Code(VSCode)でCSVファイルをテーブル形式で確認するためのいくつかの軽量なプラグイン
- Djangoプロジェクト内で、function.py に定義された関数をテストする
- DjangoのビューをURLにマッピングするために、urls.py ファイルにURLパターンを設定する?
- def rakuten_search_auto(request):
glob_data="/home/share/scp_sakura_suruzo_data/download/"
file=Local.latest_file_folder(glob_data)
print(file)
return render(request,"tools/rakuten_search_auto.html")
- @staticmethod
def latest_file_folder(glob_data):
"’
作成日が最新のフォルダもしくはファイルを取得します。
"’
return max(glob_data, key=os.path.getctime)
- Fabricのサンプルコード
- このFabric使って、リモートサーバーでPythonうごかせる?
- リモートサーバーにPythonファイル起きたくない
- 関数ごとじっこうできる?
- 流石にリモートサーバーにPythonはインストールしないといけないでしょ?
- 5つのサーバーにパッケージを一括インストールさせたい
- if soup(class_="column1″)[0]: この要素があるかどうかを判定するには?
- requests モジュールのtimeoutってなに
- requests.get(url=url, headers=headers, params=payload, timeout=(3.0, 7.5)) このコードはなに?
- basenc 関数は、クラスの属性 _service_secret と _license_key を連結し、それを Base64 エンコードして返す
- annotateってなに
- count=Count('id’)
このcountは、実際のフィールドに入れるわけではないよね?
仮のフィールド?
- import_data_from_csv(file_path)
これを定期的に実行したい
- managementでぃれくとりがない
- /home/share/django/management/commands/importdata.py
ここにimportdataおいてあるんだけど
- from tools.utils import import_data_from_csv
tools.utilsにインポートを解決できませんでした。とでている
- from tools.utils import import_data_from_csv
これはなに??
- パスを確認する: tools.utilsモジュールが正しい場所にあることを確認してください。たとえば、プロジェクトのルートディレクトリ内のtoolsディレクトリにutils.pyファイルがあることを確認します。
utils.pyはないよ
- /home/share/django/management/commands/importdata.py
- fromとimportのパスの位置がわからん
- 処理時間ってどれくらいあるの?20万行あるんだけど
- 自分のpcから、サーバー経由してアクセスしたい。Python
- Ipアドレスを簡単に変更できない?サーバーを踏み台にしてapi投げたい
- これを5つのサーバーで動かしたいんよ
- FabricってなにJenkinsみたいなもの?
- ネットワークにおけるボトルネックを特定する
- Bash(Bourne Again SHell)を使用して、ネットワークのボトルネックを調査する
- requrements.txtを出力
- from django.db.models import Min
- annotate(min_price=Min('itemPriceMin1’))
- Google ドライブにファイルをアップロードする方法
- Pythonを使用してGoogle ドライブにファイルをアップロードする
- クロールとスクレイピングの違い
- CSVのインポートに時間かかりすぎてるんだけど
- マーケテイングの効果測定は、Wordで管理したほうがいい?Excelで管理したほうがいい?他に何かおすすめの管理方法ある?
売上・粗利・受注数量・施策説明・施策背景・結論これらの情報があるんだ。
- 形態素解析とは
- 形態素解析に類似した解析方法
- APIでアプリケーションIDを20個使ってAPIサーバーにリクエストしたい。
課題となる点をあげて
- ネットワーク帯域幅とは
- 適切なネットワーク帯域幅
- ネットワークの帯域幅やキャパシティを確認する
- Google BigQueryは、お金かかる?
- Pythonでできること
- 自然言語処理ってなに?
- PHPにはLaravel以外ににフレームワークある?
- PHPフレームワークはルーティングもできるの?
- PHPの使い方
- PHPでできること
- PHPを使用してデスクトップアプリケーションは作れる?
- PHPでローカルのファイルを処理できる?
- PHPの基本的な書き方
- PHPの2次元配列の処理は?
- Phpのライブラリはあるの?
- 基本、phpはWebアプリを作るための言語なのかな
- PHPでパッケージのインポートはどうやるの?
- Pandasにかわるものはある?
- Google BigQueryとは
- lsb_releaseコマンド何の略なの?
- BuymaにAPIってあるの?
- git cloneの履歴って残るの?
- GitHubにリポジトリの履歴は残らない?
- PHPとDjangoのちがい
- PHPは、サーバーサイドとフロントサイド両方かけるの?
- 基本的に、dockerはgithubと一緒に使う場合が多そう?
- pipとかでインストールしたパッケージもgithubに入っている場合って多くない?
dockerでもインストールしたら二度手間じゃない?
- dockerを使う前提の場合、githubには、pipでインストールするパッケージ類はgit pushする必要はなさそう?
- GitHubで.gitignoreファイルを使用して、pipパッケージを無視する方法
- dockerを使う場合は、仮想環境(venv)も必要ない?
- Dockerで管理できる事は?
- ターミナルでdockerを管理するには、やはりコマンドラインを使うしかない?
- docker上じゃなくて、ホストOS上にpip installされている
- Dockerのイメージに含まれていないパッケージをインストールする
- Dockerfile内で追加のパッケージをインストールするためには、dockerfileをrunしてインストールする必要がある
- Dockerfileをビルドして、その中でRUNステートメントを使用して追加のパッケージをインストールする
- ec-server@ecserver:/home/share/yahoo_price_search$ sudo docker build -t docker_yahoo_price_search
ERROR: “docker buildx build" requires exactly 1 argument.
See 'docker buildx build –help’.
Usage: docker buildx build [OPTIONS] PATH | URL | –
Start a build
- ERROR: failed to solve: ubuntu:22.04.3: docker.io/library/ubuntu:22.04.3: not found
- Dockerを使用してGitHubリポジトリ内のrequirements.txtからパッケージをインストールする手順
- get-docker.shファイルって必要?
- docker buildの次は?
- Lightsailのubuntuのバージョンを確認したい
- Docker Hubってなに
- dockerはosもインストールするわけでしょ?
どの段階でインストールされるの?
- pip installしたものは、どこに保存されるの?
- dockerコンテナを起動した状態で、pip installしたらどうなる?docker内に入る?
- 開発の時は、常にdockerコンテナを起動した状態で開発したほうが、開発者としては楽だよね
- 依存関係の管理って、OSとPythonのバージョンと、パッケージのバージョンとかっていう意味?
- 例えば、Aのサーバーでdockerを使って、開発したプログラムがある。
これをBのサーバーで動かす手順はどうなる?
- コンテナには、pipのダウンロードした物がすでに入っているの?それとも、サーバー先でpip installされるの?
- dockerで定義されるものは、OS、Pythonの管理くらい?
- WORKDIR命令は、Dockerイメージ内の作業ディレクトリを設定するために使用される
- イメージで、出来る事ってOSの指定?
- dockerimegeでubuntuを指定するにはどうしたらいいの
- pip install -r requirements.txtも追加したい
- 開発環境でつかいたいんだけど、function.pyをデバッグするのにどうしたらいいの?
docker startって毎回するの?
- コンテナが常に起動しておくにはどうすればいい?
- コンテナは、ずっと起動させておくものと思っていたけど、処理が終わったら停止させるのが常識なの?
- 1つのイメージから、複数のコンテナを作るケースを教えて
- conflict: unable to remove repository reference “ubuntu" (must force) – container b977582940aa is using its referenced image fd1d8f58e8ae
- sudo docker ps -aコマンドは、Dockerホスト上のすべてのコンテナのリストを表示
- dockerfileを作って、imageを作って、その後、コンテナをつくる?
- ec-server@ecserver:/home/share/yahoo_price_search$ sudo docker run –name container_yahoo_price_search docker_yahoo_price_search
docker: Error response from daemon: Conflict. The container name “/container_yahoo_price_search" is already in use by container “403320a118a6a773cfbcd97c30c22bd6e0afa8502d422f91f93e973365dd1ced". You have to remove (or rename) that container to be able to reuse that name.
See 'docker run –help’.
- 作成したすべてのコンテナの一覧を表示
- コンテナを削除するには
- コンテナを起動したい
- コンテナが終了しないようにするには
- Flaskのmain.pyには、なにかけばいい?
- dockerを使ってプログラムを動かす場合って、どうやるの?
docker startってやるの?
いつもなら、python3 main.pyで実行してたんだけど
- 例えば、Djangoでアプリを作る場合、dockerファイルはどうなるの?大量にパイソンファイルあるけど
- (venv) ec-server@ecserver:/home/user/data$ ls /home/user/data
test_file.txt
- マウント一覧
- え、dockerの使い方を最初から
- コンテナ上に、pythonファイルを置くの?
- FROM python:3.9
# ワークディレクトリを設定
WORKDIR /app
# ホストマシンのカレントディレクトリのPythonファイルをコンテナの/appディレクトリにコピー
COPY . /app
# Pythonファイルを実行
CMD [“python", “your_script.py"]
これをどうしたらいい
- ec-server@ecserver:/home/share/yahoo_price_search$ sudo docker build -t docker_yahoo_price_search .
これはなに
- docker_yahoo_price_searchというイメージを作った状態?
- docker run docker_yahoo_price_search
これをすると、コンテナができる?
- 終了しちゃっていいの?
- FROM python:3.9
# ワークディレクトリを設定
WORKDIR /app
# ホストマシンのカレントディレクトリのPythonファイルをコンテナの/appディレクトリにコピー
COPY . /app
# Pythonファイルを実行
CMD [“python", “main.py"]
イメージで上記のdockerfileをつくったけど、これは、main.pyしか実行できないって事?
- 起動したら、main.pyを実行して、何かメリットあるの?
- 基本、マウントして使う物なんだね
- マウントしたい、どうやる
- (venv) ec-server@ecserver:/home/user/data$ pwd
/home/user/data
俺の場合、ここにマウントしたらいいのかな
- docker run -v /home/user/data:/container/path ubuntu
koredeiino?
- (venv) ec-server@ecserver:/home/user/data$ ls
(venv) ec-server@ecserver:/home/user/data$ ls -a
. ..
nanimodetekonaizo
- その後、コンテナ内で /container/path を見てみると、test_file.txt が表示されるはずです。
- Dockerデーモンの再起動
- Error while fetching server API version: ('Connection aborted.’, PermissionError(13, 'Permission denied’))
- File “/home/share/yahoo_price_search/venv/lib/python3.8/site-packages/requests/sessions.py", line 602, in get
return self.request(“GET", url, **kwargs)
File “/home/share/yahoo_price_search/venv/lib/python3.8/site-packages/requests/sessions.py", line 589, in request
resp = self.send(prep, **send_kwargs)
File “/home/share/yahoo_price_search/venv/lib/python3.8/site-packages/requests/sessions.py", line 703, in send
r = adapter.send(request, **kwargs)
File “/home/share/yahoo_price_search/venv/lib/python3.8/site-packages/requests/adapters.py", line 501, in send
raise ConnectionError(err, request=request)
requests.exceptions.ConnectionError: ('Connection aborted.’, PermissionError(13, 'Permission denied’))
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File “/home/share/yahoo_price_search/docker_utils.py", line 4, in <module>
client = docker.from_env()
File “/home/share/yahoo_price_search/venv/lib/python3.8/site-packages/docker/client.py", line 94, in from_env
return cls(
File “/home/share/yahoo_price_search/venv/lib/python3.8/site-packages/docker/client.py", line 45, in __init__
self.api = APIClient(*args, **kwargs)
File “/home/share/yahoo_price_search/venv/lib/python3.8/site-packages/docker/api/client.py", line 197, in __init__
self._version = self._retrieve_server_version()
File “/home/share/yahoo_price_search/venv/lib/python3.8/site-packages/docker/api/client.py", line 220, in _retrieve_server_version
raise DockerException(
docker.errors.DockerException: Error while fetching server API version: ('Connection aborted.’, PermissionError(13, 'Permission denied’))
- (venv) ec-server@ecserver:/home/share/yahoo_price_search$ sudo /home/share/yahoo_price_search/venv/bin/python /home/share/yahoo_price_search/docker_utils.py
Traceback (most recent call last):
File “/home/share/yahoo_price_search/venv/lib/python3.8/site-packages/docker/api/client.py", line 265, in _raise_for_status
response.raise_for_status()
File “/home/share/yahoo_price_search/venv/lib/python3.8/site-packages/requests/models.py", line 1021, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 409 Client Error: Conflict for url: http+docker://localhost/v1.44/containers/794051acf1b407ff62a055292f01e5a34b040524fadba0e66f697cea7a88c1ba/exec
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File “/home/share/yahoo_price_search/docker_utils.py", line 14, in <module>
response = container.exec_run(exec_command)
File “/home/share/yahoo_price_search/venv/lib/python3.8/site-packages/docker/models/containers.py", line 205, in exec_run
resp = self.client.api.exec_create(
File “/home/share/yahoo_price_search/venv/lib/python3.8/site-packages/docker/utils/decorators.py", line 19, in wrapped
return f(self, resource_id, *args, **kwargs)
File “/home/share/yahoo_price_search/venv/lib/python3.8/site-packages/docker/api/exec_api.py", line 79, in exec_create
return self._result(res, True)
File “/home/share/yahoo_price_search/venv/lib/python3.8/site-packages/docker/api/client.py", line 271, in _result
self._raise_for_status(response)
File “/home/share/yahoo_price_search/venv/lib/python3.8/site-packages/docker/api/client.py", line 267, in _raise_for_status
raise create_api_error_from_http_exception(e) from e
File “/home/share/yahoo_price_search/venv/lib/python3.8/site-packages/docker/errors.py", line 39, in create_api_error_from_http_exception
raise cls(e, response=response, explanation=explanation) from e
docker.errors.APIError: 409 Client Error for http+docker://localhost/v1.44/containers/794051acf1b407ff62a055292f01e5a34b040524fadba0e66f697cea7a88c1ba/exec: Conflict (“container 794051acf1b407ff62a055292f01e5a34b040524fadba0e66f697cea7a88c1ba is not running")
- (venv) ec-server@ecserver:/home/share/yahoo_price_search$ sudo /home/share/yahoo_price_search/venv/bin/python /home/share/yahoo_price_search/docker_utils.py
Traceback (most recent call last):
File “/home/share/yahoo_price_search/venv/lib/python3.8/site-packages/docker/api/client.py", line 265, in _raise_for_status
response.raise_for_status()
File “/home/share/yahoo_price_search/venv/lib/python3.8/site-packages/requests/models.py", line 1021, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 409 Client Error: Conflict for url: http+docker://localhost/v1.44/containers/ae821320fd893575d7fd38552278a79e62c80de5d3da68ad504b9989749c8299/exec
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File “/home/share/yahoo_price_search/docker_utils.py", line 16, in <module>
response = container.exec_run(exec_command)
File “/home/share/yahoo_price_search/venv/lib/python3.8/site-packages/docker/models/containers.py", line 205, in exec_run
resp = self.client.api.exec_create(
File “/home/share/yahoo_price_search/venv/lib/python3.8/site-packages/docker/utils/decorators.py", line 19, in wrapped
return f(self, resource_id, *args, **kwargs)
File “/home/share/yahoo_price_search/venv/lib/python3.8/site-packages/docker/api/exec_api.py", line 79, in exec_create
return self._result(res, True)
File “/home/share/yahoo_price_search/venv/lib/python3.8/site-packages/docker/api/client.py", line 271, in _result
self._raise_for_status(response)
File “/home/share/yahoo_price_search/venv/lib/python3.8/site-packages/docker/api/client.py", line 267, in _raise_for_status
raise create_api_error_from_http_exception(e) from e
File “/home/share/yahoo_price_search/venv/lib/python3.8/site-packages/docker/errors.py", line 39, in create_api_error_from_http_exception
raise cls(e, response=response, explanation=explanation) from e
docker.errors.APIError: 409 Client Error for http+docker://localhost/v1.44/containers/ae821320fd893575d7fd38552278a79e62c80de5d3da68ad504b9989749c8299/exec: Conflict (“container ae821320fd893575d7fd38552278a79e62c80de5d3da68ad504b9989749c8299 is not running")
- Dockerコンテナを起動し、その後にコンテナのIDを確認して、最後に exec_run メソッドを使用して指定したコマンドを実行
- コンテナ内のファイルシステムのルートディレクトリは通常 /
- コンテナへのパス
- コンテナ内でファイルシステムがどこにマウントされているかを確認する
- ホストのファイルシステムをDockerコンテナにマウントするやり方
- Dockerコンテナ内からホストマシンのファイルシステムにアクセスする方法
- マウントするってなに
- マウントせずにホストマシンのファイルシステムを見る方法ってあるの?
- Dockerボリュームってなに
- Dockerコンテナのデータってなに
- Dockerコンテナのネットワーク操作ってなに
- ネットワークってなに
- Dockerのネットワークってなに
- Dockerのネットワーク機能を使用することによるメリットあるの?
- AttributeError: partially initialized module 'docker’ has no attribute 'from_env’ (most likely due to a circular import)
- AttributeError: partially initialized module 'docker_utils’ has no attribute 'from_env’ (most likely due to a circular import)
- DockerException: Error while fetching server API version: ('Connection aborted.’, PermissionError(13, 'Permission denied’))
- ファイアウォールやセキュリティ設定によってDocker APIへのアクセスがブロックされている可能性がある場合、以下の手順で解決
- 既存のコンテナに入って作りたい
- Error response from daemon: container 4aad1fa89f6499ff098690303b2259da01013efa01856b39899d1313f7f41cb0 is not running
- 停止中のコンテナを起動したら?
- コンテナが起動しても直ぐに停止する場合
- Dockerのログに何も出力がない
- コンテナが起動した後に実行されるコマンドまたはプロセスを確認し、それが正常に動作するように修正する方法
- Dockerfile が存在しない場合、コンテナが起動した後に実行されるコマンドやプロセスは、Docker のデフォルト動作に従う
- Ubuntu 上で Docker を使用する手順
- import dockerで出来る事は
- Dockerボリュームの操作ってなに
- Dockerコンテナ内で何か作業をしたい場合
- Dockerイメージの一覧を表示
- permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get “http://%2Fvar%2Frun%2Fdocker.sock/v1.24/images/json": dial unix /var/run/docker.sock: connect: permission denied
- Dockerイメージを作成した後はどうすればいい
- dockerfileはない、つくらないと
- dockerfileをつくりたい
- dockerfileの最低限の情報は?
- dockerfileを使いたくない、自動で生成して
- ubuntuosでdocker使いたいインストールまでできた
- docker runってなに
- コンテナ名は何になるの
- コンテナが実行されているかどうかを確認したい
- コンテナを削除する
- 一般的なデスクトップやノートパソコンで使用されるメモリスロットの最大容量どれくらい?16GB?
- dockerにロードバランサーはついてるの?
- Docker Swarm
- Docker Swarmをつかってみたい
- dockerのコンテナを有効にしたい
- awsのlightsailを使っているんだけど、その環境下をdockerで再現したいんだよね
- dockerimageを作成したい
- DockerをUbuntuで使用する方法
- ec-server@ecserver:/home/share/yahoo_price_search$ docker run -it ubuntu /bin/bash
docker: permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post “http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/create": dial unix /var/run/docker.sock: connect: permission denied.
See 'docker run –help’.
- dockerのコンテナが複数あるんだけど
- Dockerコンテナは何を管理しているの?
- 1つのイメージから、1つのコンテナしかつくれないのではないの?
- 複数のコンテナを使用して同じアプリケーションをホストするメリット
- 複数のコンテナを使用することで、異なる環境でのテストや開発が容易になる、開発環境、ステージング環境、本番環境などで同じアプリケーションを実行することができます。要は、開発用、本番用でコンテナをわけれる
- 冗長性と可用性の向上: 複数のコンテナを使用することで、アプリケーションに冗長性を持たせることができます。一つのコンテナがダウンした場合でも、他のコンテナが引き継ぐことができるため、アプリケーションの可用性が向上します。
コンテナがダウンするってどういうこと?
- Dockerコンテナにリソースを指定する方法
- docker runでコンテナをつくるの?
- コンテナ名を指定はできるの?
- アプリケーションの負荷を分散し、スケーラビリティを向上させるために、複数のコンテナを使用する方法
- ロードバランサー(Load Balancer)とは
- コンテナとイメージはどうちがうの?
- スナップショットとは
- スナップショットは、要はバックアップてきなこと?
- pythonでdockerを使いたい
- dockerとpythonのファイル構造はどうなるの?
- reモジュールのサンプル
- Dockerファイルのみしか置かないの?1ファイルのみ?
- イメージからコンテナが作られるんだよね、コンテナはどこに作成されるの?
- Dockerのコンテナは、仮想環境みたいにアクティベイトとかする必要あるの?
- コンテナを有効化(起動)するかどうかを判断するには
- docker runで新しいコンテナを起動するとはどういう意味?
- docker imageには何が定義されているの?
- aptでインストールしたパッケージは、docker上に保存されるの?
- Dockerコンテナ内で実行される操作やインストールは、ホストOSには影響をあたえない?
- —————————————————————————
TypeError Traceback (most recent call last)
Cell In[16], line 7
5 chrome_options = webdriver.ChromeOptions()
6 chrome_options.add_argument('–proxy-server=socks5://127.0.0.1:9150’)
—-> 7 browser = webdriver.Chrome(ChromeDriverManager().install(), options=chrome_options)
9 # ウェブサイトにアクセス
10 browser.get(“https://example.com")
TypeError: WebDriver.__init__() got multiple values for argument 'options’
- ChromeServiceの設定方法
- developerツールで使われているjavascriptを見れるところってある?
- javascriptでdjangoのモデルにアクセスしてる場合、javascriptを意図的に動かしてアクセスはできるの?
- ajaxリクエストを意図的にする事はできる?
- あるサイトでjavascriptを使って、メーカー品番を入力すると在庫情報が表示されるんだ。
手で打つのは手間だから、直接javascriptを投げる事は可能かな
- javascriptはページ上でどこかに書くの?
- dockerimage ってなに
- ubuntuとかはどこで設定するの
- dockerターミナルってどこにあるの
- 検索窓で必ずこのキーワードは必須として検索する方法ってある?
「05-08-0460」このキーワードが必ず含まれているような状態で検索したい。
- 楽天市場で特定のキーワードを必須として検索するためのアイデア
- カスタム検索エンジンの利用
これはどうやるの
- torを使ってリクエストしたい
- seleniumでtorつかえる?
- —————————————————————————
JSONDecodeError Traceback (most recent call last)
File ~anaconda3libsite-packagesseleniumwebdrivercommonselenium_manager.py:129, in SeleniumManager.run(args)
128 stderr = completed_proc.stderr.decode(“utf-8").rstrip(“n")
–> 129 output = json.loads(stdout)
130 result = output[“result"]
File ~anaconda3libjson__init__.py:346, in loads(s, cls, object_hook, parse_float, parse_int, parse_constant, object_pairs_hook, **kw)
343 if (cls is None and object_hook is None and
344 parse_int is None and parse_float is None and
345 parse_constant is None and object_pairs_hook is None and not kw):
–> 346 return _default_decoder.decode(s)
347 if cls is None:
File ~anaconda3libjsondecoder.py:337, in JSONDecoder.decode(self, s, _w)
333 “""Return the Python representation of “s“ (a “str“ instance
334 containing a JSON document).
335
336 “""
–> 337 obj, end = self.raw_decode(s, idx=_w(s, 0).end())
338 end = _w(s, end).end()
File ~anaconda3libjsondecoder.py:355, in JSONDecoder.raw_decode(self, s, idx)
354 except StopIteration as err:
–> 355 raise JSONDecodeError(“Expecting value", s, err.value) from None
356 return obj, end
JSONDecodeError: Expecting value: line 1 column 1 (char 0)
The above exception was the direct cause of the following exception:
WebDriverException Traceback (most recent call last)
File ~anaconda3libsite-packagesseleniumwebdrivercommondriver_finder.py:38, in DriverFinder.get_path(service, options)
37 try:
—> 38 path = SeleniumManager().driver_location(options) if path is None else path
39 except Exception as err:
File ~anaconda3libsite-packagesseleniumwebdrivercommonselenium_manager.py:95, in SeleniumManager.driver_location(self, options)
93 args.append(value)
—> 95 output = self.run(args)
97 browser_path = output[“browser_path"]
File ~anaconda3libsite-packagesseleniumwebdrivercommonselenium_manager.py:132, in SeleniumManager.run(args)
131 except Exception as err:
–> 132 raise WebDriverException(f"Unsuccessful command executed: {command}") from err
134 for item in output[“logs"]:
WebDriverException: Message: Unsuccessful command executed: C:Usersdell25anaconda3libsite-packagesseleniumwebdrivercommonwindowsselenium-manager.exe –browser chrome –output json
The above exception was the direct cause of the following exception:
NoSuchDriverException Traceback (most recent call last)
Cell In[4], line 9
6 tor_options.add_argument('–proxy-server=%s’ % tor_proxy)
8 # Torブラウザの起動
—-> 9 browser = webdriver.Chrome(options=tor_options)
11 # ウェブサイトにアクセス
12 browser.get(“https://partsss.com/jp")
File ~anaconda3libsite-packagesseleniumwebdriverchromewebdriver.py:45, in WebDriver.__init__(self, options, service, keep_alive)
42 service = service if service else Service()
43 options = options if options else Options()
—> 45 super().__init__(
46 DesiredCapabilities.CHROME[“browserName"],
47 “goog",
48 options,
49 service,
50 keep_alive,
51 )
File ~anaconda3libsite-packagesseleniumwebdriverchromiumwebdriver.py:51, in ChromiumDriver.__init__(self, browser_name, vendor_prefix, options, service, keep_alive)
47 self.vendor_prefix = vendor_prefix
49 self.service = service
—> 51 self.service.path = DriverFinder.get_path(self.service, options)
53 self.service.start()
55 try:
File ~anaconda3libsite-packagesseleniumwebdrivercommondriver_finder.py:41, in DriverFinder.get_path(service, options)
39 except Exception as err:
40 msg = f"Unable to obtain driver for {options.capabilities['browserName’]} using Selenium Manager."
—> 41 raise NoSuchDriverException(msg) from err
43 if path is None or not Path(path).is_file():
44 raise NoSuchDriverException(f"Unable to locate or obtain driver for {options.capabilities['browserName’]}")
NoSuchDriverException: Message: Unable to obtain driver for chrome using Selenium Manager.; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors/driver_location
- Metadata cannot be written in cache (C:Usersdell25.cacheselenium): アクセスが拒否されました。 (os error 5)
The chromedriver version (116.0.5845.96) detected in PATH at C:Usersdell25 } C h C uPython scriptchromedriver.exe might not be compatible with the detected chrome version (121.0.6167.140); currently, chromedriver 121.0.6167.85 is recommended for chrome 121.*, so it is advised to delete the driver in PATH and retry
—————————————————————————
WebDriverException Traceback (most recent call last)
File ~anaconda3libsite-packagesseleniumwebdrivercommondriver_finder.py:38, in DriverFinder.get_path(service, options)
37 try:
—> 38 path = SeleniumManager().driver_location(options) if path is None else path
39 except Exception as err:
File ~anaconda3libsite-packagesseleniumwebdrivercommonselenium_manager.py:95, in SeleniumManager.driver_location(self, options)
93 args.append(value)
—> 95 output = self.run(args)
97 browser_path = output[“browser_path"]
File ~anaconda3libsite-packagesseleniumwebdrivercommonselenium_manager.py:141, in SeleniumManager.run(args)
140 if completed_proc.returncode:
–> 141 raise WebDriverException(f"Unsuccessful command executed: {command}.n{result}{stderr}")
142 return result
WebDriverException: Message: Unsuccessful command executed: C:Usersdell25anaconda3libsite-packagesseleniumwebdrivercommonwindowsselenium-manager.exe –browser chrome –output json.
{'code’: 69, 'message’: 'Driver unavailable: Driver path: ', 'driver_path’: ", 'browser_path’: "}
The above exception was the direct cause of the following exception:
NoSuchDriverException Traceback (most recent call last)
Cell In[13], line 1
—-> 1 webdriver.Chrome()
File ~anaconda3libsite-packagesseleniumwebdriverchromewebdriver.py:45, in WebDriver.__init__(self, options, service, keep_alive)
42 service = service if service else Service()
43 options = options if options else Options()
—> 45 super().__init__(
46 DesiredCapabilities.CHROME[“browserName"],
47 “goog",
48 options,
49 service,
50 keep_alive,
51 )
File ~anaconda3libsite-packagesseleniumwebdriverchromiumwebdriver.py:51, in ChromiumDriver.__init__(self, browser_name, vendor_prefix, options, service, keep_alive)
47 self.vendor_prefix = vendor_prefix
49 self.service = service
—> 51 self.service.path = DriverFinder.get_path(self.service, options)
53 self.service.start()
55 try:
File ~anaconda3libsite-packagesseleniumwebdrivercommondriver_finder.py:41, in DriverFinder.get_path(service, options)
39 except Exception as err:
40 msg = f"Unable to obtain driver for {options.capabilities['browserName’]} using Selenium Manager."
—> 41 raise NoSuchDriverException(msg) from err
43 if path is None or not Path(path).is_file():
44 raise NoSuchDriverException(f"Unable to locate or obtain driver for {options.capabilities['browserName’]}")
NoSuchDriverException: Message: Unable to obtain driver for chrome using Selenium Manager.; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors/driver_location
- webdriver manager使って自動で合わせて
- TypeError Traceback (most recent call last)
Cell In[14], line 10
7 tor_options.add_argument('–proxy-server=%s’ % tor_proxy)
9 # Chrome WebDriverを自動的にダウンロードして使用する
—> 10 browser = webdriver.Chrome(ChromeDriverManager().install(), options=tor_options)
12 # ウェブサイトにアクセス
13 browser.get(“https://example.com")
TypeError: WebDriver.__init__() got multiple values for argument 'options’
- 新しいサーバーで、ドッカーを使いたい
- dockerのインストールしたい ubuntu
- 全てのコマンドを自動で実行し、プロンプトによる確認を省略するためには、-yオプションを使用
- Newer kernel available
│
│ The currently running kernel version is 5.15.0-1030-aws which is not the expected kernel version 6.2.0-1018-aws.
│
│ <Ok>
│ │
└─────────────────────────────────────────────────────────
- Restarting the system to load the new kernel will not be handled automatically, so you should consider rebooting.
- soup(id="stock")[0](class_="stock")[0]
この要素があるかで条件分岐したい
日本語で
- djangoでモデルからDBにデータを入れるときは、SQLを実行しているの?
- Django ORMの中身は、sqlが実行されてる?
- djangoのhtmlで、Javascriptをつかって、DBからデータを取得して表示させたい
- djangoで1ユーザーに割り当てるCPUの率を設定できる?
- ログインの有無にかかわらず、全てのユーザーにたいしてリクエストをCPUの利用率で制限したい
- excelでURLをハイパーリンクにしたい
- Lightsailへのデプロイスクリプトの作成
- GitHub Actionsのワークフローを設定
- 開発はPCで行って、git pushしたら、gitactionでテスト等を行ってから、問題なければ、sshでデプロイ先のサーバーへ接続して、サーバー側でgit pullして差分データを取得して、dockerを再起動して新しいプロセスを走らせる形?
- クローラーをつくりたいんだけど、今のPCのIPアドレスを使いたくないんだ
- awsに2つのインスタンスを作成して、1つは開発用、1つは公開用でどうかな
- chatworkでファイルをとばしたい
- Pythonを使用してChatworkでファイルを送信する
- awsのサーバーとgitlabを連携させることはできるの?CICD
- githubにはcicdはないの?
- githubactionを使ってlightsailと連携できる?
- cicdは、稼働中のサーバーを一旦停止するの?継続的なデプロイってなに
- 例えば、サーバーで既にプログラムがうごいていたら、CDでデプロイしたら、プログラムは再起動しないの?
- 既存のプロセスが終了したら、CDでpushされたコードが読み込まれて、ニューバージョンのコードが実行されるってかんじ?
- 自分が勝手にサーバーのコードを変えるのではNGなの??
- CICDを採用すると、安全に、そして安定的にサービスを提供できるってことか
- テストスイート?
- テストって、本来自分でするものじゃない?テストパターン設定して・・・それを自動でしてくれるの?
- CICDの重要性は分かった
- Jenkinsはビルドのボタンとかあるけど、あれはなに?
- GitHub Actionsを使用したCI/CDの手順
- ワークフローの定義
- ジョブの設定
- ワークフローのトリガー設定
- ビルド、テスト、デプロイの自動化:
- lightsailで実行する為に、行う事は?
- githubactionをつかってlightsailをcicdしたい
- docker buildってなんだっけ
- コンテナを移動というより、イメージをコピーして、そこに新たにコンテナを構築する感じ?
- イメージを他のサーバーで共有するには、dockerhubを使うの?
- Pythonのシステム構築をする際、色々なサービスを使うと思うけど、docker,github,ほかになんか一般的につかうものはある?
- CI/CDツールで、pythonベースのものはある?
- GitLab CI/CDの使い方
- パイプラインってなに?
- こちらでユニットテストは必要ない?
- pytestってなに
- gitlabはサーバーの役割をはたしているの?
- DjangoでLightsailからIPアドレス制限をしたいな
- LightsailでDjangoアプリケーションをホストする際にセキュリティで気を付けた方がいいことある?
- 識別子はどうしたらいいの?40に意味はあるの?
- headlessモードで出来ないサイトってある?
- CAPTCHAを突破する方法
- dockerで追加でpip installしたい場合はどうしたらいい?
- dockerを常に起動した状態で、コマンドラインでpip installしてもいいの?
- docker exec
- docker execでpipinstallしたら、そのパッケージは、コンテナの中にはいる??
- 作ったコンテナを別の場所で稼働させるにはどうしたらいいの?
- No module named pip
- root@2fe1ac4200f1:/# lsbin boot dev etc home lib lib32 lib64 libx32 media mnt opt proc root run sbin srv sys tmp usr varどこに設置したらいい?Djangoのプロジェクト
- Djangoプロジェクトはhome と rootはどっちに設置したらいいの?
- ('Connection aborted.’, ConnectionResetError(10054, '既存の接続はリモート ホストに強制的に切断されました。’, None, 10054, None))
- djangoって、フォームをpostする時URLのパラメーターを変更するの?
- POSTリクエストの上限ってあるの?
- URLを変えてリクエストする方法はあるの?URLパラメーターつかって
- APIへのリクエストには、主にURLのクエリ文字列を使用してパラメーターを指定する方法がつかわれるの?
- Djangoへのリクエストにはつかわれない?
- POSTリクエストの本文?
- djangoで本番用と開発用と分けたい。どうしたらいい?docker?
- lightsailとec2の違い
- Lightsailはスケールアップは簡単にできる?
- lightsailにdjangoを置いて、異なる場所(社内)のローカルエリアのネットワークで共有する事とかってできる?
- Log in failed. If this instance has just started up, try again in a minute or two.
CLIENT_UNAUTHORIZED [769]
- An error occurred and we were unable to connect or stay connected to your instance. If this instance has just started up, try again in a minute or two.
UPSTREAM_NOT_FOUND [519]
- lightsailでdjangoをつかいたい
- UbuntuでDockerをインストールする際、全てyesでインストールしたい
- DockerをUbuntuで実行する
- Dockerを起動してイメージ(コンテナ)を実行する手順
- djangoでプロジェクトを作りたい
プロジェクト名とアプリケーション名、どうしたらいいかな、クロールを管理するdjangoをつくりたい
- ERROR: Ignored the following yanked versions: 0.0.0, 0.7.8
ERROR: Ignored the following versions that require a different python version: 8.19.0 Requires-Python >=3.10; 8.20.0 Requires-Python >=3.10; 8.21.0 Requires-Python >=3.10
ERROR: Could not find a version that satisfies the requirement python-apt==2.0.0+ubuntu0.20.4.3 (from versions: none)
ERROR: No matching distribution found for python-apt==2.0.0+ubuntu0.20.4.3
- requirements.txtを後からインストールしたい
- pip listの中を全て削除したい
- ModuleNotFoundError: No module named 'mathfilters’
- djangoを動かすのに必要なサーバースペック
- djangoでクローラーを動かして、モデルで保存したい。
- linuxでmysql使える?
- linuxでtorつかえる?
- Torを使用する際のプロキシ設定
- Socksプロキシとは
- Couldn’t find any package by glob 'python3.9’
- Please select the geographic area in which you live. Subsequent configuration questions will narrow this down by presenting a list of cities, representing the time zones in which they are located.
1. Africa 2. America 3. Antarctica 4. Arctic 5. Asia 6. Atlantic 7. Australia 8. Europe 9. Indian 10. Pacific 11. Etc
Geographic area:
- Visual Studio Code(VSCode)の機能の1つである「Dev Containers」ってなに
- dockerをcronで実行とかできるの?
- dockerコンテナ内のosでcronを実行できるの?
- docker内のOSをなんていうの?ゲストOS?
- ホストOSとゲストOSと2つのcronが使える事になるのか
- コンテナをrunしておかないと、ゲストOS内のcronは起動しない?
- lightsailでアクセス制限したい
- ipアドレスの制限できる?
- checkoutってなに
- 別のブランチをつくりたい
- githubのpull requestってなに
- requirements.txtのパッケージをコメントアウトしたい
- コンテナを常に起動しておきたい
- Visual Studio Code(以下、VSCode)を使用してDockerを操作する
- Docker Hubの使い方
- docker run -itコマンドは、Dockerコンテナを対話モードで実行するためのコマンド
- E: Unable to locate package python3.9E: Couldn’t find any package by glob 'python3.9’
- ソフトウェアの技術要件とは
- デシル分析とは
- NBSystemをLightsailで作るうえで、HTTPポートによるセキュリティリスクを教えて
- ファイヤーウォールでIPアドレス制限をすれば、全て解消される?
- 機密データの漏洩: ユーザーの個人情報や機密データが漏洩するリスクがあります。これに対処するために、データの暗号化やアクセス制御の強化が必要です。
lightsailでubuntuでdjangoを使う場合、どう対応したらいい?
- sqlでidを逆順にしたい
- pythonのインストール
- dockerを使いたい、どうやるんだっけ
- docker作る時のディレクトリ校正
- Ubuntuの最新版を使用してDockerfileを作成する
- LABEL maintainer="your_name" なにこれ
- ERROR: failed to solve: process “/bin/sh -c python3 -m pip install -r requirements.txt" did not complete successfully: exit code: 127
- dockerを常時起動状態にしておきたい
- Amazon Lightsailには高度なネットワーク設定
- 英語とローマ字って何が違うの?
- sqliteでカラム一覧を取得したい
- SQL(Structured Query Language)の基礎
- カラム一覧を取得するSQL
- SQLiteでテーブルのカラム一覧を取得
- システム要件の例
- 443番ポートって
- アパートのPCをプロキシサーバーとしては使えないよね?
- アパートの個人用PCをプロキシサーバーとして使用することは可能?
- awsでubuntuでlightsail契約しているんだけど、これをプロキシサーバーとしてつかえる?
- プロキシサーバーとして使うだけなら、512 MB Memory
2 vCPUs Processing
20 GB SSD Storage
1 TB Transferで足りる?
- awsをプロキシサーバーとして使う場合、どんなサービスがいいかな
- AWSのサービスの料金、どれが安い?
- リージョンってなに?サーバーのある場所?
- 本国内にも存在するAWSのリージョンはあるの?
- awsのプロキシサービスで、日本のリージョンで安いサービス教えて
- プロキシサービスは、サーバーを借りるイメージなの?
- プロキシサービスは、単にリクエストを中継するだけ?
- 代表的なプロキシサービス教えて
- 日本からのプロキシサービス
- torはプロキシサーバー?
- サクラのwindows vpsを契約しているんだけど、そこをプロキシサーバーとして使えるかな?
- Gunicornサーバー
- 1日3000PV ならどれくらいのリクエストがきている?
- Djangoで権限はデフォルトで何段階?
- ログインとか、スタッフとか、スーパーユーザーとか権限の割り当てによって、使える機能制限したい。
- Djangoで権限はどうやって設定するの?
- システムは24時間365日稼働し、定期的なメンテナンスやアップデートを除いて、利用可能。
これを実現するには?
- アーキテクチャとは
- プロキシサーバーのIPアドレスを指定してそこからアクセスしたい。
- クラウドプロキシサーバーほしい、いいところない?
- 単にAPIを送信するだけに使いたいんだよね、固定IPアドレスで、いいプロキシないかな?
- Djangoで同時に何リクエスト迄処理できる?
- Djangoが同時に処理できるリクエストの数
- .ipynbファイル内の特定のセルのみを実行したい場合
- データをCSVでもらうので、それを一括で反映させる機会がある。
- ダッシュボードってなに?
- CSVデータで更新する場合、1つのアプリケーションで、更新するテーブルを選択してCSVファイル受付けして更新させればいいかな?
- 要件定義書ってどんなことかくの
- アプリケーション毎に作る必要はない?
- クローラーアプリケーションを作っていきたい。
- クロールし終わった後に、マッピングってできる?
- 異なる表記のブランド名(メーカー名)の整合性を保つためにmappingが有意ということか
- バイクの車種のマッピングもしたいんだよね。
- MotorcycleMappingテーブルがいいかな?
- マッピングは、マッピングアプリケーションとして作った方がいいかな?カテゴリ、車種、ブランドのマッピングをスクレイピング後にしたいんだ。
- マッピングアプリケーションは、カテゴリ、車種、ブランドで3アプリケーション作った方がいい?
- 画像データをURLから取得して、リサイズ・リネームを行いたいんだけど、それもアプリケーションとして別で持った方がいい?
- 何か追加すべき事あるかな?スクレイピングアプリケーションの要件定義に
- データの正規化?
- 値の単一化するにはどうしたらいいかな
- 辞書マッチング?
- ログの出力は、何単位で行えばよいのか。
- モジュール単位でログを出力しようと思っていて、history.logとerror.logの2ファイルにを出力しようと思っているんだ。どうかな
- 商品ページ生成アプリケーションの要件定義を作りたい。
- Djangoでクロールアプリケーションで、100個のアプリケーションをつくるが、多くのモジュールは再利用する。
どこに配置したらいい?
- モジュールパスを設定することで、Djangoプロジェクト全体でカスタムモジュールの再利用が容易になる
- ブランドのマッピングテーブルも作りたい
- ブランドのマッピングテーブルにデータを書き込む
- mapped_brandは、こちらでクロールサイトごとに指定するってこと?
- eanコードは何桁?
- カラム名、janにしようかeanにしようか、どうしよう
- 強化学習は、機械学習の一部?
- スクレイピングアプリケーションについての要件定義も行いたい
- テーブルのカラム名に使いたいんだ。スペースとかあっていいの?
- データの加工や整形を行い、分析や可視化に適した形式に変換する。
- スクレイピングアプリケーションのデータは、上書き保存する形で保存していくが、過去データは残した方がいいかな?
- 分析や予測モデルのトレーニング
ECサイトのデータから、なにができる??
- それは、毎日のクロールしたデータに価値はあるのか?ほぼ同じ内容だが
- カラム名って大文字にしてもいいの?
- eanコードとjanコードってなに
- MYSQLを、AWSのRDSを使おうと思う。
- データの暗号化: データの保存や通信時に暗号化を使用してデータを保護します。データベース内の重要な情報や、データの送受信時にTLS/SSLを使用して暗号化します。
アクセス制御: ユーザーごとに適切なアクセス権を付与し、データへのアクセスを制限します。Djangoでは、認証と権限システムを使用してユーザーの認証とアクセス制御を実装できます。
データの匿名化: 個人情報などの機密情報を匿名化して保存し、個人を特定できないようにします。例えば、氏名やメールアドレスなどの個人情報をハッシュ化して保存します。
セキュリティのアップデートとパッチ適用: Djangoや関連するライブラリ、OSなどのセキュリティアップデートやパッチを定期的に適用して、システムの脆弱性を修正します。
ログと監査: システムのアクティビティやアクセスログを記録し、不審なアクティビティやセキュリティイベントを監視します。適切なログレベルと監査ポリシーを設定して、セキュリティ上の問題を追跡し、対処します。
上記は、RDSを使えば全て自動で解消される?
- CrawlDataテーブルに、作成日、更新日が欲しい
- crawl_timestampとupdated_atは、どういうシチュエーションで変更すればいいかな
- NBSystemのDB名どうしよう
- データパイプラインの構築: データの収集から保存、加工、解析までの一連の処理を自動化するデータパイプラインを構築します。この際に、タスクのスケジューリングやエラー処理なども考慮します。一般的に、ワークフローオーケストレーションツールやバッチ処理フレームワークを使用してデータパイプラインを実装します。
- データパイプラインって何
- 100のクロールアプリケーションが動作しているか確認するにはどうしたらいいと思う?
- 監視システムの導入
- ダッシュボードの利用: クロールアプリケーションの状態や動作を可視化するダッシュボードを導入します。ダッシュボードでは、各クロールアプリケーションの稼働状況や処理されたデータの量などの情報を一元管理し、容易に把握することができます。
- Djangoだから、Dashboardアプリケーションをつくって、表示させるのはどうだろうか?
- アプリケーションが停止しているか確認する方法はあるかな?停止しているクロールアプリケーションを表示したい
- Djangoの標準機能で、アプリケーションの稼働の有無を判定する方法は無いのかな?
- セキュリティとプライバシー: データの保存と処理に関するセキュリティとプライバシーを確保します。データの暗号化、アクセス制御、データの匿名化などの手法を使用して、データの機密性と完全性を保護します。
- クロールアプリケーションのテーブルはどうしよ
- CrawlData テーブル:
crawl_id: クロールデータの一意の識別子(主キー)
url: 収集されたウェブページのURL
html_content: 収集されたHTMLデータの内容
crawl_timestamp: データが収集された日時(タイムスタンプ)
redmine用に変更して
- クロールアプリケーションから始めたい
- 要件定義: クロールする対象のウェブサイトやデータの種類を明確にします。どのようなデータを収集するか、どのような頻度で更新するかなどの要件を確認します。
- メタデータって?
- 100サイトのクロールアプリケーションがある場合、各クロールの開始時間はどうしたらいいと思う?一斉にスタートするとリソース食うよね。
- スケジューリングはどうしたらいいかな
- 例えば、常に3サイト分のクロールアプリケーションを処理して、1サイト終わったら、別のクロールアプリケーションを立ち上げるみたいなことはできる?
- Djangoでクロールジョブを動的にスケジューリングするためのやり方教えてよ
- CeleryをDjangoで設定する方法
- 常に3つのタスクを処理するには?(100クロールアプリケーション)
- NBsystemにAPP1、APP2、APP3、APP4、APP5、APP6のクローラーがあると仮定して、つねに3クローラーをceleryで動作させて、1クローラー終わるごとに次のクローラー(APP4)を起動したい。
コードおしえて
- 全てのタスクが終わったら、再度1番目から実行できる?
- celeryは何て読むの?タスク管理ツール?
- データの保存と処理: 収集したデータを保存する方法や、後続の処理手順を定義します。データベースへの保存方法やファイル形式、データの加工や解析手法などを検討します。
- MYSQLのデータ保存形式ってなに?
- データの加工と解析: 収集したデータを必要な形式に加工し、解析します。加工の手法には、データのクレンジング、変換、集約、フィルタリングなどが含まれます。解析の手法には、統計分析、機械学習、自然言語処理などがあります。目的に応じて適切な加工と解析手法を選択します。
- クロールアプリケーションは、HTMLデータをデータベースにいれるだけにしたい。データ加工はスクレイピングアプリケーションで行いたい。解析はひとまず行わない。
- イメージを作成したら、それをdockerfileにできる?
- 最低限のdockerfileでイメージをビルドして、コンテナつくって、そこに色々パッケージをインストールしてから、イメージとdockerfileをエクスポートできるんだね
- パッケージのインストールは、コンテナ上で普通にpip installすればいいんだよね?
- 100個のクローラーアプリケーションと100個のスクレイピングアプリケーションを稼働させるのに月1万くらいのサーバー費用?
- Lightsailでできるかな?
- インスタンスを組み合わせるってどういうこと?
- imageを削除したい
- タグをつけてビルドしたい
- docker images コマンドは、ビルドしたイメージ一覧が表示sれる?
- タグの名前ってどうしたらいい?
- イメージつくったよ
- コンテナ実行したい
- コンテナから抜けたい
- コンテナに入りたい
- コンテナを停止する
- 基本的なpythonのパッケージをインストールしておきたい
- dockerの現在のコンテナからら、docker imageを作成ってできる?
- 単一責任の原則?
- スクレイピングのアプリケーションを分けた時、1クローラーのスクレイピングアプリケーションは1つとすると、100個のスクレイピングアプリケーションを作る必要があるの?
- 大規模なプロジェクトの設計と構成には、いくつかの重要な考慮事項がある
- モジュールは、再利用できそうなものは可能な限り同じところに置いて、再利用できるようにした方がいいかね
- モジュールは、ti.pyに全部いれているんだけど、複数のpythonファイルに分けた方がいい?
- ti.pyを複数のサーバーで使いたいんだよね
- gitリポジトリで、cronで定期的にgit pullする感じ?
- Python:3.10.12をDockerにインストールしたいんだよ
- Docker
OS
Ubuntu22.04 LTS
使用言語
Python(3.10.12)
- docker build -t ubuntu_python:3.10.12 .
これはどういう意味
- docker buildコマンドは、イメージができたってこと?コンテナができた?
- dockerイメージを削除したい
- 今回のクロールアプリケーションは、HTMLデータごと取得するだけなんだ。その後、スクレイピングアプリケーションでDBへ仕分けて処理しようとしていたんだけど、迷っている。スクレイピングアプリケーションは別で用意した方がいいのか。
- コンテナを常に実行中にしたい
- 既にコンテナがある場合は?既存のコンテナを常に実行するように設定したい
- docker run -itってなんだっけ?
- 既にあるコンテナで -itしてアタッチしたい
- コンテナが実行されていないよ
- コンテナ内の操作は、基本、start して execするの?
- start と execめんどくさい、一回でできないの?
- コンテナの起動はスタートして何分くらいかかるの?
- docker runはなに?
- docker imagesは?なに?
- dockerのコマンド一覧
- docker run ubuntuとかできなかったっけ
- コンテナを実行して中に入りたい
- Djangoプロジェクトをhomeディレクトリに配置したほうがいい?
- Couldn’t find any package by glob 'python3.10.12’
- docker run ubuntuをしている状態なんだけど、どうしたらいい
- product_pages_rakutenでもいい?
- lishtsail ubuntuでdockerをrunしたけど、どこにマウントされているんだ
- 今稼働しているコンテナを確認したい
- コンテナを終了したい
- docker rm <コンテナIDまたはコンテナ名>
コンテナを削除するということは、そこにapt installしたパッケージ類もきえる?
- sudo でコンテナ利用するのめんどくさい
- ログアウトってなに?
- ubuntu@ip-172-26-3-51:/home$ docker ps
permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get “http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/json": dial unix /var/run/docker.sock: connect: permission denied
exitしたよ、でもだめ
- ubuntu@ip-172-26-3-51:/home$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fe368285280a ubuntu “/bin/bash" 46 seconds ago Exited (0) 45 seconds ago xenodochial_payne
ubuntu@ip-172-26-3-51:/home$ docker exec -it fe368285280a
“docker exec" requires at least 2 arguments.
See 'docker exec –help’.
Usage: docker exec [OPTIONS] CONTAINER COMMAND [ARG…]
Execute a command in a running container
- Error response from daemon: container fe368285280ac1c1e7dc770e0c0b2ef1f5528fd7070cbec25850351208ed08c7 is not running
- NBSystemDBのテーブル構造どうしよう
- レコードの更新ってクロール日以外になにがあるの?
- # クロールアプリケーション:
** ウェブサイトからナショナルブランドの製品データを収集する。
** 収集したデータをスクレイピングアプリケーションに送信する。
# スクレイピングアプリケーション:
** クロールアプリケーションから受け取ったデータをデータベースに仕分ける。
** データの整理や加工を行い、必要な情報を抽出する。
# 商品ページ生成アプリケーション:
** スクレイピングアプリケーションから取得したデータを元に、ナショナルブランドの商品ページを生成する。
** 商品の詳細情報、画像、価格などを含む完全な商品ページを生成する。
# アップロードアプリケーション:
** 商品ページ生成アプリケーションが生成した商品ページを楽天市場のAPIにアップロードする。
** 楽天市場での商品販売を実現するために、適切な形式でデータを送信する。
# 価格調整アプリケーション:
** 楽天市場にアップロードされた商品の価格を調整し、競争力のある価格設定を行う。
** 必要に応じて価格を更新し、変更を楽天市場に反映する。
これらアプリケーションを作るんだけど、クロール100アプリケーション、ほかは1アプリケーションずつを、NBSystemというプロジェクトでつくればいい?
- 100アプリケーションも作るの大変だな
- 100個のアプリケーションを含むプロジェクトは大規模になるのかな?
- CICDツールを使った方がよさそうだね、あと、開発環境と運用環境も別で持った方がいいか
- クローラーは日本の異なるプロキシからアクセスしたいんだけど、どうしようか。
- トーレントネットワーク
- torrentはtorとはちがうの?
- プロキシサービスは、seleniumでもできる?
- あやまって今のサーバーからリクエストすることはない?
- あやまって今のサーバーからリクエストすること。
今ここのサーバーからクロールしたくないんだ。別IPからしたいんだけど、seleniumやrequestsパッケージは、信頼できるのだろうか。
- 負荷を分散とあるが、特別関係はなくない?元のサーバーが同じなんだから
- ユーザーの操作方法: システムの利用方法や操作手順を記述します。例えば、管理者がシステムにログインする方法や商品データを編集する方法などを示します。
- Djangoで1アプリケーション1クローラーというイメージ?
- 1つのアプリケーションで100個のクローラーを動作させると、1つのクローラーがエラーで停まると、他のクローラーも止まってしまうのか?
- 100個の独立したアプリケーションを作成することは、Djangoで可能なの?
- Djangoで1アプリケーションで1クローラーで、100アプリケーションを作るってこと?
- データの暗号化
- データベースの冗長化
- 仕様書にサーバーや使用する言語とか、フレームワークとかは書かなくていいの?
- # サーバー
** AWS Lightsail(2 GB RAM, 2 vCPUs, 60 GB SSD)
# 使用言語
** Python(3.10.12)
# データベース
** MySQL
# セキュリティ対策
** ファイヤーウォールの設定(ポート制限、IPアドレスの制限)
- 他にプログラムの仕様書に書く事はあるかな?
- コピーするしかないんだね、継承使ってスマートに作れるかと思った
- カラムが作られないんだけど、なんでだ
- 新しいモデルやモデルの変更を定義した後 python3 manage.py makemigrationsすればいいんだよね
- モデルにカラムが追加されない
- 指定のモデルを削除したい
- モデルに定義していないんだ、その場合テーブルを直接削除すればいいかな
- Djangoで管理したほうがいいのは、Django使わずにsqlアルケミーつかったほうがいいのか
- Djangoの学習にどれくらいの時間かかる?
- awsのlightsailでしたい。スペック的に
2 GB Memory
2 vCPUs Processing
60 GB SSD Storage
3 TB Transfer
でしようとおもう。djangoだと、スペックたりないかな?
- Elastic Beanstalk
- AWSのLightsailとElastic Beanstalkはどうちがうの?
- EC2とlightsailの違い
- model.objects.filter(itemCode=item_info.get(“itemCode")).first()
これんな感じに取得するん?
- RakutenItem2のモデルも作りたい
- モデル継承する事ってできる?
- カラムが追加されないんだけど
- rakutenitem_ptr_idのカラムしかできない
- ロリポップスタンダードプランのメールは何個作成できる
- AWSのLightsailはCPUの利用率を30%で抑えられている
- AWSのバーストキャパシティとは
- 4 vCPUs Processingってなに
- CPUのスペックはわからないよねこれだけだと
- バーストキャパシティをつかいきったらどうなる
- オンプレミスのメモリが足りなくなってきた。
- メモリの空きスロットを知るコマンドとかある?bashで
- 空きスロットの有無はコマンドでは分からない?
- 楽天の価格調査ツールを10個のアプリケーションを作って動かしたい。djangoで動かせるかな
- いままで、crontabで.pyプログラムを動かしていたんだけど、それらをすべてdjangoにいれてもいいかな?
- djangoってYOUTUBEもつくられてるの?
- PCからサーバーでプログラムを起動させることはできる?
- Djangoで制限はかからない?
- サーバーのシステムの制限を強制する事はないんだね。
- 2024-02-02 02:41:52.812923
このタイムスタンプを解説して
- Pythonのdatetimeモジュールでミリ秒まで取得できるの?
- カプセル化ってなんだっけ
- vscodeで"""って打つと、引き数や返り値を入力できるプラグインなんだっけ
- クラスにどんなメソッドがあるのか知りたい。なにかいい方法ないか
- クラスのヘルプみたいなの欲しいんだよな
- crontab をviでひらきたい EXPORTつかって
- 1つのアプリケーションやプロジェクトでdjangoでサーバーの制限はある?
- メモリが16GBの場合Djangoをつかってアプリケーションを稼働させた場合、16GB全て使える?それとも制限がかかって8GB迄しか使えない等が発生するか?
- seleniumで指定のwrapper内の全てのAタグを取得したいんだ。
- def fetch_product_url(self):
df = pd.DataFrame()
# for index, i in tqdm(enumerate(self.driver.find_element(By.CLASS_NAME, “productList").find_elements(By.TAG_NAME, “a"))):
for index, i in tqdm(enumerate(self.driver.eval(self.product_url_wrapper):
df.at[index, “crawl_site_id"] = self.crawl_site_id
df.at[index, “url"] = i.get_attribute(“href")
df.at[index, “html_content"] = requests.get(i.get_attribute(“href")).text
try:
df.at[index, “html_sub_content"] = i.find_element(By.CLASS_NAME, “comment").text
except:
pass
df.at[index, “crawl_timestamp"] = timezone.now()
sleep(5)
return df
例えば、for index, i in tqdm(enumerate(self.driver.eval(self.product_url_wrapper):の部分だけオーバーライドとかできないよね?
- デコレーターを使って、try,except passはできたりする?
- .find_elements(By.TAG_NAME, “a")
この部分も渡せる?By.TAG_NAMEとは限らない、CLASS_NAMEになる場合もある
- find_element(By.CLASS_NAME, “productList").find_elements(By.TAG_NAME, “a"))
ここをまるごと引き数としてわたせたりする?
- メソッドをオーバーライドというか、引き数でメソッドを渡せたりする?
- オーバーライドと関数の引数でメソッドを渡す方法のどちらがいいかな?どっちがいいと思う?
- 通常は、引き数でセレクターを渡すやり方で、それが通用しない場合はオーバーライドでもいいのか?
- サブクラス化はオーバーライドするためにあるの?
- 機能を追加って、別のメソッドを追加もできるの?
- for index, i in tqdm(enumerate(self.driver.eval(self.product_url_wrapper):
これだとエラーになる?
- オーバーライドはどんな時に適しているの?
- Fetch_product_urlを入れたとして、それは全て使い回せるわけじゃないんだ
- サブクラス化??
- このクラスのまま使う事はなくて、値はかならず変更するんだけど、どうしたらいいかな、引き数渡せばいいのか?
- クラスって、再利用する前提でつくるの?
- Djangoでモデルにカラムを1つ追加したい。
だが、データベースにすでにレコードは入っている状態だ。どうしたらいい?
- 追加できたけど、テーブルで一番右側に表示される。表示位置とか指定できない?
- orderingつかっても並び替えされない
- sqlite3データベースのテーブルのカラムの並び替えをしたい
- mysqlなら、orderingできるってこと?
- sqlite3のカラムの順番を変更したい
- MYSQLのカラムの順番を変更したい
- モデルのorderingは何だったの?
- VPNとプロキシはどうちがうの?
- クラウドコンピューティングプラットフォーム
- Dockerとは
- SQLとは
- Pythonとは
- Javascriptとは
- dockerはフレームワーク?
- Pythonのフレームワーク一覧
- Pythonで有名なライブラリ
- linuxにインストールしてあるchromeのバージョン確認したい
- LinuxにインストールされているChromeのバージョン:121.0.6167.184 Chromeドライバーの最新バージョン:114.0.5735.90どうしたらいい?
- linuxでChromeのバージョンをダウングレードしたい。114.0.5735.90にしたい
- sudo apt-get install -f
これはなに?
- dpkg -i google-chrome-stable_114.0.5735.90-1_amd64.deb
- wget
- .debってなに?linux用のファイル?
- ココナラって、ココナラから発注者への振込期限ってあるの?
- UbuntuにGoogle Chromeをインストールする手順
- dataframeのindexはどのように割り振られるの?
- 行を削除したら、indexも抜けるということ?
- enumerateはなに?
- dataframeでenumerateするのと、df.iterrows()は同じインデックスを取得する?
- isnullと判定されるものは何?
- 処理に凄い時間かかっている
- 一部分だけ読み込む場合と、全て読み込む場合では、文字コードに変化はある?
- Pythonでクラスのオーバーライドのサンプルコード
- 日本語で
ubuntuのサーバーにmysqlをインストールして、そのデータベースをwindowsのmysqlworkbenchで接続したい
- workbenchでcsvを入れたい
- djangoでアプリケーション毎にpandasのバージョンを指定できる?
- MySQL Workbenchでテーブルのデータをグラフ化できる?
- 降順って安い順?
- 16 GB Memory
4 vCPUs Processing
320 GB SSD Storage
6 TB Transfer
これをEC2だといくら
- EC2だと、CPUの数やメモリの数を自由に設定できるの?
- ネットワークパフォーマンス
Up to 5 Gigabitってなに
- 画像たてよこ800pxの画像なら何枚飛ばせるの?
- “Up to 5 Gigabitって、例えばサーバーへリクエストした時にリクエストとレスポンスの行き帰りがあるわけじゃん?
行き帰り合わせて
- なるほど、例えば、楽天のAPIで何リクエスト送れる?概算でいいよ
- 仮に使用制限が無い場合、何リクエストおくれる?
- Up to 5 Gigabit"って1秒間ってこと?
- EBS onlyってなに
- EBS はEC2を契約するとついてくるの?
- EBS(Elastic Block Store)とS3(Simple Storage Service)はちがうの?
- Performance-core基本周波数フリークエンシー2.10 GHz
Efficient-core基本フリークエンシー1.50 GHz
これは?
- ターボブーストっていつ発動されるの?
- monitonixのsystemloadってなに
- linuxで2月18日に実行されたプロセスを確認したい
- モデルで作成日時を追加したい
- 取得日時(更新日時)と作成日時
- # 画像URL
image_url = models.TextField(blank=True, null=True)
商品画像をスクレイピングしてきてさ、リストで入っているんだけど、どうやってモデルに格納したらいいと思う?
- EC2のCPUとLightsailのCPUはスペックは同じ?
- メモリを占有する場合ってどんなケースが考えられる?
- 大量のデータを処理するっていう場合は、なんでメモリを必要とされるの?一旦メモリに保存するの?
- pythonでメモリーを多く使う処理ってある?
- pandasで配列に入れる場合も、メモリーをくうよね?処理が終わったら開放されるの?
- ipynbファイルとかは、変数は保持されるよね?メモリで保存されているのかな?
- CPU の仕様
コアの数 16
Performance-coresの数8
Efficient-coresの数8
スレッド数 24
ターボ・ブースト利用時の最大周波数 5.20 GHz
インテル ターボ・ブースト・マックス・テクノロジー 3.0 の動作周波数‡ 5.20 GHz
Performance-core最大ターボ・フリークエンシー 5.10 GHz
Efficient-core のターボ・ブースト利用時の最大フリークエンシー 4.10 GHz
Performance-core基本周波数フリークエンシー2.10 GHz
Efficient-core基本フリークエンシー1.50 GHz
キャッシュ 30 MB Intel Smart Cache
合計 L2 キャッシュ24 MB
プロセッサーのベースパワー 65 W
最大ターボパワー 219 W
CPUについて詳しく教えて
- 他のフィールドも追加して、Productモデルをつくって
- プロキシを設定しない場合はどうなる?
- このPCが直接インターネットに接続できないようにすることはできる?つまりSSHだけを使える状態にできる?
- ルーティングでインターネットへの通信をブロックするってどうやるの
- ルーティングテーブルを変更
- Djangoを動かしたい、すでに出来上がったプログラムがあるが、どれくらいのサーバースペックが必要なのか分からないんだ。
- 具体的に特定する方法とかある?
- VSコードのターミナルに背景を表示させたい
- 背景画像なんだけど
- AWS Lightsailがバーストした時に、CPUは追加して対応してくれるの?
- djangoでアプリを作りたい startapp
- with open(csv_path,’a’,encoding=’utf-8′) as file:
writer = csv.DictWriter(file, fieldnames = field_name)
writer.writeheader()
なにこれ
- for i, item in df.iterrows():
search_error_message = "
adjust_error_message = "
try:
if df.isnull().loc[i,’自社品番’]:
if df.isnull().loc[i,’自社品番’]:これはなに
- str(df.loc[i,’調査ワード’]).replace('u3000′,’ ')
- 全角だけがセル内に入っていたらどうなる?欠損値としてあつかわれる?
- df.isnull()
- スクレイパー作って
- dockerhubは、dockerfileを共有するものなの?それともイメージをビルドした物を共有するものなの?
- lightsailをプロキシサーバーとして使いたいやり方教えて
- pythonでプロキシを経由するには?
- プロキシサーバーで認証を設定する
- nginxでポートの設定はしないの?8080になってるけど
- コンテナを新たに起動する
- 既存のコンテナをマウントしたいんだよ
- マウントされていないコンテナはどうなる?
- マウント指定をせずにコンテナ作って、そこですでに開発しているんだ。どうしよう
- マウントする必要性ってある?
- コンテナを削除したい
- 現在のコンテナからdockerfileを生成したい
- ベースのdockerfileはあるんだけど、それになんこもパッケージインストールしたんだ。
- コンテナ内でgit initしてソースコードを管理するの?
- ソースコードをDockerコンテナにマウントする方法
- 今の開発中のコンテナがある。でもどこにマウントされているか分からない
- マウントしたい。ディレクトリ名はなにがいいかな?
- Djangoでプロジェクト名がNBSystemなんだけど
- lightsailのsshサーバーを再起動したい
- ターミナルからしたい
- 再起動したら、ipアドレス変わったんだけど、固定じゃないの?
- docker のコンテナがどこにマウントされているか分からない
- コンテナ内のファイルは、コンテナに入らないとみれないの?
- 原価の情報が無い事になって、価格事故になってしまったんだ。
なにがげんいんだろうか。
- python manage.py makemigrationsって、どこにファイルできる?
- htmlにcssを埋め込みたい
- .head_top li:nth-of-type(3) label {
display: inline-block;
font-size: 12px;
float: left;
}
これはどういう意味?
- styleタグはBODYにいれたらどうなる?
- プロジェクトと施策の違い
- クォータとは
- 価格調整ツールが、正常に作動せずに修正中なんだ。この作業はなんていうの?デバッグ?
- クォータってなに
- 今のクォータは20なんだけど増加をリクエストしたい
- $80
USD per month
16 GB Memory
4 vCPUs Processing
320 GB SSD Storage
6 TB Transfer
このLightsailのプランにアップグレードしたいんだ。
- クォータはアカウント毎に設定が必要なの?
- どれくらいクォータ増加させたらよいの?
- 必要なクォータのリクエストをしたい。
- 見積もる事はできる?クォータの量
- 1つのクロールページをスクレイプした結果、2つのスクレイプのレコードが出来る場合があるんだけど
- プライマリーキーなら、インスタンスキーは、自動で設定されないの?
- 外部キーは、1:1なの?
- Djangoのモデルにおいて、プライマリーキー(crawl_data_id) は重複してもいいの?
- crawl_data_list = CrawlData.objects.all()
これってDF形式?
- all_dataの変数を開放するにはどうしたらいい?
- サーバーが止まってしまった。こういう時、クローラーを途中から再開するにはどうしたらいいかな
- チェックポイントって?
- 処理したページやデータのリスト
これは、どうやるの?
- キャッシュに保存するを詳しく
- キャッシュって、要はデータベースに保存しているってこと?
- class CrawlData(models.Model):
“""
クロール結果のHTML情報
“""
crawl_id = models.AutoField(primary_key=True)
crawlsite_id = models.ForeignKey('CrawlSite’, on_delete=models.CASCADE)
これって、CrawlSiteの何と関連付けられてるの?
models.ForeignKey('CrawlSite’, on_delete=models.CASCADE)
- 一旦テーブルを削除したい
- クロール開始時間を記録して、その記録時間を元にして、スクレイピングするデータを抽出して処理したい
- データは、どこに保存しようか?DBがいいかな?
- 100クローラーと100スクレイパーを作る。
それぞれの開始時間、終了時間を記録するモデルを作りたいな
- モデルからクロールデータを取得して、スクレイピングするサンプルコード
- Djangoのテーブルって、アプリケーション毎に作成されるの?
- 基本クローラーのテーブルは、全て同じスキーマなんだけど、1テーブルで100クローラー管理しようとしてたんだけど、Djangoの方針通り分けた方がいいのかな?
- 1テーブルに100万件入っているより、1万件のレコードを100テーブル作った方がパフォーマンスがいいの?
- 例えば、MYSQLを使った場合、テーブルを分散させておけば、高速にアクセスは可能になる?
- 今回の場合、100クローラー、100スクレイパーをつくる。クローラーのテーブルと、スクレイパーのテーブルは全て同じスキーマ。これでも100個ずつテーブルを設けたほうが良いか?
- データベースに同時アクセスする場合、バッティングが起こると思うんだけど、これはテーブル毎に考えればいいの?データベース毎?
- 1テーブルにまとめる場合と、100テーブルに分散させる場合、高速化できるのはどちら?
- 100のテーブルから大量のデータを一括で取得する場合、メモリ結構食いつぶしそうだね
- Djangoミドルウエア?
- スクレイピングアプリケーションは、クロールアプリケーションが終わったらスクレイピングアプリケーションを実行させたいんだけど、どうしたらいいかな?
- クロールアプリケーションが終わったら、スクレイピングアプリケーションを実行させるような処理はできる?
- cekeryを使ってどうやるの
- crawl.pyとscraping.pyに分かれてるんだよ?
- タイムゾーンが日本時間で保存されない
- datetime使ったとき、shellで確認したい時間
- MYSQLにしたら、タイムゾーンの指定とかできるの?
- オンプレミスサーバー?
- オンプレミスの由来
- なんでオンプレミスサーバーって言うのかおしえて
- オンプレミスサーバーからプロキシサーバーを経由してアクセスしたい。Python
- 万が一、オンプレミスサーバーから直接インターネットへアクセスしないように対策をしておきたい。なにかいいほうほうある?
- 2024-02-28 06:10:10.889217だめだかわらない、モデルでデフォルトの日時を timezone.localtime に設定しても、実際にはモデルが最初に読み込まれたときの日時が保存される?
- from django.utils import timezoneをshellで確認するには?
- root@531a0c7c5e99:/home/NBSystem# python3 manage.py shell
Python 3.10.12 (main, Nov 20 2023, 15:14:05) [GCC 11.4.0] on linux
Type “help", “copyright", “credits" or “license" for more information.
(InteractiveConsole)
>>> from django.utils import timezone
>>>
>>> # タイムゾーンオブジェクトの確認
>>> print(timezone)
<module 'django.utils.timezone’ from '/usr/local/lib/python3.10/dist-packages/django/utils/timezone.py’>
>>>
>>> # タイムゾーンを利用した日時の取得
>>> print(timezone.now())
2024-02-28 06:14:42.059354+00:00
- Djangoのプロジェクトを再起動するには?
- 2024-02-27 03:06:25.471910
こんな感じでsqliteには入っている
- # 今日の0時0分のタイムスタンプを取得
today_start = timezone.now().replace(hour=0, minute=0, second=0, microsecond=0)
# 今日以降のデータを取得
data = Scrayping_Data.objects.filter(updated_at__gte=today_start)
# print(data)
for record in data:
print(record.updated_at)
- モデルから、今日の0時0分以降でmanufacturer_part_numberが重複しないものを取得したい
- self._fetch_all()
File “/usr/local/lib/python3.10/dist-packages/django/db/models/query.py", line 1928, in _fetch_all
self._result_cache = list(self._iterable_class(self))
File “/usr/local/lib/python3.10/dist-packages/django/db/models/query.py", line 210, in __iter__
for row in compiler.results_iter(
File “/usr/local/lib/python3.10/dist-packages/django/db/models/sql/compiler.py", line 1513, in results_iter
results = self.execute_sql(
File “/usr/local/lib/python3.10/dist-packages/django/db/models/sql/compiler.py", line 1549, in execute_sql
sql, params = self.as_sql()
File “/usr/local/lib/python3.10/dist-packages/django/db/models/sql/compiler.py", line 785, in as_sql
distinct_result, distinct_params = self.connection.ops.distinct_sql(
File “/usr/local/lib/python3.10/dist-packages/django/db/backends/base/operations.py", line 205, in distinct_sql
raise NotSupportedError(
django.db.utils.NotSupportedError: DISTINCT ON fields is not supported by this database backend
- today_start = datetime.now().replace(hour=0, minute=0, second=0, microsecond=0)
# data = Scrayping_Data.objects.filter(updated_at__gte=today_start).distinct('manufacturer_part_number’)
# data = Scrayping_Data.objects.filter(updated_at__gte=today_start).values_list('manufacturer_part_number’, flat=True).order_by('manufacturer_part_number’).distinct()
data = Scrayping_Data.objects.filter(updated_at__gte=today_start)
- 今日以降のデータを取得だけでいいや
- updated_atの情報が表示されない。
他の情報は表示できているっぽいんだけど。
- 取得できているか確認したい
- Noneで返ってくる
- history_logみたいなので、関数やメソッドごとに、Aの関数スタート、終了みたいなのを自動でログで吐くのはできないかね
- モジュールが異なる場合、このデコレータはつかえる?
- デコレータに引き数を渡せる?
- エラーが発生したら、error.logに出力してほしい
- 1つのデコレータで、history.logとerror.logを分けて判定して出力できる?
- match.group(0)
- vscodeでdb(sqlite)のデータをコピーしたい。何か軽量で
いい拡張機能はないか
- match = re.search(r'(/ )d{1,3},d{1,3}(税抜)’, str(price_text))
これを、4桁目(1000円以降)は無い場合でも取得したい
- データベースになにか進捗の情報を保存しておいて、そこから取り出して処理を再開するようにした方がいいと思う
- 進捗情報を保存するためのデータベースモデル
- 自動でログを取ってくれる便利なパッケージとかない?
- 例えば、モジュール毎に、Aのモジュールをスタート・エラー・終了みたいなのを自動でしてくれるのないかね
- Django Signalsでログ取るサンプルコード
- 先のエラー解消できそう?
- 正規表現一覧
- match = re.search(r’b(d{1,3}(,d{3})*)(税抜)b’, text)
bってなに
- text = '20,570円(税込)/ 18,700(税抜)税率:10%’
match = re.search(r’b((/ )d{1,3}(,d{3})*)(税抜)b’, text)
- テキストから数字を取得するための正規表現
- match.group(1).replace(',’, ")
groupってなんだっけ
- モデルをmakemigrationsしてからmigrateしても、テーブルが作成されていないんだけど、なんで?
- django_migrationsの内容をけしたらいいかな?
- django_content_typeテーブルを手動で削除できない
- 0からマイグレーションしたい
- フィックスチャ?
- djangoのdbを初期化したい。マイグレーションがぐちゃぐちゃになった
- It is impossible to add a non-nullable field 'crawl_id’ to crawldata without specifying a default. This is because the database needs something to populate existing rows.
Please select a fix:
1) Provide a one-off default now (will be set on all existing rows with a null value for this column)
2) Quit and manually define a default value in models.py.
Select an option:
- djangoでモデルのテーブルのレコードを全て削除したい
- models.ForeignKeyの引数一覧
- 外部キーとして参照したいが、参照先が一意性制約でなくていい場合はどうしたらいい?
- このマイグレーションファイルを削除したほうがいいの?
- Djangoのマイグレーションシステムを使用してテーブルを削除するコマンド
- SQLコマンド
- Djangoでアプリケーションを削除する方法
- fatal: confused by unstable object source data for 3680cc15bcff641d7ee7a3253ef209971aa2005a
- class CrawlData(models.Model):
“""
クロール結果のHTML情報
“""
crawl_id = models.AutoField(primary_key=True)
pkって上書きされたらどうなる?新しいキーになる?
- 外部キーをURLに指定することはできるの?
- url = models.URLField(unique=True)これは1行目だから外部キーとして関連づけられてるの?
- Djangoアプリケーション内にモデルを作成するためのサンプルコード
- モデルを削除したい
- 正規表現1行で取得したいの
- gtoup(1)は?
- .groupについておしえて
- Pythonでは、if 文を1行で
- IFの内包表記
- AttributeError: 'NoneType’ object has no attribute 'group’
- SQLで重複のあるデータのみ取得したい
- 毎回マイグレーションしないと紐づかないの?
- アプリケーションを削除したい。削除すればテーブルも消える?
- python manage.py startapp myappこれって、アプリケーションを作るコマンドじゃないの?
- Exception:rakuten_price_search ufunc 'greater’ did not contain a loop with signature matching types (<class 'numpy.dtypes.Int64DType’>, <class 'numpy.dtypes.StrDType’>) -> None (rakuten_main.py)
- メモリを食いつぶすと、CPUの使用率も上がるって場合はある?
- CPU的に負荷はどのくらいかかるの?
- dataframeにある程度の量のデータをいれて、それをORMで保存する場合と、直接毎回インスタンス作成してORMでDBに書き込む場合と、どちらがCPU・メモリにとって負荷がかからない?
- '20,570円(税込)/ 18,700(税抜)税率:10%’
上記から18700を取得したい
- r'(d{1,3}(,d{3})*|d+)’ 正規表現パターンを詳しく
- 18700だけ取得したいの。要は税抜価格だけ取得したいんだ
- 18,700(税抜)だけ取得したい
- 1行で書きたい
- Lightsailってメモリ以上に容量を使用しようとするとどうなる?
- CPUはスペック以上の場合は遅くても動作するけど、メモリはどうなるの?SSDの仮想領域をつかう?
- dockerコンテナを使う場合と使わない場合とで、リソースの消費は異なるかな?
- dockerを使う方が、余計なリソースは食うということ?
- コンテナへ接続するとCPU使用率が上がるんだけどなんで?
- リスト内包表記はジェネレータ式として使用することもでき、これはメモリの使用量を最小限に抑えることができる?
- タプル型()って、ジェネレータなの?
- my_generator = (x for x in range(3))
my_generatorの型は何になる?
- ジェネレータ型の処理のサンプルコードおしえて
- ェネレータを使ってフィボナッチ数列を生成するサンプルコード
- 実用的なジェネレータの使用例
- ジェネレータは、読み込んだ変数の処理をするときに、処理でメモリを食わないようにするってことか
- Djangoでモデルからデータを読み込むときに、メモリを食わないようにするにはどうしたらいい?
分割して読み込んでは、メモリを解放するてきな?
- 価格調査データを、ビッグデータとして保管していきたいんだよね。
DBはどうやったらいいと思う?
- 大量の価格調査データを保管するためのテーブル設計
- データ量は多くなるけど、それはどうしたらいい?
一定のデータ量になったら、新規でデータベースを作った方がいいのかな?
- データ自体は、保管されていればいいんだ。後でデータ分析で使うから。そう考えると、一定のデータ量になったら新規データベースを作ってそこに追加してった方がパフォーマンスもよさそう?
- データベースってテーブルにインサートするのに、データ容量が多い事でインサートが遅くなるとかある?
- バルクインサート?
- 処理のオーバーヘッド?
- AWS CLIを使用して、AWS RDSのパラメーターグループを変更する方法
- AWSのコンソールを使用してRDSのタイムゾーンを変更する手順
- PythonでCPU使用率を最小限に抑えるためには
- 並列処理を行っても、結局CPUの全体の使用率は変わらんくね?
- 非同期処理(Asynchronous processing)ってなに?
- メモリをなるべく使わないように処理を書きたいんだけど、Pythonで。
- dataframeをジェネレータできる?
- イテレーターが良く分かっていないんだけど
- 普通のfor文とイテレーターは何が違うの
- for文を実行するとき、通常は、dataframeがロードされるの?
- df.iterrowsとは
- dataframeには、変数として既に2次元配列がロードされているでしょ?
- dataframeは変数として、メモリーにすべて保存されているんだよね?例えば、df=pd.read_csvした時とかは、このdfはメモリーに全て保存されているよね?
- リスト内包表記はメモリ削減に効率的なんですか?
- ec-server@ecserver:/home/share/upload_yahoo_price_data$ mysql -h my-rds-instance.cxiyempxoldu.ap-northeast-1.rds.amazonaws.com -P 3306 -u admin -p
Enter password:
ERROR 2005 (HY000): Unknown MySQL server host 'my-rds-instance.cxiyempxoldu.ap-northeast-1.rds.amazonaws.com’ (-2
- RDSへ接続する方法
- root@531a0c7c5e99:/home/NBSystem# python3 manage.py makemigrations
/usr/local/lib/python3.10/dist-packages/django/core/management/commands/makemigrations.py:105: RuntimeWarning: Got an error checking a consistent migration history performed for database connection 'default’: (1049, “Unknown database 'NBSystem'")
warnings.warn(
No changes detected
root@531a0c7c5e99:/home/NBSystem# python3 manage.py migrate
Traceback (most recent call last):
File “/usr/local/lib/python3.10/dist-packages/django/db/backends/base/base.py", line 219, in ensure_connection
self.connect()
File “/usr/local/lib/python3.10/dist-packages/django/utils/asyncio.py", line 26, in inner
return func(*args, **kwargs)
File “/usr/local/lib/python3.10/dist-packages/django/db/backends/base/base.py", line 200, in connect
self.connection = self.get_new_connection(conn_params)
File “/usr/local/lib/python3.10/dist-packages/django/utils/asyncio.py", line 26, in inner
return func(*args, **kwargs)
File “/usr/local/lib/python3.10/dist-packages/django/db/backends/mysql/base.py", line 234, in get_new_connection
connection = Database.connect(**conn_params)
File “/usr/local/lib/python3.10/dist-packages/MySQLdb/__init__.py", line 121, in Connect
return Connection(*args, **kwargs)
File “/usr/local/lib/python3.10/dist-packages/MySQLdb/connections.py", line 195, in __init__
super().__init__(*args, **kwargs2)
MySQLdb.OperationalError: (1049, “Unknown database 'NBSystem'")
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File “/home/NBSystem/manage.py", line 22, in <module>
main()
File “/home/NBSystem/manage.py", line 18, in main
execute_from_command_line(sys.argv)
File “/usr/local/lib/python3.10/dist-packages/django/core/management/__init__.py", line 419, in execute_from_command_line
utility.execute()
File “/usr/local/lib/python3.10/dist-packages/django/core/management/__init__.py", line 413, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File “/usr/local/lib/python3.10/dist-packages/django/core/management/base.py", line 354, in run_from_argv
self.execute(*args, **cmd_options)
File “/usr/local/lib/python3.10/dist-packages/django/core/management/base.py", line 398, in execute
output = self.handle(*args, **options)
File “/usr/local/lib/python3.10/dist-packages/django/core/management/base.py", line 89, in wrapped
res = handle_func(*args, **kwargs)
File “/usr/local/lib/python3.10/dist-packages/django/core/management/commands/migrate.py", line 75, in handle
self.check(databases=[database])
File “/usr/local/lib/python3.10/dist-packages/django/core/management/base.py", line 419, in check
all_issues = checks.run_checks(
File “/usr/local/lib/python3.10/dist-packages/django/core/checks/registry.py", line 76, in run_checks
new_errors = check(app_configs=app_configs, databases=databases)
File “/usr/local/lib/python3.10/dist-packages/django/core/checks/database.py", line 13, in check_database_backends
issues.extend(conn.validation.check(**kwargs))
File “/usr/local/lib/python3.10/dist-packages/django/db/backends/mysql/validation.py", line 9, in check
issues.extend(self._check_sql_mode(**kwargs))
File “/usr/local/lib/python3.10/dist-packages/django/db/backends/mysql/validation.py", line 13, in _check_sql_mode
if not (self.connection.sql_mode & {'STRICT_TRANS_TABLES’, 'STRICT_ALL_TABLES’}):
File “/usr/local/lib/python3.10/dist-packages/django/utils/functional.py", line 48, in __get__
res = instance.__dict__[self.name] = self.func(instance)
File “/usr/local/lib/python3.10/dist-packages/django/db/backends/mysql/base.py", line 405, in sql_mode
sql_mode = self.mysql_server_data['sql_mode’]
File “/usr/local/lib/python3.10/dist-packages/django/utils/functional.py", line 48, in __get__
res = instance.__dict__[self.name] = self.func(instance)
File “/usr/local/lib/python3.10/dist-packages/django/db/backends/mysql/base.py", line 366, in mysql_server_data
with self.temporary_connection() as cursor:
File “/usr/lib/python3.10/contextlib.py", line 135, in __enter__
return next(self.gen)
File “/usr/local/lib/python3.10/dist-packages/django/db/backends/base/base.py", line 603, in temporary_connection
with self.cursor() as cursor:
File “/usr/local/lib/python3.10/dist-packages/django/utils/asyncio.py", line 26, in inner
return func(*args, **kwargs)
File “/usr/local/lib/python3.10/dist-packages/django/db/backends/base/base.py", line 259, in cursor
return self._cursor()
File “/usr/local/lib/python3.10/dist-packages/django/db/backends/base/base.py", line 235, in _cursor
self.ensure_connection()
File “/usr/local/lib/python3.10/dist-packages/django/utils/asyncio.py", line 26, in inner
return func(*args, **kwargs)
File “/usr/local/lib/python3.10/dist-packages/django/db/backends/base/base.py", line 218, in ensure_connection
with self.wrap_database_errors:
File “/usr/local/lib/python3.10/dist-packages/django/db/utils.py", line 90, in __exit__
raise dj_exc_value.with_traceback(traceback) from exc_value
File “/usr/local/lib/python3.10/dist-packages/django/db/backends/base/base.py", line 219, in ensure_connection
self.connect()
File “/usr/local/lib/python3.10/dist-packages/django/utils/asyncio.py", line 26, in inner
return func(*args, **kwargs)
File “/usr/local/lib/python3.10/dist-packages/django/db/backends/base/base.py", line 200, in connect
self.connection = self.get_new_connection(conn_params)
File “/usr/local/lib/python3.10/dist-packages/django/utils/asyncio.py", line 26, in inner
return func(*args, **kwargs)
File “/usr/local/lib/python3.10/dist-packages/django/db/backends/mysql/base.py", line 234, in get_new_connection
connection = Database.connect(**conn_params)
File “/usr/local/lib/python3.10/dist-packages/MySQLdb/__init__.py", line 121, in Connect
return Connection(*args, **kwargs)
File “/usr/local/lib/python3.10/dist-packages/MySQLdb/connections.py", line 195, in __init__
super().__init__(*args, **kwargs2)
django.db.utils.OperationalError: (1049, “Unknown database 'NBSystem'")
- root@531a0c7c5e99:/home/NBSystem# mysql -h nbsystem.cxiyempxoldu.ap-northeast-1.rds.amazonaws.com -P 3306 -u admin -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 531
Server version: 8.0.35 Source distribution
Copyright (c) 2000, 2024, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;’ or 'h’ for help. Type 'c’ to clear the current input statement.
mysql>
- でも、Djangoからはmigrateできないんだよ
- root@531a0c7c5e99:/home/NBSystem# python3 manage.py makemigrations
/usr/local/lib/python3.10/dist-packages/django/core/management/commands/makemigrations.py:105: RuntimeWarning: Got an error checking a consistent migration history performed for database connection 'default’: (1049, “Unknown database 'nbsystem'")
warnings.warn(
No changes detected
- mysqlでタイムゾーンを設定できる?django
- ERROR 2005 (HY000): Unknown MySQL server host 'my-rds-instance.cxiyempxoldu.ap-northeast-1.rds.amazonaws.com’ (-2)
- LightsailからRDSのMYSQLへアクセスしたい
- RDSのVPC設定の確認:
RDSインスタンスが配置されているVPCの設定を確認してください。Lightsailからのアクセスを許可するために、適切なVPCルートテーブルとサブネット設定を行う必要があります。
これは、パブリックアクセス可能に設定してあれば、不要?
- 接続とセキュリティ
エンドポイントとポート
エンドポイント
nbsystem.cxiyempxoldu.ap-northeast-1.rds.amazonaws.com
ポート
3306
ネットワーク
アベイラビリティーゾーン
ap-northeast-1a
VPC
vpc-02451e5997eaa95eb
サブネットグループ
default-vpc-02451e5997eaa95eb
サブネット
subnet-0ed645e7b016723c5
subnet-091f4923e7be7047e
subnet-03bfa5473e643fa7e
ネットワークタイプ
IPv4
セキュリティ
VPC セキュリティグループ
default (sg-062486fe332544a1e)
アクティブ
パブリックアクセス可能
あり
認証機関情報
rds-ca-rsa2048-g1
証明機関の日付
May 26, 2061, 07:54 (UTC+09:00)
DB インスタンス証明書の有効期限
February 27, 2025, 15:49 (UTC+09:00)
- RDSへ接続できない
- RDSのインスタンスへ接続できない
- mysqlのアクセスログは見れる?
- 2024-02-28T08:55:37.451984Z 45 [Warning] [MY-013360] [Server] Plugin mysql_native_password reported: "mysql_native_password’ is deprecated and will be removed in a future release. Please use caching_sha2_password instead’
- 手元のPCからRDSへアクセスしたい
- VSCODEでドラッグした全ての行を編集するショートカットは?
- Visual Studio Codeのキーバインドを初期化したい
- Visual Studio Codeにおいて、選択範囲を編集する方法
- マルチカーソルのショートカット
- Lightsailの月間ネットワークの転送量を確認できる?過去1か月
- Lightsailの月間ネットワーク転送量を直接Bashから確認する方法
- SSHで接続できないんだよね
- エンドポイント
nbsystem.cxiyempxoldu.ap-northeast-1.rds.amazonaws.com
ポート
3306
- コマンドプロンプトからRDSのMYSQLへ接続したい
- MySQLサーバーを停止する
- RDSのMySQLのDBへアクセスしたい
- ERROR 2005 (HY000): Unknown MySQL server host 'my-rds-instance.c
- Access denied for user 'ec-server’@’localhost’ (using password: NO)
- workbenchで行数を確認したい
- VSCODEでctrl shift Lが効かない
- コマンド教えて
- Visual Studio CodeにおいてCtrl + Shift + Lは一括選択ではなく、選択されたテキストのすべてのインスタンスを選択するためのコマンドです。
これが消えている再設定したい
- ECサイトをスクレイピングしたいんだ、すでにHTMLデータはモデルにある。sku毎に1レコード使ってデータをスクレイピングしたいんだよね。
- 1つのHTMLに複数のskuが入っているんだ。SKUの部分をfor文で回して登録したいんだよね
- class CustomScraping(Scraping):はどこにかくの?
- self.driver.execute_script('window.scrollTo(0, document.body.scrollHeight);’)
これはなに?
- CrawlData モデルが common アプリケーション
- ERROR: Could not install packages due to an OSError: [WinError 5] アクセスが拒否されました。:
- saved_credentials.jsonとは
- OAuth 2.0 クライアント IDとAPIキーの違いは何?
- GoogleCloudのOAuth同意画面のアプリのドメインとは何か?
- IPアドレスの制限とかできるの?
- docker上のcronが動作していないようだ
- Cron の再起動
- Cronの時間指定
- スクラッチとフルスクラッチの違い
- djangoで新しいアプリを作る
- pandasでdataframeにしたい
- UnicodeEncodeError: 'shift_jis’ codec can’t encode character 'uff5e’ in position 297: illegal multibyte sequence
- shift-jisでreplaceしたい
- to_csvでreplaceできない?
- UnicodeEncodeError: 'shift_jis’ codec can’t encode character 'uff5e’ in position 295: illegal multibyte sequence
uff5eってなに?
- errors="ignore"にするとどうなる?
- pandas errors="replaceのやり方
- Djangoで現在のアプリケーションのパスを取得する
- Googleドライブにファイルをアップロードする方法
- 依存関係の競合を解消する
- GoogleドライブのAPIキーとクライアントシークレットを取得
- Googleドライブのデータを取得したい
- SCOPES はどうしたらいい?
- AttributeError: 'InstalledAppFlow’ object has no attribute 'run_console’
- タスクスケジューラ
- 現状開いているリモートデスクトップをタスクスケジューラで閉じたい
- UTCって何の略?
- 保存は上書きされる?
- スクレイピングで既にデータがある場合は更新、なければ新規登録しようとしたんだけど、処理が長くなる。
多くのスクレイパーを作るのに手間になりそうだ。
何かいいアイデアはないか?
- 例えば、更新はせずにタイムスタンプ押して常に新規登録でデータをDBへ保存していき、古いデータは別途のスクリプトで削除するアプローチはどうだろうか
- Djangoでモデルから日時指定(日本時間)で取得したい
- UTCでDBに保存されているんだけど、それを取り出したいんだよね。日本時間で。
- MyModel.objects.get(pk=1)ってなに?
- datetime.datetime(2024, 3, 1, 10, 0, 0, tzinfo=jst)
これを今日の0時以降にしたい
- datetime.datetime(2024, 3, 1, 10, 0, 0, tzinfo=jst)
datetime使ってできない?
- 今日の0時以降(日本時間)のデータを取得したい
- data CSVにしたい
- import datetime print(datetime.datetime.now())2024-03-01 16:50:16.285277
- データベース内に保存される時刻って、UTCでいいの?
- データを取り出したいとき、それを日本時間に変換したい場合はどうしたらいい?
- モデルから取り出したい
- jstって何の略?
- from django.utils.timezone import timezoneとpytzどっちつかったらいい?
- 現状開いているリモートデスクトップを再起動したい
- 2024-03-01 07:07:39.239372+00:00これはUTC?
- TIME_ZONEが機能していない場合
- django.middleware.timezone.TimezoneMiddleware これはどこにあるの?
- MYSQLに保存されるときはUTCで保存されて、取り出したときににDjangoで日本時間に変換されるという認識でいい?
- ingoing network trafficってなに
- 送信と受信ならどっちが多い?
- AWS RDSのMYSQLで、TIMEZONEを変更したい
- DB パラメータグループ custom.mysql8.0 の作成リクエストが失敗しました。
The parameter DBParameterGroupName is not a valid identifier. Identifiers must begin with a letter; must contain only ASCII letters, digits, and hyphens; and must not end with a hyphen or contain two consecutive hyphens.
- DB パラメータグループ custommysql80 の作成リクエストが失敗しました。
The parameter Description must not contain non-printable control characters.
- Invalid parameter value: Tokyo for: time_zone allowed values are: Africa/Cairo,Africa/Casablanca,Africa/Harare,Africa/Monrovia,Africa/Nairobi,Africa/Tripoli,Africa/Windhoek,America/Araguaina,America/Asuncion,America/Bogota,America/Buenos_Aires,America/Caracas,America/Chihuahua,America/Cuiaba,America/Denver,America/Fortaleza,America/Guatemala,America/Halifax,America/Manaus,America/Matamoros,America/Monterrey,America/Montevideo,America/Phoenix,America/Santiago,America/Tijuana,Asia/Amman,Asia/Ashgabat,Asia/Baghdad,Asia/Baku,Asia/Bangkok,Asia/Beirut,Asia/Calcutta,Asia/Damascus,Asia/Dhaka,Asia/Irkutsk,Asia/Jerusalem,Asia/Kabul,Asia/Karachi,Asia/Kathmandu,Asia/Krasnoyarsk,Asia/Magadan,Asia/Muscat,Asia/Novosibirsk,Asia/Riyadh,Asia/Seoul,Asia/Shanghai,Asia/Singapore,Asia/Taipei,Asia/Tehran,Asia/Tokyo,Asia/Ulaanbaatar,Asia/Vladivostok,Asia/Yakutsk,Asia/Yerevan,Atlantic/Azores,Australia/Adelaide,Australia/Brisbane,Australia/Darwin,Australia/Hobart,Australia/Perth,Australia/Sydney,Canada/Newfoundland,Canada/Saskatchewan,Canada/Yukon,Brazil/East,Europe/Amsterdam,Europe/Athens,Europe/Dublin,Europe/Helsinki,Europe/Istanbul,Europe/Kaliningrad,Europe/Moscow,Europe/Paris,Europe/Prague,Europe/Sarajevo,Pacific/Auckland,Pacific/Fiji,Pacific/Guam,Pacific/Honolulu,Pacific/Samoa,US/Alaska,US/Central,US/Eastern,US/East-Indiana,US/Pacific,UTC
日本にしたい
- created_atとupdated_atのモデルを作りたい Django
- RDSインスタンスへの新しいパラメータグループの関連付け: 変更したRDSパラメータグループをRDSインスタンスに関連付けます。この手順により、RDSインスタンスは新しいタイムゾーン設定を使用します。
どうやるの
- 2024-03-01 06:58:41.569084
RDSでパラメータグループをカスタムのものにしてTIMEZONEをASIA/TOKYOに変更して、インスタンスを割り当ててDjango でモデルを created_at = models.DateTimeField(auto_now_add=True)でMYSQLへアクセスすると、時間たUTCになる。
- データベースのタイムゾーン設定を変更するだけでも変更される?
- データベースのタイムゾーン設定を変更した場合インスタンスは再起動したほうがいいかな?
- 2024-03-01 07:06:10.846610
これで登録されたよ?
- 日本時間は今16時だよ
- 2024-03-01 07:07:39.192427+00:00
上手く日本時間にならないんだよね
- MYSQLに保存するのをオフセットして保存したい
- djangoのTIME_ZONE
- ューヨークのタイムゾーンとかある?
- 親クラスのメソッドをオーバーライドして新しい機能を追加する
- viでコピー ペースト
- crontab 見方
- CIDRブロックとは
- 他に表現の仕方はあるの?
- Hello there,
This is Saadiqah from AWS Support.
This is just a friendly reminder that in order to process your limit increase of 40 for Lightsail Instances in Asia Pacific (Tokyo), our service team requests the following information:
1. What kind of workload/application do you plan to run on these instances? (Ex: website, database, etc.)
2. Which bundle types will you use? ($3.5, $5, etc.)
3. What is the approximate ingress/egress data transfer per instance per month? (Ex: 10-GB data transfer-IN/month, 100-GB data transfer-OUT/month)
4. Future demand projections in next 6/12 months.
5. Will you start with all instances, or with a lower number and then gradually increase the quotas?
6. Do you need all the instances in one account, or can you divide among multiple accounts?
7. Will you be needing static IPs for these instances?
8. Are you going to manage these instances through Web Console or the CLI?
9. Have you evaluated EC2 for this usage? If yes, what was the reason to choose Lightsail?
You are welcome to send your response directly to this case via the link below:
https://console.aws.amazon.com/support/home?#/case/?caseId=170875031001772
Looking forward to your response.
We value your feedback. Please share your experience by rating this and other correspondences in the AWS Support Center. You can rate a correspondence by selecting the stars in the top right corner of the correspondence.
Best regards,
Saadiqah D.
Amazon Web Services
AWSLightsailのクォータをリクエストしたら、上記の回答がきた
- Which bundle types will you use? って何のこと
- 1つは160ドルのプランで、もう1つのインスタンスは80ドルのプランにしたいんだけど。
- 最初のインスタンス:バンドルタイプ:$10プラン価格:$160ドル/月このバンドルタイプの意味が分かっていない。。今10ドルのプランを160ドルのプランにするっていう意味?
- 10ドルのバンドルって何?
- What kind of workload/application do you plan to run on these instances? (Ex: website, database, etc.)
この質問に対して、websiteを作るというより、価格調整ツールとクローラー
- RDSの現在のインスタンスの使用容量
- RDSのメモリ使用量を確認したい
- RDSのバーストバランスってなに
- バーストキャパシティとどう違うの?
- バーストバランスが100%なんだけど
- CPUCreditUsageってなに
- オンデマンド価格ってなに
- superで継承する必要はかならずしもない?
- 親クラスの変数やメソッドを使用しない場合、継承は必要ない?
- UbuntuのISOファイルをUSBメモリへ保存してノートPC
PCにデュアルブートしたい
- isoファイルをネットからダウンロードしたよ。これをダブルクリックして起動すればいいの?
- マウント・ディスクイメージをかきこみ、この2つがあるけど
- 書き込み用ドライブが、DVDRドライブしか選択できない。USBに書き込みたいのに
- READYBOOSTってなに?
- 他のブータブルUSB作成ツールを試す
- マイグレートファイルを全て削除するコマンドある?0から作り直したい
- データベース作りたい
- MySQL Workbenchのデータ読み込みが遅い
- range(1)って何回実行される?
- df.atで処理が終わってから、処理したい
- dfで重複削除
- 重複した行は1つは残るの?全部消える?
- 1回だけループ回す場合range(0)?
- 1 GiB RAMって?
- RDSって、使った時間請求されるの?
- Deployment optionで、single-azとmulti-azってなに
- Would you be creating an RDS Proxy with the database?って
- Aurora MySQLってなに
- 同じデータがある場合、最初のデータにモデルでフィルターとかできるかね
- SP-APIってなに
- SQLITEなんだけど、裏で大量にアクセスしているから、マイグレートが実行されないとかある?
- 再度マイグレーション実行する方法はある?
- マイグレーションが失敗した場合、再度実行する
- sqlite3 db.sqlite3bash: sqlite3: command not found
- ルーティングに関することでdefaultしか反映されていない
- sqliteに反映させたい
- value_searchのマイグレーションファイルをすべて削除してDBも削除して最初からしたい
- value_searchアプリケーションは、sqliteに書き込みたいんだ。
- NameError: name 'F’ is not defined
- vscode でdockerコンテナにアクセスしてフォルダを表示したい
- sqliteはどう定義したらいいかな
- allow_relationメソッドとallow_migrateメソッドはmyapp1の部分はどうしたらいい
- MySQLのデフォルトのストリクトモード
- python3 manage.py migrate value_search
DBオプション付けたいdb_value_search.sqlite3
- Djangoアプリケーションをバックグラウンドで実行したい
- トレーニングって、常時行うものなの?
- 強化学習における「環境」とは
- 強化学習のエージェントって?
- 利益を最大化させるAIが欲しい。
- 強化学習をPythonで作るには?
- pythonでのサンプルコード 強化学習
- Q値は、値段を示すの?
- Q値は将来の報酬は、利益?
- 強化学習って、新しいデータを取り入れて学習し続けていくっていうイメージなんだけど
- 具体的にどうやって動かすの?Djangoで価格調整ツールを作って、その値付けにこの強化学習をいれたいんだけど。
- original_product_codeをreplace(“'","")したいモデルで
- save()メソッドは、モデルに保存される度に自動実行される?
- bulkしたときはどうなる
- all_results = RakutenPriceResult.objects.all()をto_csvしたい
- cronサービスの再起動
- djangoで1アプリケーションで、マルチプロセスで動かしたら、1プロセス死んでも他のプロセスは動き続けるよね?実質複数のアプリケーションを作って動かしているのと同じ?
- crontabの内容を一気にスポットで実行したい
- 他のCPUも割り当てていいから高速化できないかな
- dfで処理してbulkで更新かけたらどうか?
- RakutenPriceResultのデータを全て取得したい
- resultの全情報を表示させるには、メソッドで1つ1つ指定しないといけないの?
- sqliteに接続する方法はある?vscodeのツールだと重くて表示できないんだよね
- SQLite Browserは、リモートのDjango内部のSQLiteファイルへも接続できる?
- DataFrameのapply()メソッドについて
- djangoでbulkで上書き保存はどうやるの?
- update_values.keys()とは
- bulk_updateとbulk_createは、どれくらいの処理に時間の違いがある?
- AttributeError: 'tqdm’ object has no attribute 'disable’
- すべてのフィールドの値を含む文字列表現を__str__メソッドで返す
- 利益の計算方法
- self.save()でするってことは、1行ずつ処理をするからbulkより時間かかるよね?
- RakutenPriceSearch.objects.values('original_product_code’).annotate(min_price=Min('itemPriceMin1’)
これで次の安い値を取得したい
- itemPriceMin1__gt=min_price_records.values('min_price’)).values('original_product_code’).annotate(next_min_price=Min('itemPriceMin1’))
- filter(itemPriceMin1__gt=min_price_records.values('min_price’)).values('original_product_code’).annotate(next_min_price=Min('itemPriceMin1’))
上手く行っているコードなんだけど、どういう意味?
- __gt
- filter(itemPriceMin1__gt=min_price_records.values('min_price’)).values('original_product_code’))これの意味は?
- .annotate(next_min_price=Min('itemPriceMin1’)これの意味は?
- RakutenPriceSearch.objects.filter(itemPriceMin1__gt=min_price_records.values('min_price’)).values('original_product_code’) 上記と下記では、どうちがう?RakutenPriceSearch.objects.filter(itemPriceMin1__gt=min_price_records.values('min_price’)).values('original_product_code’).annotate(next_min_price=Min('itemPriceMin1’))
- RakutenPriceSearch.objects.values('original_product_code’)
これはなに?
- min_price_recordsとnext_min_price_recordsを、original_product_codeでマージさせて、最安値、次の安値を表示したい
- min_price_recordsとnext_min_price_recordsから最安値と次の安値を計算し、MergedPriceRecordモデルに保存
- merged_dfをリネーム
- merged_dfをモデルに保存したい。 original_product_code min_price min_shopCode next_min_price next_min_shopCode
- Djangoのmodels.Modelクラスを継承したクラスを定義し、各フィールドを定義
- python3 manage.py value_adjustに関するプロセスは全て一括killしたい
- class RakutenPriceResult(models.Model): original_product_code = models.CharField(max_length=100) min_price = models.IntegerField() min_shopCode = models.CharField(max_length=100) next_min_price = models.IntegerField() next_min_shopCode = models.CharField(max_length=100) def __str__(self): return self.original_product_code # モデルの文字列表現を定義する(適切に修正してください)ここにさっきのmergeしたdfをbulkで保存したい
- ValueError: Field 'next_min_price’ expected a number but got nan.
- save_dataframe_to_model(df)
File “/home/NBSystem/value_search/management/commands/import_rakuten.py", line 82, in save_dataframe_to_model
product, created = Rakuten_Searvey_data.objects.create(
TypeError: cannot unpack non-iterable Rakuten_Searvey_data object
- dfのデータを一気にモデルに書き込みたいんだ
- for文も使いたくない
- djangoのモデルのクラス名を変更したい
- 価格調整をしたいんだけど、自社の楽天用の価格調査用のインポートデータがあるんだけど、モデル名どうしようか?
- min_price_records = RakutenPriceSearch.objects.values('original_product_code’).annotate(min_price=Min('itemPriceMin1’))
# Rakuten_Import_data.
for i in min_price_records:
print(i)
printでoriginal_product_codeだけを取得したい
- min_price_records = RakutenPriceSearch.objects.values('original_product_code’).annotate(min_price=Min('itemPriceMin1’))
これで、最安の価格と品番を取得すると思うけど、追加でshopCodeも取得したい
- original_product_codeごとで最安値を取得したいんだ。表示する際に、shopcodeも表示したいの。絞り込みにはshopcodeは使わない
- annotate()って?
- min_price_records = RakutenPriceSearch.objects.values('original_product_code’).annotate(min_price=Min('itemPriceMin1’), shopCode=Min('shopCode’))これは、original_product_code毎の最安値と、そのショップコードを取得するよね?最安値の次に安い価格とショップコードも取得できるかな?
- Agg()関数
- filter=~Q(itemPriceMin1=F('min_price’)
- File “<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
File “<frozen importlib._bootstrap>", line 688, in _load_unlocked
File “<frozen importlib._bootstrap_external>", line 883, in exec_module
File “<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File “/home/NBSystem/value_search/management/commands/value_adjust.py", line 21, in <module>
from django.db.models import Min, Agg, F, Q
ImportError: cannot import name 'Agg’ from 'django.db.models’ (/usr/local/lib/python3.10/dist-packages/django/db/models/__init__.py)
root@531a0c7c5e99:/home/NBSystem#
- どうしたらいいの
- メッセージが送信されました。
メッセージが送信されました。
Traceback (most recent call last):
File “/home/NBSystem/manage.py", line 22, in <module>
main()
File “/home/NBSystem/manage.py", line 18, in main
execute_from_command_line(sys.argv)
File “/usr/local/lib/python3.10/dist-packages/django/core/management/__init__.py", line 442, in execute_from_command_line
utility.execute()
File “/usr/local/lib/python3.10/dist-packages/django/core/management/__init__.py", line 436, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File “/usr/local/lib/python3.10/dist-packages/django/core/management/base.py", line 413, in run_from_argv
self.execute(*args, **cmd_options)
File “/usr/local/lib/python3.10/dist-packages/django/core/management/base.py", line 459, in execute
output = self.handle(*args, **options)
File “/home/NBSystem/value_search/management/commands/value_adjust.py", line 63, in handle
raise e
File “/home/NBSystem/value_search/management/commands/value_adjust.py", line 54, in handle
main()
File “/home/NBSystem/value_search/management/commands/value_adjust.py", line 28, in main
second_min_price_records = RakutenPriceSearch.objects.filter(~Q(itemPriceMin1=F('min_price’)) ).values('original_product_code’).annotate(second_min_price=Min('itemPriceMin1’), second_shopCode=Min('shopCode’) )
File “/usr/local/lib/python3.10/dist-packages/django/db/models/manager.py", line 87, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File “/usr/local/lib/python3.10/dist-packages/django/db/models/query.py", line 1476, in filter
return self._filter_or_exclude(False, args, kwargs)
File “/usr/local/lib/python3.10/dist-packages/django/db/models/query.py", line 1494, in _filter_or_exclude
clone._filter_or_exclude_inplace(negate, args, kwargs)
File “/usr/local/lib/python3.10/dist-packages/django/db/models/query.py", line 1501, in _filter_or_exclude_inplace
self._query.add_q(Q(*args, **kwargs))
File “/usr/local/lib/python3.10/dist-packages/django/db/models/sql/query.py", line 1613, in add_q
clause, _ = self._add_q(q_object, self.used_aliases)
File “/usr/local/lib/python3.10/dist-packages/django/db/models/sql/query.py", line 1645, in _add_q
child_clause, needed_inner = self.build_filter(
File “/usr/local/lib/python3.10/dist-packages/django/db/models/sql/query.py", line 1472, in build_filter
return self._add_q(
File “/usr/local/lib/python3.10/dist-packages/django/db/models/sql/query.py", line 1645, in _add_q
child_clause, needed_inner = self.build_filter(
File “/usr/local/lib/python3.10/dist-packages/django/db/models/sql/query.py", line 1504, in build_filter
value = self.resolve_lookup_value(value, can_reuse, allow_joins, summarize)
File “/usr/local/lib/python3.10/dist-packages/django/db/models/sql/query.py", line 1274, in resolve_lookup_value
value = value.resolve_expression(
File “/usr/local/lib/python3.10/dist-packages/django/db/models/expressions.py", line 854, in resolve_expression
return query.resolve_ref(self.name, allow_joins, reuse, summarize)
File “/usr/local/lib/python3.10/dist-packages/django/db/models/sql/query.py", line 2014, in resolve_ref
join_info = self.setup_joins(
File “/usr/local/lib/python3.10/dist-packages/django/db/models/sql/query.py", line 1867, in setup_joins
path, final_field, targets, rest = self.names_to_path(
File “/usr/local/lib/python3.10/dist-packages/django/db/models/sql/query.py", line 1772, in names_to_path
raise FieldError(
django.core.exceptions.FieldError: Cannot resolve keyword 'min_price’ into field. Choices are: affiliateRate, affiliateUrl, asurakuArea, asurakuClosingTime, asurakuFlag, availability, catchcopy, created_at, creditCardFlag, endTime, genreId, giftFlag, imageFlag, itemCaption, itemCode, itemName, itemPrice, itemPriceBaseField, itemPriceMax1, itemPriceMax2, itemPriceMax3, itemPriceMin1, itemPriceMin2, itemPriceMin3, itemUrl, mediumImage1, mediumImage2, mediumImage3, original_product_code, pointRate, pointRateEndTime, pointRateStartTime, postageFlag, reviewAverage, reviewCount, shipOverseasArea, shipOverseasFlag, shopAffiliateUrl, shopCode, shopName, shopOfTheYearFlag, shopUrl, smallImage1, smallImage2, smallImage3, startTime, tagIds, taxFlag, updated_at
root@531a0c7c5e99:/home/NBSystem#
- = self.resolve_lookup_value(value, can_reuse, allow_joins, summarize)
File “/usr/local/lib/python3.10/dist-packages/django/db/models/sql/query.py", line 1274, in resolve_lookup_value
value = value.resolve_expression(
File “/usr/local/lib/python3.10/dist-packages/django/db/models/expressions.py", line 854, in resolve_expression
return query.resolve_ref(self.name, allow_joins, reuse, summarize)
File “/usr/local/lib/python3.10/dist-packages/django/db/models/sql/query.py", line 2014, in resolve_ref
join_info = self.setup_joins(
File “/usr/local/lib/python3.10/dist-packages/django/db/models/sql/query.py", line 1867, in setup_joins
path, final_field, targets, rest = self.names_to_path(
File “/usr/local/lib/python3.10/dist-packages/django/db/models/sql/query.py", line 1772, in names_to_path
raise FieldError(
django.core.exceptions.FieldError: Cannot resolve keyword 'min_price’ into field. Choices are: affiliateRate, affiliateUrl, asurakuArea, asurakuClosingTime, asurakuFlag, availability, catchcopy, created_at, creditCardFlag, endTime, genreId, giftFlag, imageFlag, itemCaption, itemCode, itemName, itemPrice, itemPriceBaseField, itemPriceMax1, itemPriceMax2, itemPriceMax3, itemPriceMin1, itemPriceMin2, itemPriceMin3, itemUrl, mediumImage1, mediumImage2, mediumImage3, original_product_code, pointRate, pointRateEndTime, pointRateStartTime, postageFlag, reviewAverage, reviewCount, shipOverseasArea, shipOverseasFlag, shopAffiliateUrl, shopCode, shopName, shopOfTheYearFlag, shopUrl, smallImage1, smallImage2, smallImage3, startTime, tagIds, taxFlag, updated_at
root@531a0c7c5e99:/home/NBSystem# python3 manage.py value_adjust
メッセージが送信されました。
メッセージが送信されました。
Traceback (most recent call last):
File “/home/NBSystem/manage.py", line 22, in <module>
main()
File “/home/NBSystem/manage.py", line 18, in main
execute_from_command_line(sys.argv)
File “/usr/local/lib/python3.10/dist-packages/django/core/management/__init__.py", line 442, in execute_from_command_line
utility.execute()
File “/usr/local/lib/python3.10/dist-packages/django/core/management/__init__.py", line 436, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File “/usr/local/lib/python3.10/dist-packages/django/core/management/base.py", line 413, in run_from_argv
self.execute(*args, **cmd_options)
File “/usr/local/lib/python3.10/dist-packages/django/core/management/base.py", line 459, in execute
output = self.handle(*args, **options)
File “/home/NBSystem/value_search/management/commands/value_adjust.py", line 67, in handle
raise e
File “/home/NBSystem/value_search/management/commands/value_adjust.py", line 58, in handle
main()
File “/home/NBSystem/value_search/management/commands/value_adjust.py", line 28, in main
second_min_price_records = RakutenPriceSearch.objects.exclude(
File “/usr/local/lib/python3.10/dist-packages/django/db/models/manager.py", line 87, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File “/usr/local/lib/python3.10/dist-packages/django/db/models/query.py", line 1484, in exclude
return self._filter_or_exclude(True, args, kwargs)
File “/usr/local/lib/python3.10/dist-packages/django/db/models/query.py", line 1494, in _filter_or_exclude
clone._filter_or_exclude_inplace(negate, args, kwargs)
File “/usr/local/lib/python3.10/dist-packages/django/db/models/query.py", line 1499, in _filter_or_exclude_inplace
self._query.add_q(~Q(*args, **kwargs))
File “/usr/local/lib/python3.10/dist-packages/django/db/models/sql/query.py", line 1613, in add_q
clause, _ = self._add_q(q_object, self.used_aliases)
File “/usr/local/lib/python3.10/dist-packages/django/db/models/sql/query.py", line 1645, in _add_q
child_clause, needed_inner = self.build_filter(
File “/usr/local/lib/python3.10/dist-packages/django/db/models/sql/query.py", line 1504, in build_filter
value = self.resolve_lookup_value(value, can_reuse, allow_joins, summarize)
File “/usr/local/lib/python3.10/dist-packages/django/db/models/sql/query.py", line 1274, in resolve_lookup_value
value = value.resolve_expression(
File “/usr/local/lib/python3.10/dist-packages/django/db/models/expressions.py", line 854, in resolve_expression
return query.resolve_ref(self.name, allow_joins, reuse, summarize)
File “/usr/local/lib/python3.10/dist-packages/django/db/models/sql/query.py", line 2014, in resolve_ref
join_info = self.setup_joins(
File “/usr/local/lib/python3.10/dist-packages/django/db/models/sql/query.py", line 1867, in setup_joins
path, final_field, targets, rest = self.names_to_path(
File “/usr/local/lib/python3.10/dist-packages/django/db/models/sql/query.py", line 1772, in names_to_path
raise FieldError(
django.core.exceptions.FieldError: Cannot resolve keyword 'min_price’ into field. Choices are: affiliateRate, affiliateUrl, asurakuArea, asurakuClosingTime, asurakuFlag, availability, catchcopy, created_at, creditCardFlag, endTime, genreId, giftFlag, imageFlag, itemCaption, itemCode, itemName, itemPrice, itemPriceBaseField, itemPriceMax1, itemPriceMax2, itemPriceMax3, itemPriceMin1, itemPriceMin2, itemPriceMin3, itemUrl, mediumImage1, mediumImage2, mediumImage3, original_product_code, pointRate, pointRateEndTime, pointRateStartTime, postageFlag, reviewAverage, reviewCount, shipOverseasArea, shipOverseasFlag, shopAffiliateUrl, shopCode, shopName, shopOfTheYearFlag, shopUrl, smallImage1, smallImage2, smallImage3, startTime, tagIds, taxFlag, updated_at
root@531a0c7c5e99:/home/NBSystem#
- utility.execute()
File “/usr/local/lib/python3.10/dist-packages/django/core/management/__init__.py", line 436, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File “/usr/local/lib/python3.10/dist-packages/django/core/management/base.py", line 413, in run_from_argv
self.execute(*args, **cmd_options)
File “/usr/local/lib/python3.10/dist-packages/django/core/management/base.py", line 459, in execute
output = self.handle(*args, **options)
File “/home/NBSystem/value_search/management/commands/value_adjust.py", line 78, in handle
raise e
File “/home/NBSystem/value_search/management/commands/value_adjust.py", line 69, in handle
main()
File “/home/NBSystem/value_search/management/commands/value_adjust.py", line 40, in main
).first()
File “/usr/local/lib/python3.10/dist-packages/django/db/models/query.py", line 1095, in first
self._check_ordering_first_last_queryset_aggregation(method="first")
File “/usr/local/lib/python3.10/dist-packages/django/db/models/query.py", line 2020, in _check_ordering_first_last_queryset_aggregation
raise TypeError(
TypeError: Cannot use QuerySet.first() on an unordered queryset performing aggregation. Add an ordering with order_by().
root@531a0c7c5e99:/home/NBSystem#
- output = self.handle(*args, **options)
File “/home/NBSystem/value_search/management/commands/value_adjust.py", line 78, in handle
raise e
File “/home/NBSystem/value_search/management/commands/value_adjust.py", line 69, in handle
main()
File “/home/NBSystem/value_search/management/commands/value_adjust.py", line 40, in main
).first()
File “/usr/local/lib/python3.10/dist-packages/django/db/models/query.py", line 1095, in first
self._check_ordering_first_last_queryset_aggregation(method="first")
File “/usr/local/lib/python3.10/dist-packages/django/db/models/query.py", line 2020, in _check_ordering_first_last_queryset_aggregation
raise TypeError(
TypeError: Cannot use QuerySet.first() on an unordered queryset performing aggregation. Add an ordering with order_by().
- annotateの複数条件の
- djangoのannotateでMinの次の値を取得
- 全カラム表示するにはどうしたらいい?
- .objects.get_or_create()
- DataFrameのintは、-(マイナス)はいれれる?
- sqliteに書き込むのを高速化したい
- Lightsailのインスタンスを停止した状態なら、費用はかからない?
- デコレーターでチャットワークに送信するものを作りたい
- デコレーターの基礎
- クラスがこの要素が画面中央に表示されるまでスクロールしたい
- /html/body/div[2]/div[3]/div[2]/form/div[4]/div[6]/nav/ul/li[15]/aこのXPATHでseleniumでクリックしたい
- bashでファイルサイズを表示する
- 2491629568は何GB?
- 商品の値付けで、最安値を設定したいんだけど、何円安くしたらいいかな
- 20万件の商品を取り扱っていて、価格弾性力のテストってどうやるの
- SyntaxError: invalid syntax
- 学習率(learning rate)は、機械学習や強化学習の文脈で使用される重要な概念
- 学習率が0.1ならどうなる
- 学習率は、0.1位がいいのかな?0.5とかだとどうなる
- クロスバリデーション?
- 割引率の概念を理解するために、具体的な例
- 価格調整を例にして、割引率の概念を理解
- 将来の売上が0.9倍と仮定するってこと?
- 競合他社が価格を下げる場合、将来的な売上が増加する可能性がある理由
- 価格下落の反動需要: 競合他社が価格を下げることで、顧客は商品を購入するのを待っていた場合、価格が下がったときに購買を促されることがあります。このような状況では、価格下落後の需要が急増する「反動需要」と呼ばれる現象が起こることがあります。
これは、競合の売上は上がるけど、自社の売上は上がらなくないか?
- discount_factor=0.9は、将来的に売り上げが下がる事を見越して低い見積もりをしているということ?
- exploration_rate(探索率)ってなに?
- 報酬は利益?
- value_search_of_rakuten.sh: Permission denied
- [Errno 2] No such file or directory
- RakutenPriceResultモデルにデータを保存しようとする際に、一意制約違反
- dfの列の不要な文字をreplaceしたい
- 複数指定したい場合は?
- RakutenPriceSearchのモデルをCSVで出力
- importlib._bootstrap>", line 1006, in _find_and_load_unlocked
File “<frozen importlib._bootstrap>", line 688, in _load_unlocked
File “<frozen importlib._bootstrap_external>", line 883, in exec_module
File “<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File “/home/NBSystem/value_search/management/commands/import_rakuten.py", line 12, in <module>
from value_search.models import Rakuten_Searvey_data
ImportError: cannot import name 'Rakuten_Searvey_data’ from 'value_search.models’ (/home/NBSystem/value_search/models.py)
- Lightsailのコンテナに同時に接続ってできないの?
- djangoでobject.all()でテーブルを全て取得する際は、排他制御される?
- np.clipってなに
- self.q_table = np.zeros((num_actions,))
これはなに?
- best_next_action = np.argmax(self.q_table[next_state])これはなに?
- Q値ってなに
- 受注データも含めて再度サンプルコードをお願い
- 受注数のサンプルが無い場合はどうなる?
- 多品種少量で売るビジネスモデルなんだ。
- 価格調整する際、ポイントも考慮して調整を行いたい。
楽天市場は、デフォルト1倍で、最大20倍を商品別に付与が可能だ。
これを上手くつかい、競合の価格調整をだまして、販売価格+ポイントで最安値を取得したい。
- df[“original_product_code"]をreplaceしたい
- crontabで停まったら再開して、常に動いている状態にしたい
- 在庫をすることで成約率はあがる?
- 単純な在庫予測モデルのサンプルコード
- 売れた要因を分析するモデルを作れる?
- 売れた要因を知りたいんだ
- 要因を把握するためには、データ分析と統計手法を使用して把握する
- 商品毎に、受注量を予測することは出来る?
- Q-learningアルゴリズムって
- 状態(State)と行動(Action)ってなに
- フォーマット
- ストレージ
- 属性
- ストレージ
- バイト配列
- アプリケーション
- APKファイル
- mcpackファイル
- ルートディレクトリ
- バイナリファイル
- json
- zipファイル
- アーカイブ
- フォルダ
- ディレクトリ
- メタ情報
- 解凍
- 圧縮
- 暗号化
- 復号
- iso2022_jp
- ユニバーサル改行
- バイナリー
- ファイルポインタ
- 引数オフセット
- オフセット
- バイナリーファイル
- ステートメント
- gzip
- euc_jp
- cp932
- shift_jis
- 意味解析
- 文脈解析
- LLM
- 大規模言語モデル
- ビルトイン関数
- utf-8
- シーケンス
- イテラブルオブジェクト
- 高階関数
- クロージャー
- 写像関数
- 自然言語
- 構文解析
- 銀行丸め
- 偶数丸め
- 奇数丸め
- 有効数字
- インクリメント
- オプション引数
- ステートメント
- スタブファイル
- Pythonの三重引用符とは
- エスケープシーケンス
- raw文字列
- インラインフラグ
- 貪欲マッチ
- 非貪欲マッチ
- 明示的
- デバッガ
- 分割統治法
- インタープリター
- パッケージマネージャー
- 標準関数
- 辞書内包表記
- リスト内包表記
- デコード
- ヘルパー関数
- バイト型
- 文字列型
- 整数型
- 浮動小数点型
- デバッガー
- プロダクションコード
- 動的型付け言語
- 静的型チェック
- コンテナ
- ユーザー定義クラス
- インデックス
- プログラム
- Webフレームワーク
- hashable
- 多重継承
- 静的メソッド
- @propaty
- 代理オブジェクト
- MRO
- C3アルゴリズム
- データベースモデル
- クラスメソッド
- インスタンスメソッド
- 仮想環境
- シンボリックリンク
- POSIXシステム
- プロジェクトとアプリケーションの違い
- PowerShell
- コマンドプロンプト
- パラダイム
- マルチパラダイムプログラミング言語
- docstring
- コマンドライン
- IDE
- ブロックコメント
- インラインコメント
- PEP257
- サードパーティ
- 静的コード
- 循環的複雑度
- PyCQA
- 例外処理
- コンテキストマネージャ
- Python
- テストスイート
- コンポーネント
- ユニットテスト
- テストランナー
- フレームワーク
- アサーション
- インターフェイス
- テストフィクスチャ
- テストケース
- デーモン
- 丸め誤差
- パッチ
- oS
- プラグイン
- アドオン
- オブジェクト指向
- コンソール
- Basic認証
- HTTP
- オーバーヘッド
- スコープ
- カバレッジ
- プロシージャ
- 早期リターン
- ターミナル
- ドットファイル
- インデント
- トレードオフ
- マングリング
- コメントアウト
- クローラー
- エンコード
- ソースコード
- コンパイル
- ビルド
- デバッグ
- Jenkins(Jenkins)
- パイプライン
- データのコンバート
- ジョブ
- docker
- コンパイラ
- デプロイ
- ホットデプロイ
- リリース
- スクリプト
- 継続的インテグレーション
- 継続的デリバリー
- DevOps
- 工数
- API
- ymlファイル
- 動的メソッド
- 内包表記
- コンテキストマネージャー
- scheme
- ネスト
- モジュール
- ライブラリ
- Pythonの型一覧
- アノテーション
- 型アノテーション
- 関数アノテーション
- ライブラリとパッケージの違い
- メタデータ
- ベストプラクティス
- CI
- CD
- セキュリティホール
- シンタックスシュガー
- 糖衣構文
- キャッシュ
- キャッシュデコレータ
- DRY原則
- クロージャ
- 可変長引数
- Pythonで文字列の宣言をする方法
- ' + 'World!’
- プログラミング>Python>基礎>文字列
- Pythonでシングルクォーテーション・ダブルクォーテーションを文字列として取り扱う(エスケープ)する方法
- 動的
- 関数
- クラス階層
- オーバーロード
- インスタンス変数
- クラスオブジェクト
- インスタンスオブジェクト
- 特殊メソッド
- グローバル変数
- ローカル変数
- 神クラス
- 委譲
- 静的
- 再帰呼出し
- グローバルスコープ
- ミュータブル
- 親クラス
- 子クラス
- 多重継承
- 名前空間
- オブジェクトの属性
- インスタンス変数の隠蔽
- 初期化メソッド
- デストラクタ
- スパゲッティコード
- スパゲッティプログラム
- 基底クラス
- 派生クラス
- 共通メソッド
- staticメソッド
- シグニチャ
- インターフェース
- メンバ変数
- メンバ関数(
- クラスメンバ
- データメンバ
- クラスインスタンス
- エイリアス
- サブクラス
- ゲッター
- セッター
- 継承
- ポリモーフィズム
- リスコフの置換原則
- 演算子オーバーロード
- 抽象化
- スーパークラス
- クラス
- インスタンス変数
- コンストラクタ
- イニシャライザ
- インスタンス化
- クラス変数
- メンバ
- メンバ変数
- オーバーライド
- カプセル化
- 指数
- 正規表現
- 対数
- 普遍分散
- 不偏
- 最尤推定量
- トップレベルパッケージ
- サブパッケージ
- クリーンアップ動作
- オブジェクト
- クラス
- インスタンス
- コンストラクタ
- パフォーマンス
- メソッド
- 継承
- オーバーライド
- イテレータ
- yield
- ジェネレータ関数
- ジェネレータ式
- 標準ライブラリ
- PEP8
- コーディング
- Git
- キュー
- タプル
- 集合
- 辞書型
- リスト
- key(キー)とvalue(バリュー)
- モジュール
- ライブラリ
- インタプリタ言語
- if __name__ == “__main__"
- 接尾辞
- 関数注釈(関数アノテーション)
- PEP
- エンコーディング
- 四則演算
- 文字列のエスケープ
- その他>用語説明>Python
- 変更不能体
- インデクシング
- イミュータブル
- 変更可能体
- ミュータブル
- __name__
- __main__
- パッケージ
- プライマリプロンプト
- セカンダリプロンプト
- 対話モード
- 実例、売上ダウンの原因全て記載する
- 実例、売上アップの要因全て記載する
- エスケープ処理とは
- phpの基礎
- 間隔尺度
- 三角グラフ
- 偏差
- 偏差の和
- 絶対値
- 分散が小さいという事は、何を指すのか
- 相対的
- 比尺度
- 平均偏差の使い道
- 平均偏差、分散、標準偏差の使い道
- 尺度水準
- 階乗
- 0の階乗は?
- 根元事象
- 複合事象
- ベン図
- 余事象
- 空事象
- 排反事象
- 和事象
- 積事象
- 加法定理
- 期待値
- 乗法定理
- 質問紙法
- ドットプロット
- 自己相関
- 独立性の検定
- クロス集計
- クロス集計表の表側と表頭
- 単回答
- 複数回答
- 名義尺度
- 順序尺度
- 比例尺度
- 連関係数
- パーセンタイル
- 順位相関係数
- 離散変数
- 連続変数
- 説明変数
- 目的変数
- 予測変数
- 独立変数
- 応答変数
- 反応変数
- 結果変数
- 従属変数
- 基準変数
- 被説明変数
- パレート図
- スタージェスの公式
- ローレンツ曲線
- ジニ係数
- 完全平等線
- 刈込み平均 (トリム平均)
- 幾何平均
- 調和平均
- 平方根
- 立方根
- 歪度(わいど)
- 正規分布
- 5数要約
- 幹葉表示
- 集計
- 欠損値
- 外れ値
- 外れ値の対処法
- 欠損値の対処法
- データ集計の注意点
- 統計的メトリクスとは
- 平均、中央値、分位数、合計、割合の違い
- サンプリングとは
- 質的変数
- 量的変数
- 集計表
- 度数
- 棒グラフ
- 円グラフ
- 帯グラフ
- 度数分布表
- 階級
- 階級値
- 相対度数
- 絶対度数
- 累積相対度数
- ヒストグラム
- ヒストグラムと棒グラフの違い
- クロス集計表
- 相互関係と相関関係の違い
- モザイク図
- 積み上げ棒グラフ
- 時系列データ
- 折れ線グラフ
- 変化率
- 平均
- 中央値
- 四分位数
- 箱ひげ図
- 分散
- 標準偏差
- 変動係数
- レーダーチャート
- 標準化
- 偏差値
- 相関係数
- バブルチャート
- 2次関数の相関関係は表現できるのか
- 「事象が独立である」とは
- 条件付き確率
- 確率
- 研究
- 観察研究
- 実験研究
- 全数調査
- 標本調査
- 単純無作為抽出法
- 最頻値(モード)
- 最頻値
- タスクスケジューラで毎日実行する方法
- タスクスケジューラで最短の間隔は?
- タスクスケジューラの便利な使い方
- タスクスケジューラを使用して、毎朝9時になったらPCを起動する
- PCのメモリを最大限節約する方法
- さくらサーバーの請求書確認画面
- Excelでセルを選択(アクティブにする方法) F2キー
- Excelでセル内で改行する方法
- Excelでリストの中から 値を1つ選択する方法 CHOOSE関数
- Excelで漢字の「ふりがな」を返す方法 PHONETIC 関数
- Excelでセル情報を返す方法 CELL関数
- Excelでセルの参照を返す関数 INDIRECT関数
- Excelで「年」を返す方法 YEAR関数
- Excelで曜日を返す方法 WEEKDAY関数
- Excelで時間の「秒」を返す方法 SECOND関数
- Excelで時間の「分」を返す方法 MINUTE関数
- Excelで年月日を返す方法 TODAY関数
- Excelで検索条件を満たすものだけの合計を返す方法 SUMIF関数
- Excelで文字列を置き換える(置換)する方法 SUBSTITUTE関数
- Excelで特定の文字列が何番目に出現するかを返す方法 SEARCH関数
- Excelで指定位置で文字列を置き換える方法 REPLACE関数
- Excelで今が何日の何時かを返す方法 NOW関数
- Excelで値から時間を返す方法 HOUR関数
- Excelで絶対値を取得する方法 ABS関数
- Excelで不要なスペースを削除する方法 TRIM関数
- Excelで入力規則を設定したい
- Excelで列から文字列の頻出Top10を抽出したい
- Excelで漢字入力した氏名を50音順に並べ替えしたい
- Excelで行全体を選択したい
- Excelで列を円(通貨)表記にしたい
- Excelが重いので、計算を手動モードにしたい
- Excelのワークシートのコピー方法
- ExcelでCSV形式より、ブック形式のほうが容量が少ない理由
- Excelで指数表記を直す方法
- Excelでグループ別に集計をする方法
- Excelを全画面表示する方法
- Excelで表を印刷する方法
- Excelでデータを抽出する方法
- Excelで行番号なぞって連番入力の方法
- Excelのブック、ワークシート、セル、カラムの違い
- Excelで一括置換する方法
- Excelで絶対参照から相対参照への一括変更する方法
- Excelでセルに文字が入っている中で一番右下に移動したい
- Excelでセルに文字が無ければ空白を代入したい IF文
- Excelの文字列を結合する方法 CONCAT関数
- Excelの処理速度を上げるのに最も効果的な方法
- Excelの処理速度を上げるのにSSDは有効か?
- Excel64bitと32bitの処理速度 スピードの違い
- Excelで文字数制限によるコピー貼り付けについて
- ExcelでCOUNTIFS関数の範囲指定方法
- ExcelでIF文の使い方
- 20万行のオートフィルを一瞬で行う
- Excelの拡張子の種類一覧と役割について
- Excelで文字コードを指定してCSV保存する方法
- Excelの最大表示行・最大表示列の数
- Excelのグラフを素早く作る方法
- Excelで何が出来るのか
- Excelでランダムな乱数を発生させる方法 RAND関数
- Excelで列の中から最大値を出す方法
- Excelで今日の日付を関数で出す方法
- Excelで平均値を出す方法
- Excelの#SPILL! の意味と修正方法
- Excelの#REF! の意味と修正方法
- Excelで列番号を取得する方法
- Excelで行番号を取得する方法
- Excelの#NUM! の意味と修正方法
- Excelの#NULL! の意味と修正方法
- ExcelでCOUNTIFSを使ってカウントする方法
- Excelの#NAME? の意味と修正方法
- Excelの#N/A の意味と修正方法
- ExceldでSUMIFで合計値を出す方法
- Excelの#DIV/0! の意味と修正方法
- Excelの絶対参照・相対参照・混合参照の違い
- ExcelでINDEX、MATCHで付け合わせをする方法
- Excelでセルの値が文字列か判定する方法 ISTEXT関数
- ExcelでVLOOKUPで付け合わせをする方法
- Excelでセルの値や数式が数値か判定する方法 ISNUMBER関数
- Excelで合計値を出す方法を3つご紹介
- Excelで行ごとに色分けする
- Excelでセルの値や数式が文字列以外か判定する方法 ISNONTEXT関数
- Excelで重複削除する
- Excelで文字列を小文字に変換する方法 LOWER関数
- Excelで文字列の文字数を取得する方法 LEN関数
- タスクスケジューラで毎週木曜日だけ実行する
- Excelで文字列の先頭から抽出する方法 LEFT関数
- Excelで文字列を比較して真偽(TRUE,FALSE)で返す方法 EXACT関数
- Excelで文字列の位置を検索する方法 FIND関数
- Excelで文字コードを文字に変換する方法 CHAR関数
- Excelで昇順で指定した順位の値を取得する方法 SMALL関数
- Excelで降順で指定した順位の値を取得する方法 LARGE関数
- Excelで割り算した結果の余りを求める方法 MOD関数
- Excelで指定範囲を掛け算する PRODUCT関数
- Windowsのタスクスケジューラの履歴を有効にする方法
- Excelで小数点以下を切り捨てる方法
- IFERROR関数のサンプルコード
- タスクスケジューラで12時間毎に毎日実行する
- Excelで月末の日付を出す方法
- Excelで順位を取得をする方法 RANK関数
- Excelで最小値を出す方法
- Excelで最大値を出す方法
- Excelで小数点以下の値を切り下げる方法
- Excelで小数点以下の値を切り上げる方法
- Excelで値を四捨五入する方法
- Excelで列の中から最小値を出す方法
- Excelでドロップダウンリストから入力する方法
- Excelの入力規則の使い方
- Excelの条件付き書式の使い方
- Excelの#VALUE! の意味と修正方法
- Excelで自動保存する方法
- Excelで重複削除する方法 UNIQUE関数
- Excelでフィルターに応じて合計値・平均値を表示する方法 SUBTOTAL関数
- Excelで書式を変更する方法 TEXT関数
- Excelで数値から日付を出す方法
- Excelでチェックマークを入れる方法 レ点
- エクセルの基礎的な関数25選
- エクセル(Excel)とは
- VisualStudioCode(VSコード)の文字化け対応
- ecbeingがチャットGPTのチャットボットを作ったらしい
- タイパを意識する時がきたっぽい
- ピッタリ箱なら地味に重要になる、内寸と外寸。
- 伊藤園の公式ECサイト「TEA SHOP ITOEN」で「会員ステージ制」を導入したっぽい
- htaccessファイルの使い方まとめ
- with構文のasで定義した変数について
- 洞察力とは、商品企画開発の「新たなニーズ」を知れる
- 品質とは
- 商品ページ用の物撮り撮影方法
- OEM製造とは。メーカー側とブランド企業側のメリット・デメリット・考察
- CVRのビッグ・ミドル・スモールキーワードにおける特徴
- ヤフーショッピングのSEOアルゴリズム
- R-Loginの権限設定の権限分類名の具体的な利用可能な機能について
- 商品ローンチから一気に売上を上げ、継続して売るインフルエンサーで起爆剤→モールランキングする具体的手法
- Yahoo!ショッピング 土曜日+キャンペーン vs 日曜日の売上検証から、モールキャンペーンが多い理由の1つに店舗側が需要予測しやすい為と考察する
- メーカーの販促情報(広告)に合わせて、NB商品をスポットで一気に売るスキーム
- Yahoo!のストアクリエイター(SC)へCSVでアップロードする注意点
- 楽天のRMSにCSVファイルをアップロードする際の注意点まとめ
- 2輪用品は、ロングテール戦略
- ASPから貰った提案内容
- 失敗したら再発防止策までが、失敗の対応
- Rキャビネットのフォルダ内のファイル数2000枚の上限についての対処法
- 粗利を求めるなら、商品ページに複数SKUをいれてまとめたほうが良い
- タスク管理に便利!ブラウザのタブのURLパラメータのタスク名を記載。「?タスク名」
- 売上アップを狙うのなら、在庫品リスト(絶対売るリスト)を作る
- Yahooショッピング運営から警告来た時は、要対応
- アクセスの25%はマイナーチェンジ前の商品ページから流入していた
- 在庫商品の公開・在庫数・価格確認
- RPP広告を完全攻略する
- ECのBPO
- ECのBCMなんて、地震と浸水対策だけしとけばいい。
- 付加価値とは
- 楽天株式会社の収益MODEL
- 広告を打つ基準
- ビジネスモデルとは
- 中小企業の売上高平均は、1.7~1.8億円
- Excel TEXT関数で、カンマ区切りで+-(プラス・マイナス)を表示させる
- SHOPIFYでつまずいた箇所を、この1記事にまとめる
- 商品の差別化要素一覧
- Twitter 禁止事項をまとめる
- Excel セル内を関数で改行する
- SHOPIFY スラッグについて
- SHOPIFY SKUデータ更新時のカラム
- SHOPIFY 購入させない商品の選定条件
- 楽天 カタログIDの設定について
- SHOPIFY MATRIXIFYでCSVファイルを使い一括削除する
- ショピファイで商品の上書き方法
- Shopify CSVを使ったコレクションの削除方法
- 楽天市場における、商品タイトルのつけ方
- SHOPIFY 画像枚数・SKU数の最大値でHandle(ハンドル)を作るフローチャート
- ショピファイのCSVアップロード上限
- 管理画面GUIで、商品複製すると、ハンドル名はどうなる
- CSVでダウンロードしてきた商品に、画像を参照て指定したら、アップロード前後でどう変化する?
- SKU毎に、商品画像の切り替えができるのか?
- ヤフーショッピング(ストアクリエイタープロ)のプロダクトカテゴリ・スペックをダウンロードする方法
- 楽天市場店舗数 2021年と昨対比
- モールで使える公式
- 粗利330円確保して楽天市場で売る計算式
- 通販する蔵 FTPのタイムスタンプのつけ方
- ECCUBE4 商品CSV登録で規格別をする
- インターネットメディアの動向について
- カテゴリーページのSEO対策
- インターネットの市場価値
- インターネットをビジネスに活かす
- ECセキュリティの対策基準と実施手順
- ME:マークアップエンジニア
- 5大装置とCPU
- エクセルのレコードからフォルダをwindowsで一括作成
- 成果ドキュメント
- テンプレートエンジンとは
- URLとURIの違い
- ECCUBE 金をかけず、規格を一括登録する方法
- ECCUBE 一括カテゴリー登録する
- ECCUBEにブロックをページに埋め込む
- paizaクラウドで、PythonのDjangoでWEBサイトを作る
- 連動エラーによる未登録商品の対処方
- Django
- pipとは
- venv
- 仕入高を減らして、粗利を確保する方法
- 価格調整で勝算のない商品の条件分岐の考え方
- レッドマインのスタイルシートから、バックグラウンドカラーを変更する
- 価格調整の考え方と具体的な施策
- 年末年始休業のお知らせを設定する 楽天RMSと楽天GOLDでの設定
- 年末年始休業のお知らせ WOWMA(ワウマ)での設定、休業設定
- 年末年始休業のお知らせを設定する ストアクリエイタープロ(ヤフーショッピング・PAYPAYMALL(ペイペイモール))での設定
- 在庫クローズ設定
- 在庫品の価格戦略と計算式
- 仮引数と実引数の違い
- サーチコンソールでサブディレクトリのサイトは登録すべきか否か
- arrayの使い方
- PHPのアロー演算子とは
- データモデルとは
- 使っている便利なソフト色々、公式ダウンロードサイトURL記載
- XAMPPのApacheとphpMyAdminの起動の仕方と簡単な説明
- CSVでカテゴリの子階層を指定して登録すると、商品ページのカテゴリの表記は、どうなる
- 入力装置と出力装置
- 補助記憶装置
- メモリ
- 情報の表現
- WEBディレクション関連の豆知識全集[途中]
- クリエイティブ:広告やデザインにおける、作品そのものや作品に使われている素材、もしくはその従事者
- VRIO分析:企業が持つ経営資源の独自の強みや弱みを分析するフレームワーク
- JIS Q 9100/15001、ISO22000、ISO/IEC27001、ISO9001
- PI法:投資案件の投資可否を判断する手法の一つ
- 下請代金支払遅延等防止法:親事業者の下請事業者に対する優越的地位の濫用行為を規制する日本の法律
- ISO14001:企業などの活動が環境に及ぼす影響を最小限にとどめることを目的に定められた規格
- アセッサー:「評価を下す者」を意味する言葉。
- アクティビティ図:連続する「実行」の遷移、つまり一連の「手続き」を表現するための図
- Webオーサリングツール:Webページ作成ソフトで、HTMLやCSSなどのファイルを編集することが可能
- オーサリング:PC上で複数の素材を1つにまとめること
- SSI(Server Side Includes):HTMLの中にWebサーバ側で実行するコマンドを埋め込んでおき、その実行結果をクライアントサーバに返す仕組みである。
- グリッドデザイン:画面やページを縦横に分断する直線で格子状に分割し、これを組み合わせて内部の要素の大きさや配置を決定していく方式。
- 矩形:すべての角が直角の、四辺形。長方形。
- ユニークビジター(UV):一意なサイト利用者が何人いたかを集計する指標。ユニークユーザーのこと。
- ユニバーサルデザイン(UD):文化・言語・国籍や年齢・性別、能力などに関わらず、出来るだけ多くの人が利用できることを目指した情報設計
- CMYK規定:シアン、マゼンタ、イエローと、キー・プレート(Key plate)から、頭文字1字を取ったもの
- キャンペーンサイト:製品やサービスの周知や話題性を目的として制作するサイト
- サイトマップ:コンテンツリストをカテゴリー分けし、実際のWEBサイトの構成に近づけたもの
- コンテンツリスト:コンテンツの一覧のこと。
- コンテンツの企画
- WEBディレクターにお勧めの資格
- アブダクション:ある結論がどうして出たのかわからないときにそれが正しいのかを論じるための方法
- インタラクションデザイン:ユーザー側の操作やシステム側の反応などをデザインすること
- デスマーチ:納期間近なのに完成の見通しが立っていなプロジェクトで、現場が疲弊・混乱する現象
- WEB(ウェブ):情報と情報がクモの巣のように網目状に張り巡らされたシステム
- 不変的:いつまでもその状態を維持している様子
- 探求心:物事について、深い知識を得たり、原因を解明したりしようという気持ちのこと
- 向上心:自分で目標を設定し、目標達成に向かって邁進し尽力する心のこと
- MA:マーケティングの各プロセスにおけるアクションを、的確に自動化・仕組化すること
- BIツール:企業に蓄積された大量のデータを集めて分析し、迅速な意思決定を助けるのためのツール
- DMP:サーバーに蓄積されるデータを分析し、広告配信等のプランの最適化実現を目指すプラットフォーム
- DSP:広告主に用意されたプラットフォーム。広告主の広告効果の最大化を支援するツールを指す
- 「Think Different」:Apple社が掲げるプロモーションのキャッチコピー。「発想を変える」
- LTV:一人の顧客が生涯に渡って提供してくれる価値。
- 費用対効果:支払った費用にたいして、どれくらいの効果があったかを数値で表したもの。
- リマーケティングリスト:WEBサイトの訪問歴があるユーザーの一覧リスト
- インプレッション数:広告の表示回数のこと
- KSF:重要成功要因
- KPIの設定
- KPIツリー:WEBサイトの改善プロセスで、KGIやKPIをツリー状に描いたもの。
- KGI:最終目標の達成度合いを測る指標
- KPI:最終目標までのプロセスの達成度合いを測る指標
- ブラッシュアップ:磨き上げる事
- フォーカスグループインタビュー:少人数の対象者に対し、司会者が座談会形式で進めるインタビュー手法
- セントラルロケーションテスト:会場調査。
- スクリーニング:特定の条件に基づいてデータを選別・抽出する作業
- ユーザー調査
- コンバージョン(CV):成約する行動のこと
- ユーザーテスト:ユーザーに一連のタスクをしてもらい、考えている事から問題点を挙げていく
- ヒューリスティック評価:検証すべき評価リストでWEBサイト全体をチェックしていく手法
- ウォークスルー評価:ペルソナの設定をしたうえで、調査者がWEBサイトを実際に回遊して問題点を洗い出す手法
- 評価手法による現状分析
- ベンチマーキング:成功しているサイトを分析して、成功要因を学び取ること。
- ラベリング:メニューやボタンなどの表記を考える事。
- ナビゲーション:WEBサイト内の回遊を行うためのサイト内で共通に配置されたリンク群のこと
- 打ち出し:WEBページで最も訴えたいものを広いエリアを使ってアピールすること
- 比較による現状分析
- プロジェクトで最も避けたいことは、手戻り
- アクセス解析ツール:アクセスログの情報を集積し、解析するためのツール。
- アクセスログ:WEBサーバーにリクエストを出したクライアントマシンの情報
- 連結テスト:複数の機能を連結させて、不具合を確認するテスト
- インデックス:検索エンジンのクローラーがWEBサイト内を巡回し、データ収集しデータベースに格納すること。
- 公開と運用
- 定量分析:客観的な数値などの量的に表現可能なデータに基づいて分析する手法。
- 定性分析:意見や要望などの量的に表現できないデータに基づいて分析する手法。
- リスクアセスメント:危険度を質的・量的に評価する手法。リスクの評価
- リスクマネジメント
- 緊急性の認識違いを注意する
- Skype:オンライン通話サービス、チャットやファイル共有も可能
- ボトルネック:プロジェクト進行の流れの悪い部分。妨げになっている部分。
- エビデンス:証拠の意味。
- コミュニケーションマネジメント
- OJT:職場で実務をさせることで行う従業員の職業教育のこと
- ロングテールキーワード:一般的に3~4語以上の検索キーワード
- LP(ランディングページ):最初にみたWEBページ。
- 直帰率:LPだけ見て帰った人の割合
- セッション:ユーザーがサイト上でアクティブな状態であった時間のこと。
- クロスプロモーション:顧客に他社の商品やサービスを提供する
- クロスメディア:インターネットと、マスメディア上の広告展開やOOH広告を組み合わせた手法
- OOH広告:街頭ビジョンや看板やラッピングカーなど、主に屋外に設置される広告を指す。
- CVR:成約率のこと。
- 積算:プロジェクトの完了に必要なすべての費用を割り出す作業、またはその合算した金額。
- 品質管理とPDCAサイクル
- スキルトランスファー:技術移転の意。業務の共有や引継ぎのこと。
- 元ファイル・元データ:加工してないファイル
- 学習コスト:新しいスキルを習得するためのコストのこと。
- Git:ソースコードの変更履歴を記録し、追跡可能にする為のバージョン管理システム。
- 素材・ドキュメント管理
- ステージング環境:WEBサイトをテスト公開するサーバーやネットワークのこと
- 外注管理
- イコールパートナーシップ: 対等な関係で行う協力や提携。
- リスケジューリング(リスケ):スケジュール変更
- ガントチャート:作業タスクを縦に積み重ね、各タスクの所要日数を横方向のセルで示す工程管理表
- スケジュール管理
- アサイン:割り当てる、任命する。
- ライセンス:著作者が購入者に許諾する利用権利のこと。
- ライツマネージド:著作物を特定の期間や回数を定めて貸し出す方式のこと
- プラグイン:特定のプログラムに追加することで付加価値をつけることができるソフトウエア
- データセンター:各種のコンピュータやデータ通信などの装置を設置・運用することに特化した建物の総称のこと。
- リソース管理
- スタッフの役割と管理
- オーサリング:PC上で複数の素材を1作品にまとめる作業
- プログラマー:プラグラムの制作担当者。
- カラースキーム:ナビゲーション、背景、文字等にどのような色の組み合わせを用いるか計画すること
- マークアップエンジニア(ME):フロントエンド技術全般の設計・開発・実装を行う。コーダー
- アカウント業務:契約締結の手続きや公式なアポイントメントの調整を行う業務
- 科学的算定方式:豊富な資料を元に、科学的に妥当と思われる条件を前提として見積もる方式
- 前例比較算定方式:WEBサイトの規模、機能等より過去の類似したプロジェクトを参考に見積もる
- 見積算定方式:RFPやプロジェクト計画書からPMが経験より見積もる方式
- 予算の設定と見積もり
- 人月:一人が一か月で行える作業量。
- 人日:一人が一日で行える作業量の単位。1日8時間とする。
- 準委任契約:完成責任をお遭わない契約形態。
- 請負契約:制作物を完成させて、初めて対価を得る契約
- 双務契約:契約当事者の双方が債務を負う契約
- 片務契約:契約当事者の一方が対価的な債務を負う契約。NDAが該当。
- 秘密情報:書類、口頭問わず、技術上や営業上の秘密情報
- 瑕疵担保責任:成果物が契約に定められた内容に対して、欠陥がある場合は補修する責任を負う
- 完成責任:制作物を完成させて、初めて対価を得ることが出来ること
- 甲乙:甲はクライアント。乙は制作会社。
- 契約書
- 経営資源:事業活動に必要な資源。人、モノ、金、情報
- マイルストーン:重要な節目のこと
- 署名・承認印:妥当な人物が承認していることを周知する
- プロジェクト計画:リソース・スケジュール・品質をコントロール可能な具体的個別計画に落とし込んだもの
- OBS:WBSで洗い出されたタスクを、スタッフに割り振ったもの
- WBS:プロジェクトで必要な全作業を洗い出し、階層構造で表現したもの
- スコープ:プロジェクト企画の定義を、作業範囲に詳細にブレイクダウンしたもの
- プロジェクト企画:情報化を構築する具体的な方法を検討する段階。
- 情報化企画:情報化の定義を検討する段階。
- 所産:作り出されたもの、生み出されたもの
- プロジェクト:サービスを創造するために実施される有期性の業務
- プロジェクト計画
- スコープ計画:成果物と作業範囲の概要を計画すること
- クリエイティブブリーフ:企業の環境や課題をストーリー仕立てで文書化したもの
- 4P:売り手側の観点で整理した製品・サービス戦略上の考え方
- 企業ドメイン:企業の活動領域
- SWOT分析:企業の戦略立案をする際に用いる代表的な分析手法
- 分析と解析:分析は要素の性質を明らかに、解析は要素を理論的に考えること
- ユーザービリティ:製品、サービスを使う際の使いやすさ。
- ユーザーエクスペリエンス(UX):人工物の利用を通じてユーザーが得る経験
- ユーザーインターフェース(UI):機械、特にコンピュータとその機械の利用者の間での情報をやりとりするためのインタフェース
- 要件定義
- 制約条件:その物事の為に必要な条件
- アカウンタビリティ:説明責任のこと
- 発注者の業務改革
- サービスレベル:ユーザーに提供するサービスの内容・範囲・品質のこと
- 作業範囲記述書(SOW):トラブルを避ける為、作業範囲を明らかにした書類。
- 見積依頼書(RFQ):作業スコープや予算が明確な場合に見積依頼をする紙
- 提案依頼書(RFP):発注者が発注先候補から提案を受ける為に作成する書類
- 提案依頼書(RFP)
- Googleサービスの閲覧権限:アナリティクスとサーチコンソールで閲覧権限を付与してもらう
- ヒアリングシート:ヒアリング項目の一覧表。スプレッドシートで共同編集できるようにすると良い。
- 決裁権者:重要事項や予算などを承認する権限を持つ人
- ヒアリング:相手から情報や意見を聞くこと
- ヒアリング
- 齟齬:意見が食い違って合わない事
- 指名競争入札:国などが、公共事業を発注する際に登録された複数の事業者を指名して、コンペして決める
- コンペ:複数の制作会社から提案をもらって発注先を決定する受注方式
- 相見積もり:複数の制作会社から見積を出してもらうこと。小規模予算、主に価格で決まる。
- プロジェクトの受注
- 本番サーバーとテストサーバー:開発をテストサーバーで行い、公開時に本番サーバーにデータを移行する
- 企画フェーズが最も重要で責任重大
- デバッグ:コンピュータのプログラムの誤りを見つけ、手直しをすること。
- WEBサイト制作の流れ
- 企画:目的を実現する為に計画を立てること
- 設計:具体化すること
- 制作:芸術作品を作り上げること
- 運用:その物の持つ機能を生かして使うこと
- 要件:必要な条件
- ディレクション:指揮、制作指導、進行管理
- WEBディレクターに向いている人
- コーディング:プログラムのソースコードを記述する作業のこと。主にフロントエンド側。
- 純広告:特定のサイトの場所に一定期間広告を出稿するタイプの広告
- コンセプト:企画における独自の切り口。
- 動的ページ:プログラムによってHTMLが書き出されるページのこと。
- 静的ページ:プログラミング言語を通さないページの事。HTMLページの事
- 効果検証:得られた結果を、実施した施策と照らし合わせて検証すること
- 戦略:目的を達成するための方針・判断
- 秘密保持契約書(NDA):技術上や営業上の情報で秘密である旨を表明した一切の情報
- 提案依頼書:「これらの項目に対して提案して欲しい」をまとめた書類。RFPともいう
- ローンチ:サイトを公開する
- 成果物:対価を得られる状態になった製品をいう。完成したWEBサイト
- プロジェクトマネジメント
- サイトガバナンス:統治の意。
- コンテンツオーナー:コンテンツの内容に責任を持つ担当者・担当部門のこと
- WEBサイトの運営が置かれる部署:広報部・システム部・専門の部署が多い
- WEBマスター:WEBサイトの最終責任者。雑誌でいう編集長の位置
- ガイドライン:大まかな指針。ルール。
- WEBサイトの運営体制
- エンドユーザー:製品やサービスを最終的に使う人
- キャンペーン:広告・販売促進
- WEBサイトの種類
- 別ドメイン・サブドメイン・サブディレクトリでの運用とは
- ブランディング:企業や商品の信頼性・価値を高める活動
- IR:投資家向け情報。目的は投資家との関係構築
- オープンコースウェア:大学等で提供されている講義を無償公開する活動
- RDF:メタ情報を定義するための枠組み
- クリエイティブ・コモンズ
- 著作隣接権:他人の著作物を利用して、その著作物を公衆伝達する事業者に発生する権利。例:ラジオ局
- 著作財産権:著作権の利用を許諾したり、禁止したりする権利
- 著作者人格権:著作者がその著作物に対して有する人格的利益を保護する権利
- ベルヌ条約:スイスで締結された国際的な著作権保護条約
- 著作権
- 商標:独自性のあるマークやシンボルのこと
- 迷惑メール防止法は、国外サーバーからの発信も対象となる
- フィルタリング:アクセス要求に対し、リストと照らし合わせてアクセス制限を行う機能
- 認証サーバー:アクセス制限付きサイトで、ID・パスの照合等を専門に行うサーバー
- フロントエンド:ユーザーが目にする部分。HTMLやCSSで構成されている。
- バックエンド:ユーザーが目にしない部分。サーバー側の処理。
- インターネットビジネスの法律
- 情報漏洩:企業内の機密情報、個人情報が外部に漏れること。
- プライバシーポリシー:サイト運営者が、個人情報の取得方法や利用目的を定めたもの
- ISO 27001:情報資産を漏洩などのリスクから保護する設備や対策を整え、安全に事業を行う仕組み
- 情報資産:情報そのもの
- 情報セキュリティポリシー
- ヒューマンエラー:人為的ミス
- 炎上:批判的な意見が拡散すること
- 個人情報:個人を特定できる情報全般
- 不正アクセス:パスワード等を不正入手して管理画面を利用する
- エスカレーションルール:緊急時の対応策
- コンプライアンス:法律や規則を守る事。
- インターネットビジネスのリスク
- ウィジェット(Widget):ウェブサイト上で動作する小規模アプリケーション
- フィードリーダー:最新の更新情報を効率よく一覧表示したサービス。例:feedly
- マッシュアップ:複数の異なる技術・コンテンツを組み合わせて新しいサービスを作る事。
- メタデータ:付帯データ
- WEBサービス
- シンジケーション技術:関心のある情報について、関連のある他サイトへ誘導し顧客満足度を上げる方法
- オムニチャネル:顧客との全ての接点。
- モバイルファースト:モバイル環境を最重要と考え、WEBサービスを作り上げる
- QRコード:バーコード規格の1つ。スキャンする事でリンク先にアクセス可能
- モバイルインターネット
- 価格比較サイト:価格.com、トリバゴ等
- マーチャンダイジング(MD):商品計画や品揃えの事
- フルフィルメント:物流・受注・決済・デリバリー・アフターフォローの領域を指す
- モール:ECに必要な機能が入り、多くのテナントが集まっているWEBサイト
- コモデティ商品:代替可能性を持つ商品・サービス
- ECビジネス
- コストセンター:利益を直接創出しない組織や部署。例:人事部
- コーズマーケティング:サービスの利用が社会貢献に結び付くことをアピールすること
- ISO:国際標準化機構
- コーポレートアイデンティティー:企業特有の特徴。例:ロゴ
- ブランディングとCSR
- イントラネット:限定された範囲で利用されるネットワーク
- CMS:コンテンツを管理するシステム
- プレスリリース:報道機関向けに公式発表する声明・資料
- ステークホルダー:企業の利害関係者
- コーポレートコミュニケーション
- ホスピタリティ:求められている事以上の価値提供
- ネットワーク外部性:加入者が増えるほど1ユーザーの利便性が上がる現象
- フリーミアムモデル:基本サービスを無償で、高機能を有償で提供するモデル
- ROI:投資対効果
- CRM:顧客管理するシステム
- インターネットを活用したビジネスモデル
- 事業ドメイン:経営活動を行う際の領域の事
- 広告代理業務:広告主と広告媒体を取り次ぐ業務
- コンテンツ:全ての情報
- リアル事業:実店舗での事業。人と人が対面する空間の事業。
- 同期・非同期:リアルタイムで送受信するか否か
- EC:電子商取引
- BtoB:事業者間取引 BtoC:事業者対消費者間取引
- チャネル:販路・流通経路
- 楽天 銀行振込 キャンセルする場合
- yahoo,google 広告公式ラーニングサイト
- HDD,USBメモリ パスワードにて保護する方法 セキュリティインシデント対策
- 楽天 返金について 銀行振込の場合
- ネットショップ実務士 レベル1 要点まとめ
- ネットショップ実務士 実際に使えるノウハウまとめ
- NB商品の売り方
- 楽天 クレジットカード・デビットカードの支払いタイミングについて 楽天からの回答
- 帰納法(帰納的推論)と演繹法
- 作業効率化、chrome拡張機能のスーパードラッグ。
- メルカリ小遣い稼ぎ
- エクセルのアクティブセルの行全体・列全体を選択
- wowmaキャンペーン(イベントカレンダー)について
- ブランディング22の法則 要点まとめ
- 定形郵便・レターパックの配達時間について 定形郵便の厚さ
- 楽天 1回に商品登録できる最大件数 RMSコールセンターからの回答
- 楽天 () 【】の修正 SEO対策 ECCより
- 楽天 発送したのに、発送待ちと表示される。対策方法
- ランチェスター戦略
- ヤフオクストアのカラムとパラメーター(記載方法)について
- ECCUBE3 カテゴリーの一部を非表示にする方法
- BASE一括商品登録の方法
- セルの先頭1文字を削除する「メーカー品番入力目的」
- エクセルでセルの中から数字のみを抽出する(JANコード抽出の為)
- WOWMA商品CSV一括登録方法
- QOO10商品一括登録
- ECCUBE3 カテゴリーが削除できない場合の対処方法
- サーバー上のフォルダサイズを表示・確認する方法
- IZM アイキャッチが切れるのを修正する。
- ECCUBE3 高速化 リンク集
- サーバー上のファイル・データベースをサーバー上に自動バックアップする最も簡単な方法
- 大きいサイズのデータベースをインポートする方法
- CPIへサイトを移行したら、「閲覧できません (Forbidden access)」
- ECCUBE3 商品マスター 最大表示件数を100から1000件に変更する
- ECCUBE3 商品一括削除方法
- Notepad++が使い易い
- Filezilla 「550 No such file or directory」エラーの対策
- SSHで圧縮・解凍できなくなった原因
- ECCUBE3をロリポップからCPIに引っ越し 「データベースエラー」の対策
- CPI 403Forbidden対応
- ECCUBE3 商品CSV登録について
- ECCUBE3にslickカルーセル(スライダー)のスクリプトを外部ファイルから読み込む
- SEOで上位に確実に表示される実証済みノウハウ集
- カテゴリー: エクセル
- カテゴリー: 通販マーケティング
- カテゴリー: タスクスケジューラ
- カテゴリー: ECCUBE
- カテゴリー: Shopify
- カテゴリー: 用語説明
- カテゴリー: 未分類
- LightGBMを使用して多クラス分類を行うサンプルコード
- ValueError: Found input variables with inconsistent numbers of samples: [95889, 50000]
- LinearSVCってなに
- OvR(One-vs-Rest)戦略 とOvO(One-vs-One)戦略
- output_dim=16は、どれくらいの次元がいいの?
- 内積は、行数と列数があっていれば計算できるの?
- ベクトル同士の内積
- データの前処理の手順
- 内積は必ずスカラーで返されるの?
- MemoryError: Unable to allocate 159. GiB for an array with shape (285196, 598335) and data type uint8
- 行列とベクトルの違い
- データを複数の部分に分割して処理する方法は、大規模なデータセットを効果的に処理するための一般的な手法
- ベクトルと行列の例を挙げて
- 機械学習のサンプリングとは
- ランダムサンプリングは、データセットからランダムに一定割合のデータを選択する方法
- 1次元配列 a と b の内積を計算
- input_dimは指定しないといけないの?
- 内積の計算式
- 具体的な内積の計算式
- データベースをゼロから作り直したい
- np.newaxis は、NumPyライブラリで使用される特殊なインデックスオブジェクト
- numpyについていろいろ教えて
- NLPって中間層とかないの?
- NumPyで掛け算や足し算を行う
- 次元の異なる足し算、掛け算
- グリッドサーチのパラメータ
- np.dot
- Embedding(input_dim=max_features, output_dim=16)これはなに?
- 切片ってなに
- 深層学習で、グリッドサーチとかあるの?
- 算術平均と相乗平均の違い
- 成長率を相乗平均で求めるサンプルコード頂戴
- k-最近傍法
- np.meshgrid は、NumPyライブラリの関数
- Bpythonってなに
- 自然言語処理(NLP)でテキスト分類を行うサンプルコード
- 深層学習
- 多層のニューラルネットワーク
- Pythonの標準の対話型シェル(インタープリタ)では、補完機能はある?
- allow_migrateをmodel_name指定できない?
- Bythonってある?
- バイク用品のカテゴリーの振り分けを機械学習でやりたい
- ヒストリファイルは、どこに保存される?
- AIの世界ってどんな世界?
- [Ctrl]+[t]キーでなにかできる?python
- 指数関数は、機械学習のどのような場面でつかわれる?
- ユークリッド距離とマンハッタン距離
- 内積と外積の違い
- 素数と複素数ってなに
- √って二分の一?
- シグモイド関数は、正規化につかわれるの?標準化?
- pipで複数のパッケージを同時に削除する
- 変数とモジュールの補完機能は、インタープリタの起動時に自動で有効になっているの?
- forest_packerをルーティングに追加して
- ほかにシグモイド関数は、使う場所とかある?
- redmineを、サーバーに設置できる
- シリアライズとデシリアライズってなに
- processingはなにができる?
- threadingモジュール
- all_labelを指定していない場合はどうなる?
- do_global()関数が呼び出され、その中でglobalキーワードを使ってグローバルスコープのloc変数が"5″に変更されます。
この場合のグローバルスコープってどこ?
- np.repeat(X_stats, X_train.shape[0], axis=0)これはなに?
- textwrapモジュールって
- paginate_byってなに
- ロバストとは
- カテゴリ変数同士やカテゴリ変数と数値変数の組み合わせから新たな特徴量を生成することができます。たとえば、メーカー名とカテゴリの組み合わせや、原価と仕入先の組み合わせなどが考えられます。これについて詳しく
- pythonの集合{}って、ユニークな値のみを抽出して格納してくれるの?
- まとめて、ベースモデルに適しているモデルは
- アンサンブル学習にはいくつかの主要な種類
- arrayモジュールとは
- バッチ処理ってなに?
- ロジスティクス回帰をベースモデルにして、特徴量の確率を取得するってことだよね、他の決定木やKNNの優位性はわかるけど、ロジスティクス回帰をベースモデルにする優位性がわからない
- ルールベースの機械学習ってなに?ほかに何ベースがあるの?
- ?ってなに?
- ベースモデルってなに
- DBSCANとは
- 統計的特徴量を生成し、モデルに組み込む方法
- ロジスティック回帰をベースモデルにする理由は?
- サンプルの正規表現いくつか書いてみて
- 深層学習でクラスタリングできる?
- ジェネレータ関数って?
- Pandasのデータの簡単な可視化機能
- 正規表現パターンを覚えるための方法
- Djangoの .as_view()メソッド
- globalキーワードってどこに影響するの?すべて?
- 具体的な数値データを用いて統計的特徴量を算出する方法
- Pandasでデータの可視化ってできる?
- ナイーブベイスとTF-IDFはべつもの?
- タプルをジェネレーターに変換できる?
- いくつかの統計的指標を生成する方法を具体的に解説
- 基本、スタッキングで説明変数として渡すモデルは、確率を渡しているの?
- djangoのviewとurlsとどう理解すればいいの
- ナイーブベイスを使ってるんだけど、これのアルゴリズムは含まれている?
- ジェネレーター関数で作ったものは、何型になる?
- エクセルってプログラム言語に該当する?
- ブースティング系を説明変数として使用するのはどうだろうか
- STRICT_TRANS_TABLESってなに?
- 商品名・カテゴリ・メーカー名・原価・仕入先、これらの情報があるんだけど、新たに特徴量を生成して精度を上げる方法は難しいかな?
- ナイーブベイスの結果を特徴量としてランダムフォレストに渡すことはできる?
- redirectとrenderの違いって何
- シーケンスとは
- 底が10の対数: 2.0
これはどういう意味?
- タプルはジェネレータ?
- ナイーブベイズの予測確率を特徴量としてランダムフォレストに渡す方法の一例
- ランダムフォレストを説明変数にする場合、渡すデータは目的変数の確率を渡すの?
- list1とlist2の数が異なる場合は?
- 底が10と2で計算方法はどうちがう?
- 標準モジュールjsonは、Pythonのデータ階層構造を取って文字列表現にコンバートすることができる。このプロセスを「シリアライズ」という。シリアライズで文字列表現されたオブジェクトは、「デシリアライズ」という。
- 関数のドキュメンテーション文字列
- カテゴリ変数の外れ値とかあるの?
- Bootstrapのスタイルが適用されない
- カテゴリを数値化したときに、外れ値の概念が生まれないものか?
- zip関数でfor文できる?
- LightGBMのハイパーパラメータチューニング
- logの計算方法おしえて
- rjust()メソッド
- 文字列オブジェクトのzfillメソッドは、プラスとマイナスの記号も含めて指定文字数となるように、数字の文字列の左側をゼロでパディングするものである。
- LightGBMモデルの交差検証を行う
- 底が10の対数のサンプルおしえて
- filterはif文のTRUEのみを処理するみたいなイメージ?
- Bootstrapにおける基本的なテーブルのクラス
- MultinomialNB の alpha パラメータは、0.001単位で調整できる?
- logについておしえて
- __sub__.py__dir__.py__init__.py__package__.py__directory__.pyとは
- classifier__alphaって0.01単位で調整できる?
- django-bootstrap4を使いたい
- filterとmap関数の違いは?
- Djangoのモデルに保存したい
- なんで積分すると1になるの?
- 勾配ブースティングで分類しても、良い精度がでないんだ。55%とかの正確度なんだけど、これを説明変数に入れることは逆にデメリットにならないか?
- 交差検証を行い、各評価指標(AUC、accuracy、precision、recall)を計算する
- 1
2
2π
1
: これは、
x に関する値の範囲を正規化するための定数です。確率密度関数全体が積分して1になるようにするための調整項です。
- モジュールの中では、グローバル変数「__modname__」の値としてモジュール名(文字列)がセットされている。
- filter関数とは
- 商品名・カテゴリ・メーカー・仕入先・原価の説明変数から、梱包サイズの目的変数を多クラス分類しているんだけど、ナイーブベイスで梱包サイズの各クラスの確率を出してから、それをランダムフォレストへ渡しているんだ。
いわゆるアンサンブル学習だよね。ほかに何かアンサンブル学習させてさらに精度向上を狙いたいんだが
- モジュール読み込みの高速化のため、Pythonはコンパイル済みのモジュールを「__python_cache__」ディレクトリにmodule.バージョン名.pyの名前でキャッシュする。
- for文でelseって使えるの?
- モデルのpklって何の略?
- たとえば、サイズが80の梱包がサイズが60の梱包よりも大きいかどうか、またサイズが100の梱包がサイズが80の梱包よりも大きいかどうかなど、重要な情報を提供することができます。
これは、普通わかるものじゃないの?
- 比較演算子って、タプル内の要素数はことなってもいいの?
- bootstrapが反映されない
- タプルの特性について教えて
- “pickle" は「ぴっくる」?「ぴっける」?
- 信頼係数
- サイズが80から100への増加を捉える特徴量:
「80から100への増加率」: サイズ100の梱包の体積をサイズ80の梱包の体積で割り、その結果に100を乗じて表した特徴量。
「100サイズと80サイズの体積の差」: サイズ100の梱包の体積からサイズ80の梱包の体積を引いた値を表した特徴量。
これら2つの方法、どっちが優位性があると思う?
- (2,3,('aa’,’ab’)) < (2,3,('abc’,’a’),5)
これはなぜTRUEになる
- スタッキングする場合、ナイーブベイスと、KNN以外に、元の説明変数もLightGBMへ渡したほうがいい?
- 右から走査して最初の()の中を取得したい
- サイズが100の梱包とサイズが80の梱包との比率特徴量を導入するのは、特性を捉えるための有効な手段か?
- 情報の重複が生じ、スタッキングの効果が低下するかどうか
- “aa"<“a"
これがFALSEになるのは
- 今回、100サイズの分類の精度が悪いから、100サイズ/60サイズで新たな特徴量を入れようとしている。
仮に、80サイズ/60サイズの特徴量は不要かな?
- PHP’ > 'Perl’ > 'Python’
これなんでTRUEじゃないの?
- 逐次学習させる場合と、新規で全データを学習させる場合とでは、結果は変わらないよね?
- Excelのワークシート関数を使って「赤ポット」のみを抽出する方法
- グリッドサーチ組み込んで
- KNNとナイーブベイスを説明変数としてランダムフォレストのメタモデルをつくって、そのランダムフォレストとKNNとナイーブベイスをつかってLightGBMでメタモデルを作ったらどうかと思ったのだが
- 比率特徴量が重要な理由は?その特徴量は、すでにある特徴量から、アルゴリズムは解析しないの?
- 空の集合を生成するには
- √2Πってなに
- 例えば、スタッキングのスタッキングをしたらどうなる
- ディクショナリと集合のちがい
- ランダムフォレストを説明変数に追加する理由は?
- 集合は変更可能なの?
- ユークリッド空間
- 他のサイズ(60や80)と比較して、サイズが100の梱包がどれだけ大きいかを示す相対的な特徴量を導入します。これにより、サイズが100の梱包が他のサイズと比べて異なる特性を持つかどうかをモデルが学習できるようになります。
具体的にどうしたらいい?
- PythonでARIMAモデルを使用してバイク用品の売り上げを予測するための基本的なスクリプト
- 対話型編集、ヒストリ置換、コード補完といったインタープリタの行編集機能ってなに
- まったく同じデータで再トレーニングしたらどうなる
- 商品別の梱包サイズのデータがある。
また、各都道府県別の発送データもある。
発送データから、適切な送料を設定したいんだが、どうしたらいいかな?
- ディクショナリのキーは、変更不可能、一意の必要ありってこと?でも要素は自由にかえれる?
- random_forest_model.pklを読み込んで、逐次学習したい
- 梱包サイズは、配送料の計算に使っているんだ。
- mathのceilとfloorの違い
- 話を元に戻すと、梱包サイズの多クラス分類をしたい。60、80、100サイズ(体積)があった際に、100サイズだけの精度が悪い。これを特徴量エンジニアリングでどうにか対応したいんだ。
- randrange randint sample choiceの違い
- 例外処理のfinallyとは
- ナイーブベイスとKNNを説明変数にして、LightGBMで分類したところ、精度93%でている。他にスタッキングでモデルをつくり説明変数を増やした方がいいだろうか?
- aucって出せる?
- ディクショナリは変更可能(mutable)であるが、キーの型は変更不能(immutable)であり、その値は一意でなければならない。
これどういう意味?
- 物流や倉庫管理の文脈で特に重要な情報であり、大きな梱包には別の取り扱い方法が必要になることがあります。どういう意味?
- 梱包サイズの多クラス分類を、スタッキングをつかってメタモデルを作る場合、どのようなモデルを使ったらいいと思う?
- OneToOneFieldをsqliteの制約でいうと何になる
- 既存のモデルに対して、追加トレーニングとかできるの?
- ディープラーニングを使うときって、どんなとき?
- Scalerってスカラーともよむ?
- 通販でAI使ってなにかできないかな
- cms:book_modってなに
- OneToOneFieldってなに
- バイク用品の売り上げ予測をしたい
- K最近傍法(KNN)とナイーブベイズを説明変数として使用する
- 更新じゃなくて作成でいいやcreate
- 生成AIってPythonで作れるの?
- ハンドリングからきているのかな?
- urlで渡されているかみるの?
- KNNってなんだっけ
- Twitter APIを使用してトレンド情報を取得するためのサンプルスクリプト
- モデルは、毎回トレーニングさせて新しいモデルを作ったほうがいいのかな?
いま、過去3か月分4000件くらいのデータをトレーニングデータとして、使っているんだけど、トレーニングデータが少ないと感じているんだ。だから、新しい梱包データが入ったら、それをトレーニングデータとして、再度モデルを学習させようかなと思っているんだ
- <form action="{% url 'cms:book_mod’ book_id=book_id %}" method="post">
これはどういういみ
- try:
print('try’)
except:
print('except’)
else:
print('else’)
このelseってなに
- ディクショナリにループをかけるときにenumerate()関数を使うとどうなる
- TensorFlowを使用して生成AIを作成する際の具体的なサンプル
- No images found in the selected folderとでる。
windows環境で実行してる
- list(zip(*matrix))
*って何の意味あるの?
- labenencoderとonehotencoderの違い
- データの不均衡を解消するためにオーバーサンプリングを行う
- ユーザーアクション(フォロー、アンフォロー、ブロック、ミュートなど)を行うサンプルスクリプト
- スカラーってなに
- ハンドラって何
- 実数の反対は虚数?
- power = [tuple(row[i] for row in matrix) for i in range(3)]
power
解説して
- random_forest_model.pklをDjangoでmanagement commandの中で実行したい
- ナイーブベイスは、オーバーサンプリングとかしたほうがいいの?
- sklearn.impute モジュールとは
- ニューラルネットワークを使用してCatBoostの代わりにモデルをトレーニング
- Pythonでデスクトップアプリを作成する
- スタッキングに使用するメタモデル
- djangoでhtmlでif分をつかいたい
- 文字列でソートするには?
- 実数ってなに
- 0の階乗
- 例えば、100の梱包の重量を60の梱包の重量で割ることで、相対的な重量特徴量を生成することができます。
これにどういう意味があるの?
- フォルダ内に多くの画像がある。
フォルダを選択すると、その中に画像を、50枚ずつzip圧縮するpythonスクリプトを書いて
- catboostのパラメータ調整をしたいんだけど、
- スタッキングにつかう複数のモデルは、何を使えばいい
- 特徴量エンジニアリングで対応したい。新しい特徴量とは具体的に
- スタッキング以外のモデルはなんという?
- 外部データってどうやって収集するの?
- ファイル名を一括編集するフリーソフト
- One-hotエンコーディングとは
- for文の入れ子
- sort sortedの違い
- Twitterのapiでなにができる?
- スタッキングのほうが良い結果がでる?
- horizontalの対義語
- map関数の使い方
- oogle Cloud Storageを使用してフォルダを作成し、ファイルをアップロードするPythonスクリプト
- カテゴリーIDより、カテゴリ名の方がいい?strに変換してあるから変わらないかな
- 梱包サイズが60,80,100とあった場合、100の精度だけ悪いんだよね。
- strftimeとstrptimeがどっちがどっちか覚えられない。
- cronで動かす処理は、バックグラウンドで実行されるの?
- ガソリンと電気自動車でどれくらい安くなる?
- dataframeで差集合もとめられる?
- 4次元って見ることはできる?人間の目で
- コマンドプロンプトのコードちょうだい
- bashでフォルダ削除するコマンド
- popとremoveのちがい
- 4次元ってなに?
- strptime
- アンサンブル学習と似たような考え方の学習なんていうんだっけ?例えば、ナイーブベイスの結果を説明変数として、ランダムフォレストへ渡すような学習のさせ方
- クラスの重みづけについて詳しく。
オーバーサンプリングしてるんだけど、併用してもいい?
- OpenCVで文字情報を取得して、エクセルファイルへ出力するサンプルコード頂戴
- Amazonのapiを使って、アフィリエイトリンクを生成するコード教えて
- AIについて、どんなことを勉強したらいいかな
- 機械学習で目的変数の一部のクラスの精度が低い場合はどうしたらいい?
- 説明変数の数が増えると計算量が指数関数的に増加するのはなぜ?
- バイク用品のECで売上に対して相関関係があるものはなにか?
- class Itemは。Itemテーブルができるってこと?
- Twitterでフォローするapiはある?
- djangoのappを消したい
- ニューラルネットワークは教師なし学習もできる?
- Pythonのlambdaの使い方
- AWSを使ったAI開発って何?
- N次元のベクトルってなに?
- 7-zipで分割圧縮すると拡張子が001,002みたいな連番になってしまいます。
拡張子がzipのままで分割できるフリーソフトがあったら教えて下さい。
- 別々のテーブルに、同じ情報は入れない方がいい?
例えば、商品マスターに原価情報があって、
価格調整マスターにも原価情報がある。
- ヤフーショッピングapiで、価格調査をsqliteデータベース保管したい
- ローカル環境でDjangoから、ローカルのエクスプローラーのドキュメントフォルダにあるPythonファイルを実行したい
- a = {'one’, 'two’}
b = {'two’, 'three’}
print(a – b)
- 機械学習エンジニアの実務で統計より、アルゴリズムの理解の方が重要なきがするが、実際のところどうなの
- ヤフーショッピングapiを使って、価格調査するサンプルコード教えて
- Twitterを自動でフォローするPythonのスクリプトおしえて
- 紙の納品書を文字起こししてエクセルに保存していきたい。
- 積み上げ棒グラフとモザイク図は同じという認識でいい?
- Djangoで複数テーブルのカラムを付け合わせたい
- Pythonで梱包サイズを多クラス分類したい。
説明変数が5個あった場合、すべての組み合わせを試して一番精度の良かった説明変数を取得したい
- 損益分岐点と利益を計算し、それぞれをデータベースに保存する方法
- Xvfb を使用して仮想ディスプレイ環境を設定し、Seleniumスクリプトを実行するcronジョブの設定例
- Djangoで強制的にマイグレート
- Django モデルでテーブル削除したい
- Django のモデルでテーブルを作成する
- テーブルを直接 SQL を使って作成する
- Dockerのサービスとは
- コンテナを停止させずに docker-compose.yaml の変更を反映させたい
- 現在のタイムスタンプを「年月日時分秒」まで取得したい
- データ分析でECに生かす例
- dfをintへ変換したい
- 画像生成の処理をマルチスレッド化にしたい
- CronでSeleniumを使用するスクリプトを実行するとエラーが発生する
- Ubuntu環境でInternet ExplorerのWebDriverを使用することはできないのか
- データベースを全て削除して作り直したい
- 8コア8プロセッサーののスレッドは?
- Windowsコンテナを使用する方法
- アパートのIPアドレスを固定化する
- photoshopの切り抜きが重い
- Googletransを使いたい
- 仮想ディスプレイ(Xvfb)とは
- Google翻訳APIは、費用かかるの?
- Pythonで翻訳を無料でできないかな?
- モデルを指定してマイグレーションできる?
- Stable Diffusionのサイズ指定
- GPUのなかには、メモリも内蔵されているの?
- マイグレーションファイルはどこに作成される?
- データベースやテーブルの指定とかなかったっけ
- ChromeでIEモードはできないでしょ?
- 商用利用可能な画像生成AI Python
- OpenVINOを使用した具体的なコード
- jpgでも、一度jpgに再変換してアップしたい。
- Core i7 9700はいくつのプロセッサー?
- Lightsailでメモリーの使用率を監視したい
- ubuntu用のwebドライバーがないってこと?
- 1商品に複数のJANを割り当てる事はできるの?
- 1社が発行できるJANコードの上限値はある?
- Pythonで画像を縦1000px、横1000pxでトリミングする方法
- Amazon CloudWatchでメモリーを監視したい。
- 損益分岐点(Break-even Point)を計算し、その値をデータベースに保存する
- CPUの利用率が上がらず、処理が遅い場合
- transformersをアンインストールできない
- windowsサーバーで、ユーザーを追加したい。
- OpenVINOと組み合わせることで推論を高速化
- break_even_pointのデータベースのカラムに追加したい
- ナショナルブランドに、自社で独自のJANを割り当てる事は可能か?
- 商用利用可能で、IntelのGPUを使える画像生成AIを作りたい
- ubuntuのdjangoでIEドライバーをつかいたいんだよな
- Stable DiffusionをIntelGPUで動かして
- 画像生成を高速で行いたいんだけど、サーバーどうしたらいいかな
- seleniumで10ページごとにブラウザを再起動するとメモリが確保できるの?
- TORを使っている場合、接続がうまくいかない理由
- Windowsサーバーにリモートデスクトップで接続する
- OpenVINOとStable Diffusionを使ったサンプルコード
- 1TBのサーバー容量で、画像が800*800pxなら約何枚保存できる?
- 事業者コードを2つ用意すれば、20万点の商品を生成できるということ?
- Stable Diffusionは、IntelのGPUは使えないの?
- dataframeのJAN列で、重複削除して、最初の行だけ残したい
- GPU Intel(R) UHD Graphics 630だった
- CPUの利用が制限されているように見える、全てのCPUコアを1処理に集中させて早く終わらせたいんだ。
- Stable Diffusionは著作権を自分で保持できないよね。自分で保持できる生成AIないかな
- BASE_DIR = Path(__file__).resolve().parent.parent
- 生成AIでイラストの描画を行う際、CPUの場合とGPUの場合の描画速度はどの程度早くなる?
- 'NoneType’ object has no attribute 'group’
- マイグレートが上手く行かない場合、なにかオプションで指定したら上手く行ったんだよ前回
- 500万枚を1画像生成に60秒かかったら、どれくらいの期間で500万枚生成できるか
- Xvfb(X Virtual Framebuffer)を使用することで、cronで実行するSeleniumスクリプトが正常に動作するようになった理由
- 成功する時と、成功しない時があるんだよね。一旦メモリを解放したほうがいいのかな?
- 記事数が5000以上あるんだけど、カテゴリーの振り分けが大変なんだ、どうしよう
- 他のプログラムがうごいていて、ガベージコレクションをしたら、必要なデータも消えてしまう可能性はない?
- ディープラーニングする際に、64GBでGPU無しで、いつもメモリー不足になっていたんだけど、解消されるかな
- ページを頻繁にナビゲートする場合、メモリリークを防ぐために、一定の操作ごとにブラウザを再起動することを検討
- 'nvidia-smi’ は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
- 画像のアップロードに失敗しました。ステータスコード: 405
Method Not Allowed
画像のアップロードに失敗しました。
- Amazonのワンタイムパスワードが毎回要求される。おそらくIPアドレスが動的なためだと思うのだが、何かいい方法はないだろうか
- Windowsサーバーで、外注を使ってブラウザ操作だけしてもらいたい。最低限のユーザーの権限で良いのだが、どう設定したらいいかな
- 画像サイズはどうしたらいいかな、Webサイトを運営している人向けなんだけど、800px*800pxで今生成しているんだけど
- CPUだけで生成しているんだけど、24コアのサーバーで大体9分かかる。GPU搭載だとどれ位高速化されるノ2倍位はやくなる?
- Stable Diffusionのような、画像生成AIの商用利用可能なもので、IntelのGPU使えるものはあるかな
- 例えば、インターネットエクスプローラーのドライバーはヘッドレスモードに対応していないが、xvfbを使えば動かせる?
- 起動中のdockerコンテナのdocker-compose.yamlを編集した場合にdownさせずに反映する方法
- filename = image_path.split(r’\’)[-1] # Windowsパスの場合
windowsもlinuxも同じようにファイル名だけ取得できないかな
- ValueError: height and width have to be divisible by 8 but are 1000 and 1330.
- <svg
失敗している記事は、jpgがsvgと認識されている可能性はない?
- Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz 3.41 GHz
これはいくつプロセッサーがあるの?
- エラーが発生しました: 'latin-1’ codec can’t encode characters in position 36-41: ordinal not in range(256)
画像のアップロードに失敗しました。
- UnicodeEncodeError: 'latin-1’ codec can’t encode characters in position 36-41: ordinal not in range(256)
- 00 00 01 * * cd /home/NBSystem && python3 manage.py jenkins_build
毎月1日の0時にに実行したいんだけど、これでいい?
- FileNotFoundError: Couldn’t find any class folder in C:UsersownerPicturesGAN_tranning.
- モデルの精度を評価 平均二乗誤差(Mean Squared Error, MSE)
- MSE1000はいいの?
- 限界利益とは
- 収益とは企業や組織が商品やサービスの提供によって得る売上の総額
- 送料・商品サイズ・商品名がある。
これの実績を元データとして、他の商品の推定送料・商品サイズを推定する機械学習モデルを作りたい
- ランダムフォレストでサンプルコード書いてくれる?
- Pandas ライブラリを使用してデータを DataFrame に読み込む
- original_product_code=params.get('original_product_code’,"")
ここでreplaceしたい
- 適正送料を予測するための特徴量、ほかにどういうデータがあった方がいいと思う?
- 適正送料を予測する説明変数、自社品番・商品名・都道府県・サイズ 他に何かいいのあるかな?
- モデルを使う際、同じ特徴量がテストデータでも必要だよね?
- 目的変数が「商品別の日本全国の平均適正送料」であり、購入地意識、梱包サイズ、送料、価格などの情報を使用してその適正送料を予測したい
- 配送実績があるから、地域別の割合を考慮したい
- 例えば、関東と関西で5割の発送割合なら、関東と関西のデータだけで算出できる?
- 地域ごとの発送数を考慮して、より公平な平均送料を算出する
- 送料の損益分岐点出したい
- pythonでASINからJANに変換するプログラムかいて
- Product Advertising APIで取得できる情報一覧
- サードパーティのデータベースやウェブサイトを使用してASINとJANの対応関係を検索する注意点
- 各商品ごとに、梱包サイズデータがある。
適切な送料を割り当てたいんだけど、どうしたらいいかな
- 送料の平均ってどうやって計算するの
- ページが切り替わると、前のページの要素は消えちゃうよね
- F12の画面からJavascriptでページ遷移する
- Warning: Don’t paste code into the DevTools Console that you don’t understand or haven’t reviewed yourself. This could allow attackers to steal your identity or take control of your computer. Please type ‘allow pasting’ below to allow pasting.
これってなに
- ncaught DOMException: Failed to execute 'querySelector’ on 'Document’: 'a[href^=’javascript:__doPostBack('GridView1′,’Page$’)’]’ is not a valid
- 11ページから10ページ追加して21、31・・・と追加していきたい。待機時間は1秒 javascript
- JavaScriptリンクを500ページ目にジャンプするために埋め込む場所どこに埋め込めばいいの
- ランタイム エラー
説明: サーバーでアプリケーション エラーが発生しました。このアプリケーションの現在のカスタム エラー設定では、セキュリティ上の理由により、アプリケーション エラーの詳細をリモート表示できません。ただし、ローカル サーバー コンピューターで実行されているブラウザーで表示することはできます。
詳細: このエラー メッセージの詳細をリモート コンピューターで表示できるようにするには、現在の Web アプリケーションのルート ディレクトリにある “web.config" 構成ファイル内に、<customErrors> タグを作成してください。その後で、この <customErrors> タグで “mode" 属性を “off" に設定してください。
<!– Web.Config 構成ファイル –>
<configuration>
<system.web>
<customErrors mode="Off"/>
</system.web>
</configuration>
メモ: 現在表示されているエラー ページをカスタム エラー ページ に変更するには、アプリケーションの <customErrors> 構成タグの “defaultRedirect" 属性をカスタム エラー ページ URL に置き換えます。
<!– Web.Config 構成ファイル –>
<configuration>
<system.web>
<customErrors mode="RemoteOnly" defaultRedirect="mycustompage.htm"/>
</system.web>
</configuration>
- コンソール画面で、なにか一気に500ページに遷移とかできないかね
- ブラウザの開発者ツールを使用して、ページネーションのリンクやボタンを特定し、そのJavaScriptコードを調査します。そのJavaScriptコードを解析し、500ページ目までの遷移を行うようにカスタマイズします。どうやるの
- <a href="javascript:__doPostBack('GridView1′,’Page$331’)" style="color:Black;">…</a>
- def product_info1(self,count):
return f"ページNo:{count}"
def product_info2(self):
return f"新品番:{self.sku(“td")[3].get_text(strip=True)}"
この書き方NGなの?
- for文でselfは使わない方がいいの?
- URLが変わらないJavascriptでページ遷移するサイトがあるんだけど、ページネーションを一気に500ページの位置まで飛びたいんだけど、なんかいい方法ないかな
- //<![CDATA[
var theForm = document.forms['form1’];
if (!theForm) {
theForm = document.form1;
}
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
//]]>こんなスクリプトが書いてあるけど、これ?
- 現在のURL取得 selenium
- findelementでinputを指定
- seleniumでページHTML取得
- cronの再起動
- htmlのclassが以下のものを指定したい。
beautifulsoup
product-detail -pc
- soup(class_="product-detail pc")[0]でもいい?
- return [i(“img")[0].get_attribute(“src") for i in self.soup(class_="product-thumbnails")]
これあってる?
- VSCODEでフォーマットできない
- docker上のcronが、ホストサーバーを再起動すると動かない
- docker run –restart=always my_container
上記は、ホストOS上で実行するの?
- ubuntu@ip-172-26-11-59:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
531a0c7c5e99 ubuntu22.04_python3.10:v1.0 “/bin/bash" 4 weeks ago Up 11 minutes romantic_margulis
ubuntu@ip-172-26-11-59:~$ docker run –restart=always 531a0c7c5e99
Unable to find image '531a0c7c5e99:latest’ locally
docker: Error response from daemon: pull access denied for 531a0c7c5e99, repository does not exist or may require 'docker login’: denied: requested access to the resource is denied.
See 'docker run –help’.
- コンテナ一覧を表示
- managementとcommandsディレクトリは手動で作る必要がある?
- djangoでvalue_searchというアプリケーションのなかに、management/commandsフォルダ内部に、複数の.pyファイルを置いて、各々cronで動作させたとする。
この場合、それらは独立して動くと思うのだが、可用性はどうなる?独立して動くから、1つの.pyファイルが止まっても、他は止まらないよね
- アプリケーションを分ける必要はない?
- 原価、モール手数料、送料
上記のデータから、、確保する利益が500円とするとき、販売価格を求めよ
- モール手数料は、販売価格*モール手数料なんだ。
- Yahoo!、楽天でモール手数料のモデルを作りたい
- 色々なモデルのデータを自社品番で組み合わせたいんだけど、dataframeをつかうのかな?
- csvでpandasで読み取って、Djangoモデルへ保存したい。
- Djangoでmanagement commandでファイルを作りたい。
- driver.implicitly_wait(180) # ここでイムアウトを設定
これで設定しているんだけど、だめかな?
- 具体的にどこにsleepを追加したらいい?
- Error occurred during Crawl moriwaki: Message: unknown error: session deleted because of page crash
from unknown error: cannot determine loading status
from tab crashed
(Session info: headless chrome=114.0.5735.90)
Stacktrace:
#0 0x5633e74b94e3 <unknown>
#1 0x5633e71e8b00 <unknown>
#2 0x5633e71d1f42 <unknown>
#3 0x5633e71d09bf <unknown>
#4 0x5633e71d1162 <unknown>
#5 0x5633e71df0d5 <unknown>
#6 0x5633e71e0222 <unknown>
#7 0x5633e71f2e01 <unknown>
#8 0x5633e725c470 <unknown>
#9 0x5633e7243de3 <unknown>
#10 0x5633e72192dd <unknown>
#11 0x5633e721a34e <unknown>
#12 0x5633e74793e4 <unknown>
#13 0x5633e747d3d7 <unknown>
#14 0x5633e7487b20 <unknown>
#15 0x5633e747e023 <unknown>
#16 0x5633e744c1aa <unknown>
#17 0x5633e74a26b8 <unknown>
#18 0x5633e74a2847 <unknown>
#19 0x5633e74b2243 <unknown>
#20 0x7f7591e74ac3 <unknown>
- 現在のURLを表示selenium
- seleniumだと
- seleniumのheadlessで実行しようとすると、スマホで取得しているらしい
- GPUを無効にするってなに
- モデルへデータを格納したい
- /home/NBSystem/forest_packers/export/rf_shipping_size.csv
いつ作成されたか
- results = pd.DataFrame({
'original_product_code’: X_new_original_product_code,
'packing_size’: predicted_sizes
})
これをPackingSizeResultに保存したい
- dfを保存したいのさ
- if X_combined_new.shape[1] == X_combined.shape[1]:
# モデルを使用してサイズを予測する
predicted_sizes = rf_model.predict(X_combined_new)
# packing_sizeとoriginal_product_codeを含む新しいオブジェクトのリストを作成
# new_objects = [
# PackingSizeResult(packing_size=size, original_product_code=code)
# for size, code in zip(predicted_sizes, X_new_original_product_code)
# ]
# # 作成したオブジェクトを一括でデータベースに保存
# PackingSizeResult.objects.bulk_create(new_objects)
# 予測されたサイズとoriginal_product_codeを含むデータフレームを作成する
results = pd.DataFrame({
'original_product_code’: X_new_original_product_code,
'packing_size’: predicted_sizes
})
このresultをモデルへ保存したい。bulkで
- Error occurred during Crawl rough_and_road: Message: unknown error: session deleted because of page crash
from unknown error: cannot determine loading status
from tab crashed
(Session info: headless chrome=114.0.5735.90)
Stacktrace:
#0 0x559712dd24e3 <unknown>
#1 0x559712b01b00 <unknown>
#2 0x559712aecb69 <unknown>
#3 0x559712aec066 <unknown>
#4 0x559712aeb168 <unknown>
#5 0x559712aeafa0 <unknown>
#6 0x559712ae99bf <unknown>
#7 0x559712aea162 <unknown>
#8 0x559712af80d5 <unknown>
#9 0x559712af9222 <unknown>
#10 0x559712b0bbcb <unknown>
#11 0x559712b103ab <unknown>
#12 0x559712aea703 <unknown>
#13 0x559712b0b810 <unknown>
#14 0x559712b7521c <unknown>
#15 0x559712b5cde3 <unknown>
#16 0x559712b322dd <unknown>
#17 0x559712b3334e <unknown>
#18 0x559712d923e4 <unknown>
#19 0x559712d963d7 <unknown>
#20 0x559712da0b20 <unknown>
#21 0x559712d97023 <unknown>
#22 0x559712d651aa <unknown>
#23 0x559712dbb6b8 <unknown>
#24 0x559712dbb847 <unknown>
#25 0x559712dcb243 <unknown>
#26 0x7fd124a3dac3 <unknown>
- スクロールバーが複数ある場合、画面の最下部へ移動したいんだけど、seleniumでどうやるの?うまくいかない
- NoSuchElementException Traceback (most recent call last)
Cell In[22], line 4
2 time.sleep(1)
3 class_name_page_wrapper ="pager-block"
—-> 4 driver.find_element(By.CLASS_NAME, class_name_page_wrapper).find_element(By.LINK_TEXT, “次へ>>").click()
5 print(driver.current_url)
File ~anaconda3libsite-packagesseleniumwebdriverremotewebelement.py:417, in WebElement.find_element(self, by, value)
414 by = By.CSS_SELECTOR
415 value = f'[name="{value}"]’
–> 417 return self._execute(Command.FIND_CHILD_ELEMENT, {“using": by, “value": value})[“value"]
File ~anaconda3libsite-packagesseleniumwebdriverremotewebelement.py:395, in WebElement._execute(self, command, params)
393 params = {}
394 params[“id"] = self._id
–> 395 return self._parent.execute(command, params)
File ~anaconda3libsite-packagesseleniumwebdriverremotewebdriver.py:347, in WebDriver.execute(self, driver_command, params)
345 response = self.command_executor.execute(driver_command, params)
346 if response:
–> 347 self.error_handler.check_response(response)
348 response[“value"] = self._unwrap_value(response.get(“value", None))
349 return response
File ~anaconda3libsite-packagesseleniumwebdriverremoteerrorhandler.py:229, in ErrorHandler.check_response(self, response)
227 alert_text = value[“alert"].get(“text")
228 raise exception_class(message, screen, stacktrace, alert_text) # type: ignore[call-arg] # mypy is not smart enough here
–> 229 raise exception_class(message, screen, stacktrace)
NoSuchElementException: Message: no such element: Unable to locate element: {“method":"link text","selector":"次へ>>"}
(Session info: chrome-headless-shell=122.0.6261.94); For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#no-such-element-exception
Stacktrace:
GetHandleVerifier [0x00B98D03+51395]
(No symbol) [0x00B05F61]
(No symbol) [0x009BE13A]
(No symbol) [0x009F62BB]
(No symbol) [0x009F63EB]
(No symbol) [0x009EE001]
(No symbol) [0x00A13ED4]
(No symbol) [0x009EDF7E]
(No symbol) [0x00A14124]
(No symbol) [0x00A2A570]
(No symbol) [0x00A13C26]
(No symbol) [0x009EC629]
(No symbol) [0x009ED40D]
GetHandleVerifier [0x00F168D3+3712147]
GetHandleVerifier [0x00F55CBA+3971194]
GetHandleVerifier [0x00F50FA8+3951464]
GetHandleVerifier [0x00C49D09+776393]
(No symbol) [0x00B11734]
(No symbol) [0x00B0C618]
(No symbol) [0x00B0C7C9]
(No symbol) [0x00AFDDF0]
BaseThreadInitThunk [0x7548FCC9+25]
RtlGetAppContainerNamedObjectPath [0x76EE7C5E+286]
RtlGetAppContainerNamedObjectPath [0x76EE7C2E+238]
- headlessモードにすると取得できなくなる
- class_name_page_wrapper ="pager-block"
driver.find_element(By.CLASS_NAME, class_name_page_wrapper).find_element(By.LINK_TEXT, “次へ>>").click()
- 先のコードに変換して
- TimeoutException Traceback (most recent call last)
Cell In[23], line 9
7 # 要素が表示されるまで待機する
8 wait = WebDriverWait(driver, 10)
—-> 9 page_wrapper = wait.until(EC.visibility_of_element_located((By.CLASS_NAME, class_name_page_wrapper)))
11 # “次へ>>" リンクが表示されるまで待機する
12 next_link = wait.until(EC.visibility_of_element_located((By.LINK_TEXT, “次へ>>")))
File ~anaconda3libsite-packagesseleniumwebdriversupportwait.py:105, in WebDriverWait.until(self, method, message)
103 if time.monotonic() > end_time:
104 break
–> 105 raise TimeoutException(message, screen, stacktrace)
TimeoutException: Message:
- 追加の対処
- class_name_page_wrapper ="search-main-contents"
# print(driver.page_source)
driver.find_element(By.CLASS_NAME, class_name_page_wrapper).find_element(By.LINK_TEXT, “次へ>>").click()
このclass内で、下から探索して次へを探してほしい
- BLOBで保存したい
- File “/usr/local/lib/python3.10/dist-packages/django/utils/asyncio.py", line 26, in inner
return func(*args, **kwargs)
File “/usr/local/lib/python3.10/dist-packages/django/db/backends/base/base.py", line 274, in ensure_connection
with self.wrap_database_errors:
File “/usr/local/lib/python3.10/dist-packages/django/db/utils.py", line 91, in __exit__
raise dj_exc_value.with_traceback(traceback) from exc_value
File “/usr/local/lib/python3.10/dist-packages/django/db/backends/base/base.py", line 275, in ensure_connection
self.connect()
File “/usr/local/lib/python3.10/dist-packages/django/utils/asyncio.py", line 26, in inner
return func(*args, **kwargs)
File “/usr/local/lib/python3.10/dist-packages/django/db/backends/base/base.py", line 256, in connect
self.connection = self.get_new_connection(conn_params)
File “/usr/local/lib/python3.10/dist-packages/django/utils/asyncio.py", line 26, in inner
return func(*args, **kwargs)
File “/usr/local/lib/python3.10/dist-packages/django/db/backends/mysql/base.py", line 256, in get_new_connection
connection = Database.connect(**conn_params)
File “/usr/local/lib/python3.10/dist-packages/MySQLdb/__init__.py", line 121, in Connect
return Connection(*args, **kwargs)
File “/usr/local/lib/python3.10/dist-packages/MySQLdb/connections.py", line 195, in __init__
super().__init__(*args, **kwargs2)
django.db.utils.OperationalError: (1049, “Unknown database 'nbsystem'")
- Traceback (most recent call last):
File “/home/NBSystem/manage.py", line 22, in <module>
main()
File “/home/NBSystem/manage.py", line 18, in main
execute_from_command_line(sys.argv)
File “/usr/local/lib/python3.10/dist-packages/django/core/management/__init__.py", line 442, in execute_from_command_line
utility.execute()
File “/usr/local/lib/python3.10/dist-packages/django/core/management/__init__.py", line 436, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File “/usr/local/lib/python3.10/dist-packages/django/core/management/base.py", line 413, in run_from_argv
self.execute(*args, **cmd_options)
File “/usr/local/lib/python3.10/dist-packages/django/core/management/base.py", line 459, in execute
output = self.handle(*args, **options)
File “/usr/local/lib/python3.10/dist-packages/django/core/management/base.py", line 107, in wrapper
res = handle_func(*args, **kwargs)
File “/usr/local/lib/python3.10/dist-packages/django/core/management/commands/migrate.py", line 356, in handle
post_migrate_state = executor.migrate(
File “/usr/local/lib/python3.10/dist-packages/django/db/migrations/executor.py", line 135, in migrate
state = self._migrate_all_forwards(
File “/usr/local/lib/python3.10/dist-packages/django/db/migrations/executor.py", line 167, in _migrate_all_forwards
state = self.apply_migration(
File “/usr/local/lib/python3.10/dist-packages/django/db/migrations/executor.py", line 252, in apply_migration
state = migration.apply(state, schema_editor)
File “/usr/local/lib/python3.10/dist-packages/django/db/migrations/migration.py", line 132, in apply
operation.database_forwards(
File “/usr/local/lib/python3.10/dist-packages/django/db/migrations/operations/fields.py", line 235, in database_forwards
schema_editor.alter_field(from_model, from_field, to_field)
File “/usr/local/lib/python3.10/dist-packages/django/db/backends/base/schema.py", line 880, in alter_field
self._alter_field(
File “/usr/local/lib/python3.10/dist-packages/django/db/backends/base/schema.py", line 1137, in _alter_field
self.execute(
File “/usr/local/lib/python3.10/dist-packages/django/db/backends/base/schema.py", line 201, in execute
cursor.execute(sql, params)
File “/usr/local/lib/python3.10/dist-packages/django/db/backends/utils.py", line 122, in execute
return super().execute(sql, params)
File “/usr/local/lib/python3.10/dist-packages/django/db/backends/utils.py", line 79, in execute
return self._execute_with_wrappers(
File “/usr/local/lib/python3.10/dist-packages/django/db/backends/utils.py", line 92, in _execute_with_wrappers
return executor(sql, params, many, context)
File “/usr/local/lib/python3.10/dist-packages/django/db/backends/utils.py", line 100, in _execute
with self.db.wrap_database_errors:
File “/usr/local/lib/python3.10/dist-packages/django/db/utils.py", line 91, in __exit__
raise dj_exc_value.with_traceback(traceback) from exc_value
File “/usr/local/lib/python3.10/dist-packages/django/db/backends/utils.py", line 105, in _execute
return self.cursor.execute(sql, params)
File “/usr/local/lib/python3.10/dist-packages/django/db/backends/mysql/base.py", line 76, in execute
return self.cursor.execute(query, args)
File “/usr/local/lib/python3.10/dist-packages/MySQLdb/cursors.py", line 179, in execute
res = self._query(mogrified_query)
File “/usr/local/lib/python3.10/dist-packages/MySQLdb/cursors.py", line 330, in _query
db.query(q)
File “/usr/local/lib/python3.10/dist-packages/MySQLdb/connections.py", line 261, in query
_mysql.connection.query(self, query)
django.db.utils.OperationalError: (1118, 'Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs’)
- .save()って?
- Error occurred during Scraping pmc: (1406, “Data too long for column 'related_products’ at row 1")
- BLOB ってなに
- File “<frozen importlib._bootstrap>", line 688, in _load_unlocked
File “<frozen importlib._bootstrap_external>", line 883, in exec_module
File “<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File “/home/NBSystem/value_search/models.py", line 153, in <module>
class DeliveryData(models.Model):
File “/home/NBSystem/value_search/models.py", line 169, in DeliveryData
consumption_tax = models.models.CharField(max_length=100)
AttributeError: module 'django.db.models’ has no attribute 'models’. Did you mean: 'Model’?
- return executor(sql, params, many, context)
File “/usr/local/lib/python3.10/dist-packages/django/db/backends/utils.py", line 100, in _execute
with self.db.wrap_database_errors:
File “/usr/local/lib/python3.10/dist-packages/django/db/utils.py", line 91, in __exit__
raise dj_exc_value.with_traceback(traceback) from exc_value
File “/usr/local/lib/python3.10/dist-packages/django/db/backends/utils.py", line 105, in _execute
return self.cursor.execute(sql, params)
File “/usr/local/lib/python3.10/dist-packages/django/db/backends/sqlite3/base.py", line 329, in execute
return super().execute(query, params)
django.db.utils.IntegrityError: UNIQUE constraint failed: value_search_deliverydata.original_number
- このエラーが出たらスキップしたいんだけど
- value_search.models.ShippingArea.DoesNotExist: ShippingArea matching query does not exist.
これもパスしたい
- size_weighted_avg_dfもモデルへ格納したい
- # size_weighted_avg_dfからデータを取得してモデルに保存
for index, row in size_weighted_avg_df.iterrows():
size = row['サイズ’]
weighted_average = row['加重平均送料’]
# 新しいモデルオブジェクトを作成してデータを設定
size_weighted_average = SizeWeightedAverage(size=size, weighted_average=weighted_average)
# データを保存
size_weighted_average.save()
上記はいつ実行されるの?
- DeliveryDataに保存したい
- local/lib/python3.10/dist-packages/django/db/models/fields/__init__.py", line 1013, in get_db_prep_save
return self.get_db_prep_value(value, connection=connection, prepared=False)
File “/usr/local/lib/python3.10/dist-packages/django/db/models/fields/__init__.py", line 1530, in get_db_prep_value
value = self.get_prep_value(value)
File “/usr/local/lib/python3.10/dist-packages/django/db/models/fields/__init__.py", line 1525, in get_prep_value
return self.to_python(value)
File “/usr/local/lib/python3.10/dist-packages/django/db/models/fields/__init__.py", line 1491, in to_python
raise exceptions.ValidationError(
django.core.exceptions.ValidationError: ['“12月1日” は無効な日付形式です。YYYY-MM-DD 形式にしなければなりません。’]
- File “/usr/local/lib/python3.10/dist-packages/django/db/models/sql/compiler.py", line 1746, in <listcomp>
[
File “/usr/local/lib/python3.10/dist-packages/django/db/models/sql/compiler.py", line 1747, in <listcomp>
self.prepare_value(field, self.pre_save_val(field, obj))
File “/usr/local/lib/python3.10/dist-packages/django/db/models/sql/compiler.py", line 1686, in prepare_value
return field.get_db_prep_save(value, connection=self.connection)
File “/usr/local/lib/python3.10/dist-packages/django/db/models/fields/__init__.py", line 1824, in get_db_prep_save
self.to_python(value), self.max_digits, self.decimal_places
File “/usr/local/lib/python3.10/dist-packages/django/db/models/fields/__init__.py", line 1807, in to_python
raise exceptions.ValidationError(
django.core.exceptions.ValidationError: ['“-” は10進浮動小数値にしなければなりません。’]
- 地区発送割合送料
関東50%468
関西50%523
上記なら、平均送料は、(465+523)/2で495になるよね。
じゃあ、
地区発送割合送料
関東69%468
関西31%523
上記ならどうなる?
- 梱包サイズ毎に加重平均送料を算出してほしい
- 地区発送割合
関東39%
関西17%
九州10%
中部9%
信越7%
中国5%
北東北3%
四国3%
北海道2%
南東北2%
北陸2%
上記の発送割合の際、商品サイズ毎に損益分岐点の価格を知りたいんだ。どうしたらいい
- 発送割合2%2%2%39%7%2%9%17%5%3%10%
サイズ大きさ重量北海道北東北南東北関東信越北陸中部関西中国四国九州沖縄
(3辺計)北海道青森・岩手宮城・山形茨城・栃木新潟・長野富山・石川岐阜・静岡滋賀・京都鳥取・島根徳島・香川福岡・佐賀沖縄
秋田福島群馬・埼玉福井愛知・三重大阪・兵庫岡山・広島愛媛・高知長崎・熊本
千葉・東京奈良山口大分・宮崎
神奈川・山梨和歌山鹿児島
6060cm以内2kg以内8205234904684904904905236337438201,364
8080cm以内5kg以内8535454904904904904905456557658531,914
100100cm以内10kg以内9085785235235235235235786887989082,486
120120cm以内15kg以内9636335785785785785786337438539633,036
140140cm以内20kg以内1,0181,0736886886886886887437989081,0183,608
160160cm以内25kg以内1,2389088538538538538539089631,0731,2384,158
180180cm以内30kg以内2,8382,5082,3982,3982,3982,3982,3982,5082,6182,6182,8384,708
200200cm以内30kg以内3,2782,9482,8382,8382,8382,8382,8382,9483,0583,0583,2785,258
上記の発送実績がある。
発送割合を考慮して、サイズ毎に適正価格を算出せよ
- 60サイズの割合が100%と仮定して。60サイズだけでいいよ。
- 地区発送割合送料X
関東39%468182
関西17%52390
九州10%82084
中部9%49045
信越7%49034
中国5%49025
北東北3%52318
四国3%74325
北海道2%82019
南東北2%4908
北陸2%4908
538
この表のXに当たる指標はなんだ
- 地区発送割合送料
関東39%468
関西17%523
関東+関西=50%の発送割合の場合、平均送料を求めよ
- 地区発送割合送料
関東39%468
関西17%523
関東+関西=10%の発送割合の場合、平均送料を求めよ
- 地区発送割合送料
関東39%468
関西17%523
関東+関西=50%の発送割合の場合の送料を求めよ
- リトライ機構の導入
- df.at[0, “html_content"] = requests.get(i.find_element(By.TAG_NAME,"a").get_attribute(“href")).text
ここがエラー部分なんだけど、ここだけ3回のリトライとかできる?引き数だけ入れてとか
- requestsのオプション一覧
- <table class="grid-look">
<thead class="product-grid-top">
<tr>
<td class="nav prev"> </td>
<td><div class="swatch-option image " option-type="2″ option-id="1539″ option-label="ALL BLACK" option-tooltip-thumb="https://media-www.ec.rs-taichi.com/catalog/product/cache/79cd194851544f88bafc552bf5216e5d/r/s/rst465bk02.jpg" option-tooltip-value="https://media-www.ec.rs-taichi.com/catalog/product/cache/455d758771d3747e7d5f3337b2de6a2c/r/s/rst465bk02.jpg" option-attr-code="color" style="background:url(https://media-www.ec.rs-taichi.com/catalog/product/cache/455d758771d3747e7d5f3337b2de6a2c/r/s/rst465bk02.jpg) no-repeat center; background-size:initial;"></div><div>ALL BLACK</div></td>
<td><div class="swatch-option image " option-type="2″ option-id="1346″ option-label="BLACK" option-tooltip-thumb="https://media-www.ec.rs-taichi.com/catalog/product/cache/79cd194851544f88bafc552bf5216e5d/r/s/rst465bk01.jpg" option-tooltip-value="https://media-www.ec.rs-taichi.com/catalog/product/cache/455d758771d3747e7d5f3337b2de6a2c/r/s/rst465bk01.jpg" option-attr-code="color" style="background:url(https://media-www.ec.rs-taichi.com/catalog/product/cache/455d758771d3747e7d5f3337b2de6a2c/r/s/rst465bk01.jpg) no-repeat center; background-size:initial;"></div><div>BLACK</div></td>
<td><div class="swatch-option image " option-type="2″ option-id="1570″ option-label="BLACK/GRAY" option-tooltip-thumb="https://media-www.ec.rs-taichi.com/catalog/product/cache/79cd194851544f88bafc552bf5216e5d/r/s/rst465bk71.jpg" option-tooltip-value="https://media-www.ec.rs-taichi.com/catalog/product/cache/455d758771d3747e7d5f3337b2de6a2c/r/s/rst465bk71.jpg" option-attr-code="color" style="background:url(https://media-www.ec.rs-taichi.com/catalog/product/cache/455d758771d3747e7d5f3337b2de6a2c/r/s/rst465bk71.jpg) no-repeat center; background-size:initial;"></div><div>BLACK/GRAY</div></td>
<td><div class="swatch-option image " option-type="2″ option-id="1355″ option-label="BLACK/RED" option-tooltip-thumb="https://media-www.ec.rs-taichi.com/catalog/product/cache/79cd194851544f88bafc552bf5216e5d/r/s/rst465bk11.jpg" option-tooltip-value="https://media-www.ec.rs-taichi.com/catalog/product/cache/455d758771d3747e7d5f3337b2de6a2c/r/s/rst465bk11.jpg" option-attr-code="color" style="background:url(https://media-www.ec.rs-taichi.com/catalog/product/cache/455d758771d3747e7d5f3337b2de6a2c/r/s/rst465bk11.jpg) no-repeat center; background-size:initial;"></div><div>BLACK/RED</div></td>
<td><div class="swatch-option image " option-type="2″ option-id="1537″ option-label="BLACK/WHITE" option-tooltip-thumb="https://media-www.ec.rs-taichi.com/catalog/product/cache/79cd194851544f88bafc552bf5216e5d/r/s/rst465bk51.jpg" option-tooltip-value="https://media-www.ec.rs-taichi.com/catalog/product/cache/455d758771d3747e7d5f3337b2de6a2c/r/s/rst465bk51.jpg" option-attr-code="color" style="background:url(https://media-www.ec.rs-taichi.com/catalog/product/cache/455d758771d3747e7d5f3337b2de6a2c/r/s/rst465bk51.jpg) no-repeat center; background-size:initial;"></div><div>BLACK/WHITE</div></td>
</tr>
</thead>
<tbody id="product-grid" class="product-grid-center">
<tr class="item">
<td>
<div class="swatch-option text " option-type="0″ option-id="1801″ option-label="S" option-tooltip-thumb="" option-tooltip-value="" option-attr-code="size">S</div> </td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>廃番</span>
</td>
</tr>
<tr class="item">
<td>
<div class="swatch-option text " option-type="0″ option-id="1796″ option-label="M" option-tooltip-thumb="" option-tooltip-value="" option-attr-code="size">M</div> </td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>廃番</span>
</td>
</tr>
<tr class="item">
<td>
<div class="swatch-option text " option-type="0″ option-id="1795″ option-label="L" option-tooltip-thumb="" option-tooltip-value="" option-attr-code="size">L</div> </td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>廃番</span>
</td>
</tr>
<tr class="item">
<td>
<div class="swatch-option text " option-type="0″ option-id="1800″ option-label="XL" option-tooltip-thumb="" option-tooltip-value="" option-attr-code="size">XL</div> </td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>廃番</span>
</td>
</tr>
<tr class="item">
<td>
<div class="swatch-option text " option-type="0″ option-id="2036″ option-label="XXL" option-tooltip-thumb="" option-tooltip-value="" option-attr-code="size">XXL</div> </td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>廃番</span>
</td>
</tr>
</tbody>
</table>
上記の在庫情報がある。
<table class="item_size" style="margin-left: auto; margin-right: auto;" border="1″>
<tbody>
<tr>
<td class="xl68″ style="text-align: left; font-weight: bold; font-size: 14px;" width="250″ height="24″>商品番号</td>
<td class="xl68″ style="text-align: left; font-weight: bold; font-size: 14px;" width="250″>Color</td>
<td class="xl68″ style="text-align: left; font-weight: bold; font-size: 14px;" width="250″>Size</td>
<td class="xl68″ style="text-align: left; font-weight: bold; font-size: 14px;" width="250″>JanCode</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RST465BK01L</td>
<td class="xl68″ style="text-align: left;">BLACK</td>
<td class="xl68″ style="text-align: left;">L</td>
<td class="xl68″ style="text-align: left;">4997035085996</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RST465BK01M</td>
<td class="xl68″ style="text-align: left;">BLACK</td>
<td class="xl68″ style="text-align: left;">M</td>
<td class="xl68″ style="text-align: left;">4997035086009</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RST465BK01S</td>
<td class="xl68″ style="text-align: left;">BLACK</td>
<td class="xl68″ style="text-align: left;">S</td>
<td class="xl68″ style="text-align: left;">4997035086016</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RST465BK01XL</td>
<td class="xl68″ style="text-align: left;">BLACK</td>
<td class="xl68″ style="text-align: left;">XL</td>
<td class="xl68″ style="text-align: left;">4997035086023</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RST465BK01XXL</td>
<td class="xl68″ style="text-align: left;">BLACK</td>
<td class="xl68″ style="text-align: left;">XXL</td>
<td class="xl68″ style="text-align: left;">4997035086030</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RST465BK02L</td>
<td class="xl68″ style="text-align: left;">ALL BLACK</td>
<td class="xl68″ style="text-align: left;">L</td>
<td class="xl68″ style="text-align: left;">4997035086238</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RST465BK02M</td>
<td class="xl68″ style="text-align: left;">ALL BLACK</td>
<td class="xl68″ style="text-align: left;">M</td>
<td class="xl68″ style="text-align: left;">4997035086245</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RST465BK02S</td>
<td class="xl68″ style="text-align: left;">ALL BLACK</td>
<td class="xl68″ style="text-align: left;">S</td>
<td class="xl68″ style="text-align: left;">4997035086252</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RST465BK02XL</td>
<td class="xl68″ style="text-align: left;">ALL BLACK</td>
<td class="xl68″ style="text-align: left;">XL</td>
<td class="xl68″ style="text-align: left;">4997035086269</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RST465BK02XXL</td>
<td class="xl68″ style="text-align: left;">ALL BLACK</td>
<td class="xl68″ style="text-align: left;">XXL</td>
<td class="xl68″ style="text-align: left;">4997035086276</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RST465BK11L</td>
<td class="xl68″ style="text-align: left;">BLACK/RED</td>
<td class="xl68″ style="text-align: left;">L</td>
<td class="xl68″ style="text-align: left;">4997035086047</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RST465BK11M</td>
<td class="xl68″ style="text-align: left;">BLACK/RED</td>
<td class="xl68″ style="text-align: left;">M</td>
<td class="xl68″ style="text-align: left;">4997035086054</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RST465BK11S</td>
<td class="xl68″ style="text-align: left;">BLACK/RED</td>
<td class="xl68″ style="text-align: left;">S</td>
<td class="xl68″ style="text-align: left;">4997035086061</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RST465BK11XL</td>
<td class="xl68″ style="text-align: left;">BLACK/RED</td>
<td class="xl68″ style="text-align: left;">XL</td>
<td class="xl68″ style="text-align: left;">4997035086078</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RST465BK11XXL</td>
<td class="xl68″ style="text-align: left;">BLACK/RED</td>
<td class="xl68″ style="text-align: left;">XXL</td>
<td class="xl68″ style="text-align: left;">4997035086085</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RST465BK51L</td>
<td class="xl68″ style="text-align: left;">BLACK/WHITE</td>
<td class="xl68″ style="text-align: left;">L</td>
<td class="xl68″ style="text-align: left;">4997035086092</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RST465BK51M</td>
<td class="xl68″ style="text-align: left;">BLACK/WHITE</td>
<td class="xl68″ style="text-align: left;">M</td>
<td class="xl68″ style="text-align: left;">4997035086108</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RST465BK51S</td>
<td class="xl68″ style="text-align: left;">BLACK/WHITE</td>
<td class="xl68″ style="text-align: left;">S</td>
<td class="xl68″ style="text-align: left;">4997035086115</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RST465BK51XL</td>
<td class="xl68″ style="text-align: left;">BLACK/WHITE</td>
<td class="xl68″ style="text-align: left;">XL</td>
<td class="xl68″ style="text-align: left;">4997035086122</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RST465BK51XXL</td>
<td class="xl68″ style="text-align: left;">BLACK/WHITE</td>
<td class="xl68″ style="text-align: left;">XXL</td>
<td class="xl68″ style="text-align: left;">4997035086139</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RST465BK71L</td>
<td class="xl68″ style="text-align: left;">BLACK/GRAY</td>
<td class="xl68″ style="text-align: left;">L</td>
<td class="xl68″ style="text-align: left;">4997035086184</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RST465BK71M</td>
<td class="xl68″ style="text-align: left;">BLACK/GRAY</td>
<td class="xl68″ style="text-align: left;">M</td>
<td class="xl68″ style="text-align: left;">4997035086191</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RST465BK71S</td>
<td class="xl68″ style="text-align: left;">BLACK/GRAY</td>
<td class="xl68″ style="text-align: left;">S</td>
<td class="xl68″ style="text-align: left;">4997035086207</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RST465BK71XL</td>
<td class="xl68″ style="text-align: left;">BLACK/GRAY</td>
<td class="xl68″ style="text-align: left;">XL</td>
<td class="xl68″ style="text-align: left;">4997035086214</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RST465BK71XXL</td>
<td class="xl68″ style="text-align: left;">BLACK/GRAY</td>
<td class="xl68″ style="text-align: left;">XXL</td>
<td class="xl68″ style="text-align: left;">4997035086221</td>
</tr>
</tbody>
</table>
上記のJAN情報がある。
beautifulsoupで付け合わせしたいんだけど、どうやったらいいかわかる?
- def shop(name,【A】, 【B】):
print(“flowershop:", name)
keys = sorted(argsX.keys())
for kw in keys:
print(kw, “:", argsX[kw])
for Y in argsY:
print(Y)
AとBに入るのは?
- 【A】**argsX 【B】*argsYこれは?
- 関数注釈(アノテーション)は関数の__annotations__属性にディクショナリとして格納され、関数のほかの部分にはいかなる影響も及ぼさない。
- 例えば「def func(a: int, b:str) -> value」と関数を記述したときにアノテーションに該当するものは「-> value」のみである。
- アノテーションって戻り値の型ってこと?
- InvalidArgumentException Traceback (most recent call last)
Cell In[6], line 9
7 driver.find_elements(By.TAG_NAME, “tbody")[-2].find_elements(By.TAG_NAME,"td")[-1].find_element(By.LINK_TEXT, “…").click()
8 else:
—-> 9 driver.find_elements(By.TAG_NAME, “tbody")[-2].find_element(By.LINK_TEXT, count).click()
10 # driver.find_elements(By.LINK_TEXT,"…")[-1].click()
11 driver.find_elements(By.TAG_NAME, “tbody")[-2].find_elements(By.TAG_NAME,"td")[-1].find_element(By.LINK_TEXT, “…").click()
File c:UsersAdministratorDocumentstask_schedulerupdate_suruzo_price_searchLibsite-packagesseleniumwebdriverremotewebelement.py:416, in WebElement.find_element(self, by, value)
413 by = By.CSS_SELECTOR
414 value = f'[name="{value}"]’
–> 416 return self._execute(Command.FIND_CHILD_ELEMENT, {“using": by, “value": value})[“value"]
File c:UsersAdministratorDocumentstask_schedulerupdate_suruzo_price_searchLibsite-packagesseleniumwebdriverremotewebelement.py:394, in WebElement._execute(self, command, params)
392 params = {}
393 params[“id"] = self._id
–> 394 return self._parent.execute(command, params)
File c:UsersAdministratorDocumentstask_schedulerupdate_suruzo_price_searchLibsite-packagesseleniumwebdriverremotewebdriver.py:347, in WebDriver.execute(self, driver_command, params)
345 response = self.command_executor.execute(driver_command, params)
346 if response:
–> 347 self.error_handler.check_response(response)
348 response[“value"] = self._unwrap_value(response.get(“value", None))
349 return response
…
(No symbol) [0x00A8DDF0]
BaseThreadInitThunk [0x75FE6A39+25]
RtlGetFullPathName_UEx [0x77BD800D+173]
RtlGetFullPathName_UEx [0x77BD7FDB+123]
- 11、21、31、41で別処理をしたい、python
- 11、21、31、41・・・91で別処理をしたい、python
- もっとスマートにしたい。1の位が1の時に別の処理をしたいんだ
- コンポジットってなに
- n % x == 0これは素数なの?
- 素数かどうかを判定するには?
- N=3なら?
- **0.5は平方根なの?
- 平方根を計算してみて、いくつか
- while i < range(len(Zen)):
これどういう意味
- ttyデバイス
- 標準入力がttyデバイスに接続された状態で起動した場合は、コマンドを対話的に読み込んで実行するが、引数にファイル名を与えたり、標準入力からファイルを与えて起動した場合は、このファイルに入った「スクリプト」を読み込んで実行する。
- 切り下げ除算を行って整数解を得たい場合(剰余を捨てたい場合)は「 / 」を使い、剰余のみ得たい場合は「 // 」を使う。
- 「 + 」や「 – 」などの記号はオペランドと呼ばれている?
- Pythonで除算はつねにfloatを返すの?
- 対話モードでは、最後に表示した式を変数「**」(アスタリスク2つ)に代入してある。
- 文字列リテラルを複数行にわたり書く一つの方法は、トリプルクオートを使う方法である。最初の改行などの行末文字が文字列に含まれることを避けたい場合は、行末に何を置く?
- multiline_string = “""
This is a
multiline
string.
“""
これならどうなる
- 対話型インタープリタでは文字列は引用符に囲まれ、特殊文字はバックスラッシュでエスケープされた状態で出力される。print()関数では全体を囲む引用符が除去され、エスケープ文字や特殊文字がプリントされた状態で出力される。
- 具体例をだして
- 次の結果を得たい場合、コード【A】【B】に入る組み合わせとして適切なものはどれか。なお【A】は★aの行と、【B】は★bの行と同じ数の空白でインデントされている。
[ 実行結果 ]
2 is a prime number
3 is a prime number
4 equals 2 * 2
5 is a prime number
6 equals 2 * 3
7 is a prime number
8 equals 2 * 4
9 equals 3 * 3
[ コード ]
for n in range(2, 10):
for x in range(2 ,n): …★b
if n % x == 0:
print(n, 'equals’, x, '*’, n//x) …★a
【A】
【B】
print(n,’is a prime number’)
- Pythonは柔軟な配列や集合、ディクショナリといった、非常に高水準のデータ型を組み込みで持つ。データ型の一般性が高いためPythonの対応可能な問題領域はAwkより広いが、Perlと比べると同程度である。
これどこが間違ってる?
- インタープリタがスクリプト名(スクリプトのファイル名)と続く引数群を知らされると、これらは文字列のリストとなる。import listitems を実行することで、このリストにアクセスできる。
どこがちがう?
- cronで毎週日曜日の0時から実行させたい
- シェルスクリプト
- :4の4は、インデックス番号ではなく、何個の数をカウントするかっていうこと?
- prog = re.compile('(K|S)us(a|u)n(a|o)(o|m)?g?i?(saya)?’, re.IGNORECASE)
これはどういう意味
- printのendで改行するには
- input_line = input()
print(“+"*10,f"+{input_line}+","+"*10,end="n")
改行されない
- あなたは、高速道路の管理運営を仕事にしています。
そこで、運転者に道路がどの程度渋滞しているかを知らせるシステムを作ることにしました。
ある道路の車の数と、各車の車間距離が与えられるので、車間距離が M メートル以下の場合を渋滞と定義したとき、渋滞の区間が合計で何メートルあるか求めるプログラムを作成してください。なお、車の車体の長さは無視して計算してください。
入力は以下のフォーマットで与えられます。
N M
A_1
A_2
…
A_{N-1}
・1 行目には、車の数を表す整数 N と、渋滞を定義する整数 M がこの順で半角スペース区切りで与えられます。
・続く N – 1 行目の i 行目 (1 ≦ i ≦ N – 1) には、先頭から i 番目の車と i + 1 番目の車の車間距離を表す整数 A_i が与えられます。
・入力は合計で N 行となり、入力値最終行の末尾に改行が 1 つ入ります。
すべてのテストケースにおいて、以下の条件をみたします。
・1 ≦ N ≦ 1,000
・1 ≦ M ≦ 100
・1 ≦ A_i ≦ 200 (1 ≦ i ≦ N – 1)
入力例1
5 10
5
6
25
4
出力例1
15
入力例2
4 30
30
10
40
出力例2
40
- <table class="grid-look">
<thead class="product-grid-top">
<tr>
<td class="nav prev"> </td>
<td><div class="swatch-option image " option-type="2″ option-id="2351″ option-label="GRAY/BLACK(MC5SF)" option-tooltip-thumb="https://media-www.ec.rs-taichi.com/catalog/product/cache/79cd194851544f88bafc552bf5216e5d/h/j/hjh194gy01t.jpg" option-tooltip-value="https://media-www.ec.rs-taichi.com/catalog/product/cache/455d758771d3747e7d5f3337b2de6a2c/h/j/hjh194gy01t.jpg" option-attr-code="color" style="background:url(https://media-www.ec.rs-taichi.com/catalog/product/cache/455d758771d3747e7d5f3337b2de6a2c/h/j/hjh194gy01t.jpg) no-repeat center; background-size:initial;"></div><div>GRAY/BLACK(MC5SF)</div></td>
<td><div class="swatch-option image " option-type="2″ option-id="2350″ option-label="WHITE/BLUE(MC2SF)" option-tooltip-thumb="https://media-www.ec.rs-taichi.com/catalog/product/cache/79cd194851544f88bafc552bf5216e5d/h/j/hjh194wh01t.jpg" option-tooltip-value="https://media-www.ec.rs-taichi.com/catalog/product/cache/455d758771d3747e7d5f3337b2de6a2c/h/j/hjh194wh01t.jpg" option-attr-code="color" style="background:url(https://media-www.ec.rs-taichi.com/catalog/product/cache/455d758771d3747e7d5f3337b2de6a2c/h/j/hjh194wh01t.jpg) no-repeat center; background-size:initial;"></div><div>WHITE/BLUE(MC2SF)</div></td>
<td><div class="swatch-option image " option-type="2″ option-id="1401″ option-label="BLACK/RED(MC1SF)" option-tooltip-thumb="https://media-www.ec.rs-taichi.com/catalog/product/cache/79cd194851544f88bafc552bf5216e5d/h/j/hjh194re01t.jpg" option-tooltip-value="https://media-www.ec.rs-taichi.com/catalog/product/cache/455d758771d3747e7d5f3337b2de6a2c/h/j/hjh194re01t.jpg" option-attr-code="color" style="background:url(https://media-www.ec.rs-taichi.com/catalog/product/cache/455d758771d3747e7d5f3337b2de6a2c/h/j/hjh194re01t.jpg) no-repeat center; background-size:initial;"></div><div>BLACK/RED(MC1SF)</div></td>
<td><div class="swatch-option image " option-type="2″ option-id="1377″ option-label="BLACK/YELLOW(MC4HSF)" option-tooltip-thumb="https://media-www.ec.rs-taichi.com/catalog/product/cache/79cd194851544f88bafc552bf5216e5d/h/j/hjh194ye01t.jpg" option-tooltip-value="https://media-www.ec.rs-taichi.com/catalog/product/cache/455d758771d3747e7d5f3337b2de6a2c/h/j/hjh194ye01t.jpg" option-attr-code="color" style="background:url(https://media-www.ec.rs-taichi.com/catalog/product/cache/455d758771d3747e7d5f3337b2de6a2c/h/j/hjh194ye01t.jpg) no-repeat center; background-size:initial;"></div><div>BLACK/YELLOW(MC4HSF)</div></td>
</tr>
</thead>
<tbody id="product-grid" class="product-grid-center">
<tr class="item">
<td>
<div class="swatch-option text " option-type="0″ option-id="1801″ option-label="S" option-tooltip-thumb="" option-tooltip-value="" option-attr-code="size">S</div> </td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>廃番</span>
</td>
</tr>
<tr class="item">
<td>
<div class="swatch-option text " option-type="0″ option-id="1796″ option-label="M" option-tooltip-thumb="" option-tooltip-value="" option-attr-code="size">M</div> </td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>廃番</span>
</td>
</tr>
<tr class="item">
<td>
<div class="swatch-option text " option-type="0″ option-id="1795″ option-label="L" option-tooltip-thumb="" option-tooltip-value="" option-attr-code="size">L</div> </td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>廃番</span>
</td>
</tr>
<tr class="item">
<td>
<div class="swatch-option text " option-type="0″ option-id="1800″ option-label="XL" option-tooltip-thumb="" option-tooltip-value="" option-attr-code="size">XL</div> </td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>廃番</span>
</td>
</tr>
</tbody>
</table>
上記のテーブルがある。これを、以下に格納したい。
self.stock_df = pd.DataFrame(data, columns=['Color’, 'Size’, 'Stock’])
- 'Color’, 'Size’, 'Stock’
GRAY/BLACK(MC5SF) ,"S","廃番"
GRAY/BLACK(MC5SF) ,"M","廃番"
GRAY/BLACK(MC5SF) ,"L","廃番"
WHITE/BLUE(MC2SF) ,"S","廃番"
WHITE/BLUE(MC2SF) ,"M","廃番"
- 'Color’, 'Size’, 'Stock’
GRAY/BLACK(MC5SF) ,"S","廃番"
GRAY/BLACK(MC5SF) ,"M","廃番"
GRAY/BLACK(MC5SF) ,"L","廃番"
WHITE/BLUE(MC2SF) ,"S","廃番"
WHITE/BLUE(MC2SF) ,"M","廃番"
上記のような出力にしたいんだ。さっきのテーブルから
- <table class="grid-look">
<thead class="product-grid-top">
<tr>
<td class="nav prev"> </td>
<td>GRAY/BLACK(MC5SF)</td>
<td>WHITE/BLUE(MC2SF)</td>
<td>BLACK/RED(MC1SF)</td>
<td>BLACK/YELLOW(MC4HSF)</td>
</tr>
</thead>
<tbody id="product-grid" class="product-grid-center">
<tr class="item">
<td>S</td>
<td>廃番</td>
<td>廃番</td>
<td>廃番</td>
<td>廃番</td>
</tr>
<tr class="item">
<td>M</td>
<td>廃番</td>
<td>廃番</td>
<td>廃番</td>
<td>廃番</td>
</tr>
<tr class="item">
<td>L</td>
<td>廃番</td>
<td>廃番</td>
<td>廃番</td>
<td>廃番</td>
</tr>
<tr class="item">
<td>XL</td>
<td>廃番</td>
<td>廃番</td>
<td>廃番</td>
<td>廃番</td>
</tr>
</tbody>
</table>
“""
上記の情報から、下記の出力をdataframeでだしたい。
Color,Size,Stock
GRAY/BLACK(MC5SF),S,廃番
GRAY/BLACK(MC5SF),M,廃番
GRAY/BLACK(MC5SF),L,廃番
WHITE/BLUE(MC2SF),S,廃番
WHITE/BLUE(MC2SF),M,廃番
- Django デバッグ
- データは入っているはずなんだ。
- Pythonのエラーは、構文エラーと例外エラーがあるの?
- with open(“file.txt") as f:
for line in f:
print(line, end="")
これはなに
- 名前空間とは
- コマンドライン上で「python3 script.py one two three four five」を実行したときに、以下の結果を得たい。コード2行目の【A】に入るものとして正しいものはどれか。
[ 実行結果 ]
['one’, 'two’, 'three’]
[ コード ]
import sys
print(【A】)
- 違反のある行を表示し、最後にエラーが検知された点を小さな矢印で示す。エラーは矢印より後のトークンが原因である。
これの答えは?
- パーサ(構文解釈器)は違反のある行を表示し、最後にエラーが検知された点を小さな矢印で示す。エラーは矢印より後のトークンが原因である。
- (1, 2, 3, 4,6) > (1, 2, 5)これはどういう意味
- (1, 2, 4, 6,6) > (1, 2, 5)
Falseとなった
- 等しくない数が含まれているかということ?
- 'PHP’ < 'Perl’ < 'Python’
これはどういう意味
- 'Php’ < 'Perl’ < 'Python’
これだとFalseになるのはなぜ
- あるモジュールがインポートされるときにインタープリタが検索する順序は、まずビルトインモジュール、次にsys.path変数で得られるディレクトリ、最後にシンボリックリンクを置いてあるディレクトリである。
- import sys
dir(sys)
このファイルはなに?
- import math
print('{1:.3f}, {0:.5f}’.format(math.pi, math.e))
これはなに
- try:
int_a = int(input('整数a:’))
int_b = int(input('整数b:’))
print(int_a ** 2)
print((int_a ** 2) / int_b)
except(ValueError) as v:
print(type(v))
print('C’)
except(ZeroDivisionError) :
print('D’)
except:
print('E’)
else:
print('F’)
finally:
print('G’)
この場合、elseって使えるの?
- finallyとはどうちがう
- 演算子の周囲やカンマの後ろ、カッコの内側にもスペースを入れ読みやすさに配慮すべきである。
- [ 実行結果 ]
deque(['cow’, 'dog’, 'elephant’, 'fox’])
[ コード ]
from 【A】 import deque
queue = deque([“bear", “cow", “dog", “elephant","fox"])
queue.append(“goat")
【B】
queue.pop()
print(queue)
- dequeの基本的な使い方おしえて
- queue.removeleft(“bear")
- queue.delete()
- Zen = 'ExplicitIsBetterThanImplicit’
print(Zen[1:20:3])
このリストの絞り込み説明して
- Zen[0] = 'J’
TypeError Traceback (most recent call last)
Cell In[37], line 1
—-> 1 Zen[0] = 'J’
TypeError: 'str’ object does not support item assignment
- pythonでthenって使える?
- elifってあるけど、elseifでも使える?Python
- def culc(a, b=1, squares=[], cubes=[]):
squares.append(a ** 2)
cubes.append(b ** 3)
return squares, cubes
print(culc(1))
print(culc(2, 3))
print(culc(3, 4))
print(culc(4, 5))
defの中のsquaresのリストは、初期化されないの?
- 関数のキーワード引き数で=[]となっていたら、最初だけ初期化されると覚えておけばいい?
- *arguments, **keywordsこれはどういう意味
- ASCIIってなに?UTF8とどう違うの
- 国際的な環境で使用する予定のコードでは、PythonのデフォルトであるUTF-8か、さらにプレーンなASCIIが常に最良である。
- ・・・なのか
- インタープリタを対話モードで起動すると、はじめにバージョンと著作権からはじまるメッセージが、その後にプライマリプロンプトが表示される。
- 著作権はどれ
- プログラムの冒頭で「# coding: (エンコーディング方式)」のようにすると、デフォルト以外のエンコーディングを使うことも可能である。
- サンプル書いて
- cp932もできる?
- f = d // c
この//ってなに
- Zen = 'NowIsBetterThanNever’
print('{}{}{}{}’.format(Zen[5], Zen[10], Zen[-7], Zen[-3:-1]))
これ説明して
- セカンダリプロンプトは?
- 対話モードで何するの?
- python -i script.pyこれはどうなるの
- デバッグや実験ってたとえば?変数の中をみたり?
- プライマリプロンプトの記号は「>>>」である。
- def product_info2(self):
return self.soup(id="additional")[0]
これだとエラーになる
- データベースに格納するのに、オブジェクト型だからではないか?
- def stock(self):
if len(self.tds) == 3:
color=self.sku(“td")[1].get_text(strip=True)
size= self.sku(“td")[2].get_text(strip=True)
self.stock_df=self.stock_df[(self.stock_df[“Color"]==color) & (self.stock_df[“Size"]==size)]
return self.stock_df[“Stock"].values[0]
elif len(self.tds) == 2:
# color=self.sku(“td")[1].get_text(strip=True)
# print(self.sku(“td")[2].get_text(strip=True))
size= self.sku(“td")[2].get_text(strip=True)
self.stock_df=self.stock_df[(self.stock_df[“Size"]==size)]
print(“:"*50)
return str(self.stock_df[“Stock"].values[0])
else:
return None
- オープンソースのソフトウエアってなに?Pythonはちがうの?
- Pythonでスクリプトファイルを走らせた後に、対話モードにはいるは?
- HTMLが元データなんだけど
- <table class="grid-look">
<thead class="product-grid-top">
<tr>
<td class="nav prev"> </td>
<td><div class="swatch-option image " option-type="2″ option-id="1346″ option-label="BLACK" option-tooltip-thumb="https://media-www.ec.rs-taichi.com/catalog/product/cache/79cd194851544f88bafc552bf5216e5d/r/s/rsu500tbk01.jpg" option-tooltip-value="https://media-www.ec.rs-taichi.com/catalog/product/cache/455d758771d3747e7d5f3337b2de6a2c/r/s/rsu500tbk01.jpg" option-attr-code="color" style="background:url(https://media-www.ec.rs-taichi.com/catalog/product/cache/455d758771d3747e7d5f3337b2de6a2c/r/s/rsu500tbk01.jpg) no-repeat center; background-size:initial;"></div><div>BLACK</div></td>
<td><div class="swatch-option image " option-type="2″ option-id="1347″ option-label="GRAY" option-tooltip-thumb="https://media-www.ec.rs-taichi.com/catalog/product/cache/79cd194851544f88bafc552bf5216e5d/r/s/rsu500tgy01.jpg" option-tooltip-value="https://media-www.ec.rs-taichi.com/catalog/product/cache/455d758771d3747e7d5f3337b2de6a2c/r/s/rsu500tgy01.jpg" option-attr-code="color" style="background:url(https://media-www.ec.rs-taichi.com/catalog/product/cache/455d758771d3747e7d5f3337b2de6a2c/r/s/rsu500tgy01.jpg) no-repeat center; background-size:initial;"></div><div>GRAY</div></td>
</tr>
</thead>
<tbody id="product-grid" class="product-grid-center">
<tr class="item">
<td>
<div class="swatch-option text " option-type="0″ option-id="1801″ option-label="S" option-tooltip-thumb="" option-tooltip-value="" option-attr-code="size">S</div> </td>
<td class="no-line-height">
<span>在庫有り</span>
</td>
<td class="no-line-height">
<span>在庫有り</span>
</td>
</tr>
<tr class="item">
<td>
<div class="swatch-option text " option-type="0″ option-id="1796″ option-label="M" option-tooltip-thumb="" option-tooltip-value="" option-attr-code="size">M</div> </td>
<td class="no-line-height">
<span>在庫有り</span>
</td>
<td class="no-line-height">
<span>在庫有り</span>
</td>
</tr>
<tr class="item">
<td>
<div class="swatch-option text " option-type="0″ option-id="1795″ option-label="L" option-tooltip-thumb="" option-tooltip-value="" option-attr-code="size">L</div> </td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>在庫有り</span>
</td>
</tr>
<tr class="item">
<td>
<div class="swatch-option text " option-type="0″ option-id="1800″ option-label="XL" option-tooltip-thumb="" option-tooltip-value="" option-attr-code="size">XL</div> </td>
<td class="no-line-height">
<span>在庫有り</span>
</td>
<td class="no-line-height">
<span>在庫有り</span>
</td>
</tr>
</tbody>
</table>
このHTMLをDataFrameに入れる事できる?
- data変数の中はどうなってるの
- from bs4 import BeautifulSoup
import pandas as pd
# HTMLデータ
html = “""
<table class="grid-look">
<thead class="product-grid-top">
<tr>
<td>Color</td>
<td>Size</td>
<td>Stock</td>
</tr>
</thead>
<tbody id="product-grid" class="product-grid-center">
<tr class="item">
<td>BLACK</td>
<td>S</td>
<td>在庫有り</td>
</tr>
<tr class="item">
<td>BLACK</td>
<td>M</td>
<td>在庫有り</td>
</tr>
<tr class="item">
<td>GRAY</td>
<td>L</td>
<td>廃番</td>
</tr>
<tr class="item">
<td>BLACK</td>
<td>XL</td>
<td>在庫有り</td>
</tr>
</tbody>
</table>
“""
# BeautifulSoupでHTMLを解析
soup = BeautifulSoup(html, 'html.parser’)
# データを抽出してリストに格納
data = []
for tr in soup.find_all('tbody’)[0].find_all('tr’):
tds = tr.find_all('td’)
if len(tds) == 3:
data.append([tds[0].text.strip(), tds[1].text.strip(), tds[2].text.strip()])
# データをDataFrameに変換
df = pd.DataFrame(data, columns=['Color’, 'Size’, 'Stock’])
# 結果を表示
df
このdfから、BLACKのMを探す方法
- size="M"
color="BLACK"
pic_df=df[(df[“Color"]==color) & (df[“Size"]==size)]
pic_df.loc[:,"Stock"]
Stockのテキストほしい
- def product_info1(self):
return self.soup(id_="attributedescription")[0]
id_でよかったっけ?
- exceptで回避できないか
- <table class="grid-look">
<thead class="product-grid-top">
<tr>
<td class="nav prev"> </td>
<td><div class="swatch-option image " option-type="2″ option-id="1346″ option-label="BLACK" option-tooltip-thumb="https://media-www.ec.rs-taichi.com/catalog/product/cache/79cd194851544f88bafc552bf5216e5d/r/s/rsu500tbk01.jpg" option-tooltip-value="https://media-www.ec.rs-taichi.com/catalog/product/cache/455d758771d3747e7d5f3337b2de6a2c/r/s/rsu500tbk01.jpg" option-attr-code="color" style="background:url(https://media-www.ec.rs-taichi.com/catalog/product/cache/455d758771d3747e7d5f3337b2de6a2c/r/s/rsu500tbk01.jpg) no-repeat center; background-size:initial;"></div><div>BLACK</div></td>
<td><div class="swatch-option image " option-type="2″ option-id="1347″ option-label="GRAY" option-tooltip-thumb="https://media-www.ec.rs-taichi.com/catalog/product/cache/79cd194851544f88bafc552bf5216e5d/r/s/rsu500tgy01.jpg" option-tooltip-value="https://media-www.ec.rs-taichi.com/catalog/product/cache/455d758771d3747e7d5f3337b2de6a2c/r/s/rsu500tgy01.jpg" option-attr-code="color" style="background:url(https://media-www.ec.rs-taichi.com/catalog/product/cache/455d758771d3747e7d5f3337b2de6a2c/r/s/rsu500tgy01.jpg) no-repeat center; background-size:initial;"></div><div>GRAY</div></td>
</tr>
</thead>
<tbody id="product-grid" class="product-grid-center">
<tr class="item">
<td>
<div class="swatch-option text " option-type="0″ option-id="1801″ option-label="S" option-tooltip-thumb="" option-tooltip-value="" option-attr-code="size">S</div> </td>
<td class="no-line-height">
<span>在庫有り</span>
</td>
<td class="no-line-height">
<span>在庫有り</span>
</td>
</tr>
<tr class="item">
<td>
<div class="swatch-option text " option-type="0″ option-id="1796″ option-label="M" option-tooltip-thumb="" option-tooltip-value="" option-attr-code="size">M</div> </td>
<td class="no-line-height">
<span>在庫有り</span>
</td>
<td class="no-line-height">
<span>在庫有り</span>
</td>
</tr>
<tr class="item">
<td>
<div class="swatch-option text " option-type="0″ option-id="1795″ option-label="L" option-tooltip-thumb="" option-tooltip-value="" option-attr-code="size">L</div> </td>
<td class="no-line-height">
<span>廃番</span>
</td>
<td class="no-line-height">
<span>在庫有り</span>
</td>
</tr>
<tr class="item">
<td>
<div class="swatch-option text " option-type="0″ option-id="1800″ option-label="XL" option-tooltip-thumb="" option-tooltip-value="" option-attr-code="size">XL</div> </td>
<td class="no-line-height">
<span>在庫有り</span>
</td>
<td class="no-line-height">
<span>在庫有り</span>
</td>
</tr>
</tbody>
</table>
上記のデータと、下記のデータを付け合わせたい。
<table class="item_size" style="margin-left: auto; margin-right: auto;" border="1″>
<tbody>
<tr>
<td class="xl68″ style="text-align: left; font-weight: bold; font-size: 14px;" width="250″ height="24″>商品番号</td>
<td class="xl68″ style="text-align: left; font-weight: bold; font-size: 14px;" width="250″>Color</td>
<td class="xl68″ style="text-align: left; font-weight: bold; font-size: 14px;" width="250″>Size</td>
<td class="xl68″ style="text-align: left; font-weight: bold; font-size: 14px;" width="250″>JanCode</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RSU500BK01L</td>
<td class="xl68″ style="text-align: left;">BLACK</td>
<td class="xl68″ style="text-align: left;">L</td>
<td class="xl68″ style="text-align: left;">4997035046706</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RSU500BK01M</td>
<td class="xl68″ style="text-align: left;">BLACK</td>
<td class="xl68″ style="text-align: left;">M</td>
<td class="xl68″ style="text-align: left;">4997035046713</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RSU500BK01S</td>
<td class="xl68″ style="text-align: left;">BLACK</td>
<td class="xl68″ style="text-align: left;">S</td>
<td class="xl68″ style="text-align: left;">4997035046720</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RSU500BK01XL</td>
<td class="xl68″ style="text-align: left;">BLACK</td>
<td class="xl68″ style="text-align: left;">XL</td>
<td class="xl68″ style="text-align: left;">4997035046737</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RSU500GY01L</td>
<td class="xl68″ style="text-align: left;">GRAY</td>
<td class="xl68″ style="text-align: left;">L</td>
<td class="xl68″ style="text-align: left;">4997035040247</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RSU500GY01M</td>
<td class="xl68″ style="text-align: left;">GRAY</td>
<td class="xl68″ style="text-align: left;">M</td>
<td class="xl68″ style="text-align: left;">4997035040254</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RSU500GY01S</td>
<td class="xl68″ style="text-align: left;">GRAY</td>
<td class="xl68″ style="text-align: left;">S</td>
<td class="xl68″ style="text-align: left;">4997035040261</td>
</tr>
<tr>
<td class="xl68″ style="text-align: left;" height="24″>RSU500GY01XL</td>
<td class="xl68″ style="text-align: left;">GRAY</td>
<td class="xl68″ style="text-align: left;">XL</td>
<td class="xl68″ style="text-align: left;">4997035040278</td>
</tr>
</tbody>
</table>
- 常にtorを起動しておきたい
- import requests
# Tor プロキシの設定
proxies = {
'http’: 'socks5h://127.0.0.1:9050’,
'https’: 'socks5h://127.0.0.1:9050’
}
# リクエストを送信
response = requests.get('http://example.com’, proxies=proxies)
# 応答を表示
print(response.text)
ちなみに、torを使いたくない場合はどうしたらいいの?
- proxies=proxiesのオプションを省略すればいいのか
- User
import requests
# Tor プロキシの設定
proxies = {
'http’: 'socks5h://127.0.0.1:9050’,
'https’: 'socks5h://127.0.0.1:9050’
}
# リクエストを送信
response = requests.get('http://example.com’, proxies=proxies)
# 応答を表示
print(response.text)
現在のIPアドレスを表示できる?
- response = requests.get('https://api.ipify.org’,proxies=proxies)
print(“現在のTOR IPアドレス:", response.text)
こうすればtorが表示される?
- linuxで現在のUbuntuのバージョン確認したい
- Error occurred during Crawl pmc: ('Connection aborted.’, ConnectionResetError(104, 'Connection reset by peer’))
- これは、相手サーバーから切断されたってこと?
- def fetch_product_url(self):
“""_詳細ページのHTML等の取得_
Returns:
df: _DataFrameで現時点URLにいる一覧ページ上のHTML情報を返す_
“""
df = pd.DataFrame()
# for index, i in tqdm(enumerate(self.driver.find_element(By.CLASS_NAME, “productList").find_elements(By.TAG_NAME, “a"))):
for index, i in tqdm(enumerate(self.fetch_product_loop_url_atag()),total=len(self.fetch_product_loop_url_atag())):
try:
self.logger.info(f’detail_url:{i.get_attribute(“href")}’)#現在の詳細ページを追跡
df.at[0, “crawl_site_id"] = self.crawl_site_id
df.at[0, “url"] = i.get_attribute(“href")
try:
df.at[0, “html_content"] = requests.get(i.get_attribute(“href")).text
except:#リトライ面倒の為
pass
df.at[0, “html_sub_content"] = self.fetch_sub_content(i)
df.at[0, “crawl_timestamp"] = timezone.now()
self.update_or_create_crawl_data(df)# クロールデータをテーブルへ書き込み
df = pd.DataFrame()#メモリ解放
sleep(self.sleep_time) #時間待機
except Exception as e:
try:
self.logger.error(f"Error fetching HTML content for URL: {i.get_attribute('href’)}. Error: {e}")
except:
pass
continue
# df = df.drop_duplicates(subset=[“url"])
return df
上記のrequests.get(i.get_attribute(“href")).textの部分だけを、torを使って海外IP経由で取得できる?
- torは毎回アクセスするたびにIPアドレスは変わるの?それとも、時間によって変わるの?
- ここは日本だけど、海外からアクセスしたら、英語でWEBページの情報を取得する可能性もありうる?
- import requests
# Tor プロキシの設定
proxies = {
'http’: 'socks5h://127.0.0.1:9050’,
'https’: 'socks5h://127.0.0.1:9050’
}
# リクエストを送信
response = requests.get('http://example.com’, proxies=proxies)
# 応答を表示
print(response.text)
torの設定をしたい。linux
- root@531a0c7c5e99:/home/NBSystem# service mysql start
mysql: unrecognized service
- root@531a0c7c5e99:/home/NBSystem# ls /etc/init.d/
cron dbus hwclock.sh procps udev x11-common
- root@531a0c7c5e99:/home/NBSystem# service mysql start
* Starting MySQL database server mysqld su: warning: cannot change directory to /nonexistent: No such file or directory
[ OK ]
root@531a0c7c5e99:/home/NBSystem#
- root@531a0c7c5e99:/home/NBSystem# mysql -u nbsystem.cxiyempxoldu.ap-northeast-1.rds.amazonaws.com -p 3306
Enter password:
ERROR 1045 (28000): Access denied for user 'nbsystem.cxiyempxoldu.ap-northeast-1.rds.amazona’@’localhost’ (using password: YES)
- Windows Server 2022 Datacenter Editionってなに
- ピアリングってなに
- パブリックアクセス可能ってなに?
- root@531a0c7c5e99:/home/NBSystem# mysql
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock’ (2)
- root@531a0c7c5e99:/home/NBSystem# systemctl status mysql
System has not been booted with systemd as init system (PID 1). Can’t operate.
Failed to connect to bus: Host is down
- tensorflowは何なの?深層学習用?
- root@531a0c7c5e99:/home/NBSystem# pip install mysqlclient
Collecting mysqlclient
Downloading mysqlclient-2.2.4.tar.gz (90 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 90.4/90.4 kB 2.6 MB/s eta 0:00:00
Installing build dependencies … done
Getting requirements to build wheel … error
error: subprocess-exited-with-error
× Getting requirements to build wheel did not run successfully.
│ exit code: 1
─> [27 lines of output]
/bin/sh: 1: pkg-config: not found
/bin/sh: 1: pkg-config: not found
/bin/sh: 1: pkg-config: not found
Trying pkg-config –exists mysqlclient
Command 'pkg-config –exists mysqlclient’ returned non-zero exit status 127.
Trying pkg-config –exists mariadb
Command 'pkg-config –exists mariadb’ returned non-zero exit status 127.
Trying pkg-config –exists libmariadb
Command 'pkg-config –exists libmariadb’ returned non-zero exit status 127.
Traceback (most recent call last):
File “/usr/local/lib/python3.10/dist-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 353, in <module>
main()
File “/usr/local/lib/python3.10/dist-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 335, in main
json_out['return_val’] = hook(**hook_input['kwargs’])
File “/usr/local/lib/python3.10/dist-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 118, in get_requires_for_build_wheel
return hook(config_settings)
File “/tmp/pip-build-env-bb85zjyc/overlay/local/lib/python3.10/dist-packages/setuptools/build_meta.py", line 325, in get_requires_for_build_wheel
return self._get_build_requires(config_settings, requirements=['wheel’])
File “/tmp/pip-build-env-bb85zjyc/overlay/local/lib/python3.10/dist-packages/setuptools/build_meta.py", line 295, in _get_build_requires
self.run_setup()
File “/tmp/pip-build-env-bb85zjyc/overlay/local/lib/python3.10/dist-packages/setuptools/build_meta.py", line 311, in run_setup
exec(code, locals())
File “<string>", line 155, in <module>
File “<string>", line 49, in get_config_posix
File “<string>", line 28, in find_package_name
Exception: Can not find valid pkg-config name.
Specify MYSQLCLIENT_CFLAGS and MYSQLCLIENT_LDFLAGS env vars manually
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error
× Getting requirements to build wheel did not run successfully.
│ exit code: 1
─> See above for output.
note: This error originates from a subprocess, and is likely not a problem with pip.
- root@531a0c7c5e99:/home/NBSystem# python3 manage.py dbshell
CommandError: You appear not to have the 'mysql’ program installed or on your path.
root@531a0c7c5e99:/home/NBSystem#
- djangoでmysqlへ接続したい。
やり方教えて
- root@531a0c7c5e99:/home/NBSystem# python3 manage.py makemigrations
/usr/local/lib/python3.10/dist-packages/django/core/management/commands/makemigrations.py:105: RuntimeWarning: Got an error checking a consistent migration history performed for database connection 'default’: (2003, “Can’t connect to MySQL server on 'nbsystem.cxiyempxoldu.ap-northeast-1.rds.amazonaws.com:3306’ (110)")
warnings.warn(
No changes detected
- RDSでMYSQLの設定方法
- パブリックアクセスは不可能にしているんだけど
- 平均なんだね
- pythonのreplaceを辞書型でスマートに置換できないかな?
- self.soup(class_="sales")[0].get_text(strip=True).replace(“円(税込)","").replace(“,","")
このreplaceをスマートにした
- self.soup(class_="sales")[0].get_text(strip=True).replace(“円(税込)","").replace(“,","")
辞書型で変数にいれてreplaceしたいの
- 2xを積分すると?
- 関数名にsやvが使われるのはなぜ?何か理由がある?
- dtってなに?
- xの上に横棒の表記ってなに?
- これってなに?小なりイコール?
- ≦この2つはどうちがうの?
- 微分を知る事でなにがいいの?
- データの解析: 統計学や機械学習などのデータ解析の分野では、微分がデータのパターンやトレンドを理解するのに使用されます。データの微分を計算することで、変化の速度や傾向を把握し、データの特性を分析することができます。
くわしく
- バイクの通販で微分って何か役立つ場面あるかな?
- 積分の役割
- 機械学習で積分はどのような役割がある?
- 積分は面積だよね、何に役立つの?
- 機械学習においては?
- self.driver.find_element(By.CLASS_NAME, “list").find_elements(By.TAG_NAME, “a")
このAタグを重複削除してループさせたい
- 「pip list パッケージ名」で、ある特定のパッケージの詳細情報が表示される。
これが誤っている部分はどこ
- デフォルト設定ではユーザーディレクトリの「.python_history」ファイルにヒストリが保存される。ヒストリは対話型インタープリタセッションで利用できる。
このヒストリーのサンプルみせて
- WEB開発って具体的にどういう事?
- tensorflowってなに?
- AIの中に、深層学習と機械学習があるんじゃないの?
- tensorflowでバイクのECでなにかできるかな?
- Eコマース
- TensorflowでバイクのEコマースになにか活用できることあるかな?アイデアちょうだい
- ほかに、なにかECの販促に役立つことないかな
- [i.get(“href")for i in self.soup(class_="productTileList grid grid-pc-x4 grid-tb-x2 grid-sp-x1 crossSell")[0](“a")]
リスト内の重複データを削除したい
- プログラムの開発工程教えて
- global ってなに?nonlocalとはちがうの?
- いつもだと、returnしてグローバル変数を変えていたけど、global変数使った方がいいの?
- random.choiceってなに
- random.sampleってなに
- uniqueって重複するっていう意味?重複しないはなんていうの?
- 対話モードでrandomモジュールを用い以下のような各結果を得たい場合、各コード【A】~【C】に入る正しい組み合わせはどれか。
>>> import random
>>> random.【A】(['apple’, 'pear’, 'banana’])
'apple’
>>> random.【B】(range(10),3)
[3, 7, 5]
>>> random.【C】(5)
4
【A】choice 【B】random 【C】rand
【A】choice 【B】sample 【C】rand
【A】choice 【B】sample 【C】randrange
【A】sample 【B】choice 【C】rand
【A】sample 【B】random 【C】randrange
- nonlocalってなに
- 合わなければ合う郷に入れと?
- コンパイル済みのモジュールはプラットフォーム非依存なので、ひとつのライブラリを異なるアーキテクチャのシステム間で共有できる。
- コンパイルとは
- パッケージとは、「ドット区切モジュール名」を使って、Pythonのモジュールを構築する方法である。
- 発生した例外に値が付随することもあり、これを例外の引数と呼ぶ。except 節では、例外名の後に変数を指定することができる。この変数は例外インスタンスに結び付けられており、instance.args に例外インスタンス生成時の引数が格納される。
- 次の実行結果を得たい場合、コードの【A】【B】【C】に入る組み合わせとして適切なものはどれか。
[ 実行結果 ]
David is a
strategic
AI
[コード]
class wexal(Exception):
pass
name = 'David’
def func(name: int):
try:
if name != 0:
raise_his_character(name)
except wexal:
print('【A】’)
raise Exception
def raise_his_character(a):
print(a, '【B】’)
raise wexal
print('【C】’)
try:
func(name)
except Exception:
print('【D】’)
【A】strategic 【B】is a 【C】naughty boy 【D】AI
【A】is a 【B】strategic 【C】naughty boy 【D】AI
【A】strategic 【B】is a 【C】AI 【D】naughty boy
【A】naughty boy 【B】is a 【C】strategic 【D】AI
【A】AI 【B】strategic 【C】is a 【D】naughty boy
- func(name: int)
とint型を指定されているのに、Davidを渡せるのはなぜ?
- docstringを表示するには?
- 次の実行結果を得たい場合に、コードの2行目(★印の行)を代替するものとして正しいものはどれか。
[実行結果]
[(1, 4, 8), (3, 9, 27), (5, 25, 125)]
[コード]
matrix = [[1, 3, 5], [4, 9, 25], [8, 27, 125]]
power = [[row[i] for row in matrix] for i in range(3)] ★
print(power)
power = list(zip(*matrix))
power = list(sum(*matrix))
power = list(zip(matrix))
power = set(sum(*matrix))
- combs = [[a,b] for a in [3,2,5] for b in [1,2,3] if a = b]
[]内の計算される順番解説して
- ディクショナリに対する帰属性判定演算子「in」「not in」による判定において、「含まれるかどうか」の判定の対象は「キー」ではなく「値」である。
これが間違っている箇所は
- 'Matplotlib’ > 'NumPy’ > 'pandas’ > 'scikit-learn’
なぜこれはFalseになるの?
- 郷にいては郷に従え
- 多次元配列って、2次元以上?
- numpyとセットでつかうライブラリってあるの?
- SciPyって?
- docstringの1行目は、常にオブジェクトの目的の短く簡潔な要約を記述し、大文字で始まりピリオドで終わる行とすべきである。
- 何で以下になるの?計算過程を教えて
行列の乗算:
[[19 22]
[43 50]]
- 行列の乗算をして何かいいことあるの?
- numpyで扱うのは、基本数値なの?
- numpyで良く使う処理ってどんなのがあるの?
- 配列の比較と論理演算: 配列の要素ごとの比較や論理演算を行うことができます。
ファイルの入出力: テキストファイルやバイナリファイルからデータを読み込み、配列をファイルに書き込むことができます。
この2つ教えて
- pandasで3次元配列とかつかえるの?
- 底の記載がない場合は、底は10とかんがえたらいいの?それともネイぴあ数?
- # 各要素の自然対数
log_arr = np.log(arr)
これはなに
- np.exp(arr)
これはなに、具体的に
- # 行列の加算
matrix_addition = np.add(arr1, arr2)
# 行列の乗算
matrix_multiplication = np.dot(matrix1, matrix2)
これについて解説して
- 具体例希望
- 乗算ってなに
- import numpy as np
# 2つの行列を定義
matrix1 = np.array([[1, 2],
[3, 4]])
matrix2 = np.array([[5, 6],
[7, 8]])
# 行列の乗算
matrix_multiplication = np.dot(matrix1, matrix2)
print(“行列の乗算:")
print(matrix_multiplication)
これがわからん
- array([[ 1, 2, 3, 4, 5],
[ 6, 7, 8, 9, 10],
[11, 12, 13, 14, 15]])
np.exp(arr)
これはなに
- 指数関数は、ネイピア数(e 2.71828)を底とする指数関数
これの指数関数ってどういうメリットがあるの?使い道は?
- ネイピア数ってなに
- # 転置
transposed_arr = arr.T
これはなに?
- arr.reshape(2, 3)
これはなに?
- # インデックスとスライスの同時利用
index_slice_arr = arr[1, 3:5]
これはどういう意味?
- 具体的なサンプルコード頂戴
- arr.ndim
ndimの略は?
- シグモイド関数みたいな感じ?
- 一様分布って?
- shape = arr.shape
これは、要素の数?
- pandasで読み込んでnumpyに変換できる?
- numpyのチートシート
- random_arr = np.random.rand(3, 3)
これは、0~1の間でランダムな数値を表示するの?
- numpy使わなくてもPandasでいいんじゃない?
- 具体的にどんな処理をするのnumpyで
- 機械学習でnumpyはどう利点がある?
- セキュリティ警告を無効にしたい
- これから機械学習を本格的にしていこうと思うんだけど、なにをしたらいいかな
- Scikit-learn、TensorFlowの違いってなに?
- 高度なモデルの開発ってなに?
- numpyって何に使う?
- csvを読み込むこともできるの?
- bashで
- (venv) ec-server@ecserver:/home/share/jenkins_build$ python3 Jenkins_buld.py
メッセージが送信されました。
Traceback (most recent call last):
File “Jenkins_buld.py", line 68, in <module>
driver = webdriver.Chrome(options=chrome_options)
File “/home/share/jenkins_build/venv/lib/python3.8/site-packages/selenium/webdriver/chrome/webdriver.py", line 45, in __init__
super().__init__(
File “/home/share/jenkins_build/venv/lib/python3.8/site-packages/selenium/webdriver/chromium/webdriver.py", line 61, in __init__
super().__init__(command_executor=executor, options=options)
File “/home/share/jenkins_build/venv/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 209, in __init__
self.start_session(capabilities)
File “/home/share/jenkins_build/venv/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 293, in start_session
response = self.execute(Command.NEW_SESSION, caps)[“value"]
File “/home/share/jenkins_build/venv/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 348, in execute
self.error_handler.check_response(response)
File “/home/share/jenkins_build/venv/lib/python3.8/site-packages/selenium/webdriver/remote/errorhandler.py", line 229, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.SessionNotCreatedException: Message: session not created: Chrome failed to start: exited normally.
(session not created: DevToolsActivePort file doesn’t exist)
(The process started from chrome location /home/ec-server/.cache/selenium/chrome/linux64/123.0.6312.86/chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
Stacktrace:
#0 0x55fe444e88a3 <unknown>
#1 0x55fe441de8c6 <unknown>
#2 0x55fe44212d34 <unknown>
#3 0x55fe4420ed3d <unknown>
#4 0x55fe44257aed <unknown>
#5 0x55fe4424b343 <unknown>
#6 0x55fe4421c593 <unknown>
#7 0x55fe4421cf5e <unknown>
#8 0x55fe444ac88b <unknown>
#9 0x55fe444b07e5 <unknown>
#10 0x55fe4449a5b1 <unknown>
#11 0x55fe444b1372 <unknown>
#12 0x55fe4447f8bf <unknown>
#13 0x55fe444d7768 <unknown>
#14 0x55fe444d793b <unknown>
#15 0x55fe444e79f4 <unknown>
#16 0x7f6fe2f2a609 start_thread
- Traceback (most recent call last):
File “Jenkins_buld.py", line 68, in <module>
driver = webdriver.Chrome(options=chrome_options)
File “/home/share/jenkins_build/venv/lib/python3.8/site-packages/selenium/webdriver/chrome/webdriver.py", line 45, in __init__
super().__init__(
File “/home/share/jenkins_build/venv/lib/python3.8/site-packages/selenium/webdriver/chromium/webdriver.py", line 61, in __init__
super().__init__(command_executor=executor, options=options)
File “/home/share/jenkins_build/venv/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 209, in __init__
self.start_session(capabilities)
File “/home/share/jenkins_build/venv/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 293, in start_session
response = self.execute(Command.NEW_SESSION, caps)[“value"]
File “/home/share/jenkins_build/venv/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 348, in execute
self.error_handler.check_response(response)
File “/home/share/jenkins_build/venv/lib/python3.8/site-packages/selenium/webdriver/remote/errorhandler.py", line 229, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.SessionNotCreatedException: Message: session not created: Chrome failed to start: exited normally.
(session not created: DevToolsActivePort file doesn’t exist)
(The process started from chrome location google-chrome-stable is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
Stacktrace:
#0 0x55a62db66f83 <unknown>
#1 0x55a62d81fcf7 <unknown>
#2 0x55a62d85760e <unknown>
#3 0x55a62d85426e <unknown>
#4 0x55a62d8a480c <unknown>
#5 0x55a62d898e53 <unknown>
#6 0x55a62d860dd4 <unknown>
#7 0x55a62d8621de <unknown>
#8 0x55a62db2b531 <unknown>
#9 0x55a62db2f455 <unknown>
#10 0x55a62db17f55 <unknown>
#11 0x55a62db300ef <unknown>
#12 0x55a62dafb99f <unknown>
#13 0x55a62db54008 <unknown>
#14 0x55a62db541d7 <unknown>
#15 0x55a62db66124 <unknown>
#16 0x7f64a7c68609 start_thread
- print(driver.page_source())
- 保護されていない通信とブラウザに表示されていて、証明書が無効だと、表示されている。
これだと、seleniumは上手く動作しないのかな
- <div class="app-sign-in-register__content-inner"><h1>Sign in to Jenkins</h1><form method="post" name="login" action="j_spring_security_check"><div><label class="app-sign-in-register__form-label" for="j_username">ユーザー名</label><input autocorrect="off" autocomplete="off" name="j_username" id="j_username" type="text" autofocus="autofocus" class="jenkins-input " autocapitalize="off"></div><div><label class="app-sign-in-register__form-label" for="j_password">パスワード</label><input name="j_password" id="j_password" type="password" class="jenkins-input “></div><div class="jenkins-checkbox"><input type="checkbox" id="remember_me" name="remember_me"><label for="remember_me">サインインしたままにする</label></div><input name="from" type="hidden" value="/"><button type="submit" name="Submit" class="jenkins-button jenkins-button–primary">サインイン</button></form><div class="footer"></div></div>
要素あってるよね?
- —————————————————————————
AttributeError Traceback (most recent call last)
File ~anaconda3libsite-packagesseleniumwebdrivercommondriver_finder.py:38, in DriverFinder.get_path(service, options)
37 try:
—> 38 path = SeleniumManager().driver_location(options) if path is None else path
39 except Exception as err:
File ~anaconda3libsite-packagesseleniumwebdrivercommonselenium_manager.py:87, in SeleniumManager.driver_location(self, options)
80 “""Determines the path of the correct driver.
81
82 :Args:
83 – browser: which browser to get the driver path for.
84 :Returns: The driver path to use
85 “""
—> 87 browser = options.capabilities[“browserName"]
89 args = [str(self.get_binary()), “–browser", browser]
AttributeError: 'str’ object has no attribute 'capabilities’
During handling of the above exception, another exception occurred:
AttributeError Traceback (most recent call last)
Cell In[167], line 14
8 chrome_options.add_argument(“–headless") # headlessモードを有効にする
9 # ChromeDriverのパスを取得
10 # chrome_driver_path = ChromeDriverManager().install()
11
12 # ChromeDriverを起動
13 # driver = webdriver.Chrome(options=chrome_options)
—> 14 driver = webdriver.Chrome(ChromeDriverManager().install())
15 # options = webdriver.ChromeOptions()
16 # options.add_argument(“–headless") # ヘッドレスモードでChromeを起動する場合
17 # driver = webdriver.Chrome(ChromeDriverManager().install())
18
19
20 # ログイン
21 login(driver,login_url,login_id,login_pass)
File ~anaconda3libsite-packagesseleniumwebdriverchromewebdriver.py:45, in WebDriver.__init__(self, options, service, keep_alive)
42 service = service if service else Service()
43 options = options if options else Options()
—> 45 super().__init__(
46 browser_name=DesiredCapabilities.CHROME[“browserName"],
47 vendor_prefix="goog",
48 options=options,
49 service=service,
50 keep_alive=keep_alive,
51 )
File ~anaconda3libsite-packagesseleniumwebdriverchromiumwebdriver.py:49, in ChromiumDriver.__init__(self, browser_name, vendor_prefix, options, service, keep_alive)
37 “""Creates a new WebDriver instance of the ChromiumDriver. Starts the
38 service and then creates new WebDriver instance of ChromiumDriver.
39
(…)
45 – keep_alive – Whether to configure ChromiumRemoteConnection to use HTTP keep-alive.
46 “""
47 self.service = service
—> 49 self.service.path = DriverFinder.get_path(self.service, options)
50 self.service.start()
52 executor = ChromiumRemoteConnection(
53 remote_server_addr=self.service.service_url,
54 browser_name=browser_name,
(…)
57 ignore_proxy=options._ignore_local_proxy,
58 )
File ~anaconda3libsite-packagesseleniumwebdrivercommondriver_finder.py:40, in DriverFinder.get_path(service, options)
38 path = SeleniumManager().driver_location(options) if path is None else path
39 except Exception as err:
—> 40 msg = f"Unable to obtain driver for {options.capabilities['browserName’]} using Selenium Manager."
41 raise NoSuchDriverException(msg) from err
43 if path is None or not Path(path).is_file():
AttributeError: 'str’ object has no attribute 'capabilities’
- driver = webdriver.Chrome(ChromeDriverManager().install())
これをつかいたい
- from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
# ChromeDriverをインストールしてWebDriverを設定
driver = webdriver.Chrome(ChromeDriverManager().install())
- —————————————————————————
AttributeError Traceback (most recent call last)
File ~anaconda3libsite-packagesseleniumwebdrivercommondriver_finder.py:38, in DriverFinder.get_path(service, options)
37 try:
—> 38 path = SeleniumManager().driver_location(options) if path is None else path
39 except Exception as err:
File ~anaconda3libsite-packagesseleniumwebdrivercommonselenium_manager.py:87, in SeleniumManager.driver_location(self, options)
80 “""Determines the path of the correct driver.
81
82 :Args:
83 – browser: which browser to get the driver path for.
84 :Returns: The driver path to use
85 “""
—> 87 browser = options.capabilities[“browserName"]
89 args = [str(self.get_binary()), “–browser", browser]
AttributeError: 'str’ object has no attribute 'capabilities’
During handling of the above exception, another exception occurred:
AttributeError Traceback (most recent call last)
Cell In[1], line 5
2 from webdriver_manager.chrome import ChromeDriverManager
4 # ChromeDriverをインストールしてWebDriverを設定
—-> 5 driver = webdriver.Chrome(ChromeDriverManager().install())
File ~anaconda3libsite-packagesseleniumwebdriverchromewebdriver.py:45, in WebDriver.__init__(self, options, service, keep_alive)
42 service = service if service else Service()
43 options = options if options else Options()
—> 45 super().__init__(
46 browser_name=DesiredCapabilities.CHROME[“browserName"],
47 vendor_prefix="goog",
48 options=options,
49 service=service,
50 keep_alive=keep_alive,
51 )
File ~anaconda3libsite-packagesseleniumwebdriverchromiumwebdriver.py:49, in ChromiumDriver.__init__(self, browser_name, vendor_prefix, options, service, keep_alive)
37 “""Creates a new WebDriver instance of the ChromiumDriver. Starts the
38 service and then creates new WebDriver instance of ChromiumDriver.
39
(…)
45 – keep_alive – Whether to configure ChromiumRemoteConnection to use HTTP keep-alive.
46 “""
47 self.service = service
—> 49 self.service.path = DriverFinder.get_path(self.service, options)
50 self.service.start()
52 executor = ChromiumRemoteConnection(
53 remote_server_addr=self.service.service_url,
54 browser_name=browser_name,
(…)
57 ignore_proxy=options._ignore_local_proxy,
58 )
File ~anaconda3libsite-packagesseleniumwebdrivercommondriver_finder.py:40, in DriverFinder.get_path(service, options)
38 path = SeleniumManager().driver_location(options) if path is None else path
39 except Exception as err:
—> 40 msg = f"Unable to obtain driver for {options.capabilities['browserName’]} using Selenium Manager."
41 raise NoSuchDriverException(msg) from err
43 if path is None or not Path(path).is_file():
AttributeError: 'str’ object has no attribute 'capabilities’
- ファイルをコピーしたい
- サーバーレス データ ウェアハウスってなに
- GoogleのBigqueryってなに
- ChromeDriverManager().install()
これつかってseleniumを起動させたい
- Traceback (most recent call last):
File “Jenkins_buld.py", line 68, in <module>
driver = webdriver.Chrome(ChromeDriverManager().install())
File “/home/share/jenkins_build/venv/lib/python3.8/site-packages/selenium/webdriver/chrome/webdriver.py", line 45, in __init__
super().__init__(
File “/home/share/jenkins_build/venv/lib/python3.8/site-packages/selenium/webdriver/chromium/webdriver.py", line 49, in __init__
self.service.path = DriverFinder.get_path(self.service, options)
File “/home/share/jenkins_build/venv/lib/python3.8/site-packages/selenium/webdriver/common/driver_finder.py", line 40, in get_path
msg = f"Unable to obtain driver for {options.capabilities['browserName’]} using Selenium Manager."
AttributeError: 'str’ object has no attribute 'capabilities’
- (venv) ec-server@ecserver:/home/share/jenkins_build$ python3 Jenkins_buld.py
メッセージが送信されました。
Traceback (most recent call last):
File “Jenkins_buld.py", line 75, in <module>
login(driver,login_url,login_id,login_pass)
File “Jenkins_buld.py", line 24, in login
driver.find_element(By.ID,"j_username").clear()
File “/home/share/jenkins_build/venv/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 742, in find_element
return self.execute(Command.FIND_ELEMENT, {“using": by, “value": value})[“value"]
File “/home/share/jenkins_build/venv/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 348, in execute
self.error_handler.check_response(response)
File “/home/share/jenkins_build/venv/lib/python3.8/site-packages/selenium/webdriver/remote/errorhandler.py", line 229, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {“method":"css selector","selector":"[id="j_username"]"}
(Session info: chrome-headless-shell=120.0.6099.216); For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#no-such-element-exception
Stacktrace:
#0 0x55bdca6a3f83 <unknown>
#1 0x55bdca35ccf7 <unknown>
#2 0x55bdca3ac99e <unknown>
#3 0x55bdca3acaa1 <unknown>
#4 0x55bdca3f7d64 <unknown>
#5 0x55bdca3d60dd <unknown>
#6 0x55bdca3f5006 <unknown>
#7 0x55bdca3d5e53 <unknown>
#8 0x55bdca39ddd4 <unknown>
#9 0x55bdca39f1de <unknown>
#10 0x55bdca668531 <unknown>
#11 0x55bdca66c455 <unknown>
#12 0x55bdca654f55 <unknown>
#13 0x55bdca66d0ef <unknown>
#14 0x55bdca63899f <unknown>
#15 0x55bdca691008 <unknown>
#16 0x55bdca6911d7 <unknown>
#17 0x55bdca6a3124 <unknown>
#18 0x7fd740016609 start_thread
- メッセージが送信されました。
Traceback (most recent call last):
File “Jenkins_buld.py", line 75, in <module>
login(driver,login_url,login_id,login_pass)
File “Jenkins_buld.py", line 24, in login
driver.find_element(By.ID,"j_username").clear()
File “/home/share/jenkins_build/venv/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 742, in find_element
return self.execute(Command.FIND_ELEMENT, {“using": by, “value": value})[“value"]
File “/home/share/jenkins_build/venv/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 348, in execute
self.error_handler.check_response(response)
File “/home/share/jenkins_build/venv/lib/python3.8/site-packages/selenium/webdriver/remote/errorhandler.py", line 229, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {“method":"css selector","selector":"[id="j_username"]"}
(Session info: chrome-headless-shell=120.0.6099.216); For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#no-such-element-exception
Stacktrace:
#0 0x55a0d4cf5f83 <unknown>
- def login(driver,login_url,login_id,login_pass):
driver.get(login_url)
sleep(5)
driver.find_element(By.ID,"j_username").clear()
sleep(2)
driver.find_element(By.ID,"j_username").send_keys(login_id)#ログインIDを入力
sleep(2)
driver.find_element(By.ID,"j_password").clear()
sleep(2)
driver.find_element(By.ID,"j_password").send_keys(login_pass)#ログインPASSを入力
sleep(2)
driver.find_element(By.CLASS_NAME,"jenkins-button").click()
- 情報利得の不純度とは
- ジニ不純度について詳しく
- 在庫管理がサポートベクターマシンを使えるのはなぜ?二値分類ではなくない?在庫が10個必要な時もあれば100個必要なときもある。月間の販売個数は異なると思うが
- SVCやLightGBMやランダムフォレスト、使い分けが分からないんだ
- 離反とは
- 線形分離とは
- 線形分離より、非線形分離のほうが優位性があるのでは?
- 例えば、梱包サイズを推測するモデルは、線形分離を使った方がいいと思う?
- 線形分離は、二値分類にしか対応していないの?
- 梱包サイズは、60サイズ、80サイズ、100サイズ・・・200サイズと、多くの分類がある。これをサポートベクターマシンで振り分ける事は可能なのか
- 多クラス分類とは
- 多クラス分類の対義語は?
- Eコマースでサポートベクターマシンを使ってなにかできる?
- fontdictの使い方
- サブプロットとプロットの違い
- カーセンサーって知ってる?
- あれのデータでAIをつくるとしたら、何が作れると思う?
- ロバストってなに
- 標準偏差と分散を英語で
- 枠線を変えたい
- textメソッドを使ってテキストを入れたい
- ha=’center’, va=’center’
これは、center以外にもある?
- サブプロットもしたい
- matplotlib.style
- セーブしたい
- import matplotlib.pyplot as plt
# スタイルを設定
plt.style.use('ggplot’)
# データを定義
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
# サブプロットを作成
fig, ax = plt.subplots()
# 折れ線グラフをプロット
ax.plot(x, y, marker=’o’, linestyle=’-', color=’b’, label=’Data’)
# サブプロットにタイトルと軸ラベルを追加
ax.set_title('Sample Line Plot’)
ax.set_xlabel('X-axis’)
ax.set_ylabel('Y-axis’)
# 凡例を表示
ax.legend()
# グリッドを表示
ax.grid(True)
# グラフを表示
plt.show()
plt.savefig(“tmp_plot.jpg")
これじゃだめ?エクスポートされるけど、データが表示されない
- 折れ線でlinewidthを指定したい
- タイトルのフォントファミリーを指定したい
- 背景色を変えたい
- np.random.randint(1, 31, 365)
- import numpy as np
import pandas as pd
np.random.seed(123)
dates = pd.date_range(start=" 2017-04-01″, periods=365)
df = pd.DataFrame(np.random.randint(1, 31, 365), index=dates, columns=[“rand"])
df
df_year = pd.DataFrame(df.groupby(pd.Grouper(freq="W-SAT")).sum(), columns=[“rand"])
- matplotlib.styleとは
- matplotlibのサンプルコード頂戴
- styleを指定した
- random.seedってなに
- つまりどういうこと?
- なるほど、seedを指定しなかったら、常にことなる数値が生成される?
- pd.data_rangeってなに
- to_htmlは?
- int8, int16, int32, int64と沢山のint型があるが、何も指定しなければどうなるの?
- np.eyeってなに
- np.fullってなに
- npのhstackってなに
- concatみたいなものか
- read_htmlってなに?
- テーブルを読み込むの?
- それを、tensorflowでも実現できる?
- シンプルなPythonのソースコードおしえてtensorflowの
- Epoch 1/100
—————————————————————————
ValueError Traceback (most recent call last)
Cell In[157], line 47
44 model.compile(optimizer=’adam’, loss=’sparse_categorical_crossentropy’, metrics=['accuracy’])
46 # モデルのトレーニング
—> 47 model.fit([question_sequences, answer_sequences[:, :-1]], answer_sequences[:, 1:], epochs=100)
49 # モデルの保存
50 model.save(“qa_model")
File ~anaconda3libsite-packageskerasutilstraceback_utils.py:70, in filter_traceback.<locals>.error_handler(*args, **kwargs)
67 filtered_tb = _process_traceback_frames(e.__traceback__)
68 # To get the full stack trace, call:
69 # `tf.debugging.disable_traceback_filtering()`
—> 70 raise e.with_traceback(filtered_tb) from None
71 finally:
72 del filtered_tb
File ~AppDataLocalTemp__autograph_generated_file4r8nvhy_.py:15, in outer_factory.<locals>.inner_factory.<locals>.tf__train_function(iterator)
13 try:
14 do_return = True
—> 15 retval_ = ag__.converted_call(ag__.ld(step_function), (ag__.ld(self), ag__.ld(iterator)), None, fscope)
16 except:
17 do_return = False
ValueError: in user code:
File “C:Usersdell25anaconda3libsite-packageskerasenginetraining.py", line 1284, in train_function *
return step_function(self, iterator)
File “C:Usersdell25anaconda3libsite-packageskerasenginetraining.py", line 1268, in step_function **
outputs = model.distribute_strategy.run(run_step, args=(data,))
File “C:Usersdell25anaconda3libsite-packageskerasenginetraining.py", line 1249, in run_step **
outputs = model.train_step(data)
File “C:Usersdell25anaconda3libsite-packageskerasenginetraining.py", line 1050, in train_step
y_pred = self(x, training=True)
File “C:Usersdell25anaconda3libsite-packageskerasutilstraceback_utils.py", line 70, in error_handler
raise e.with_traceback(filtered_tb) from None
File “C:Usersdell25anaconda3libsite-packageskerasengineinput_spec.py", line 298, in assert_input_compatibility
raise ValueError(
ValueError: Input 1 of layer “model_6" is incompatible with the layer: expected shape=(None, 5), found shape=(None, 4)
- Epoch 1/100
—————————————————————————
ValueError Traceback (most recent call last)
Cell In[158], line 48
44 model.compile(optimizer=’adam’, loss=’sparse_categorical_crossentropy’, metrics=['accuracy’])
46 # モデルのトレーニング
47 # model.fit([question_sequences, answer_sequences[:, :-1]], answer_sequences[:, 1:], epochs=100)
—> 48 model.fit([question_sequences, answer_sequences[:, :-1]], answer_sequences[:, 1:], epochs=100)
51 # モデルの保存
52 model.save(“qa_model")
File ~anaconda3libsite-packageskerasutilstraceback_utils.py:70, in filter_traceback.<locals>.error_handler(*args, **kwargs)
67 filtered_tb = _process_traceback_frames(e.__traceback__)
68 # To get the full stack trace, call:
69 # `tf.debugging.disable_traceback_filtering()`
—> 70 raise e.with_traceback(filtered_tb) from None
71 finally:
72 del filtered_tb
File ~AppDataLocalTemp__autograph_generated_file4r8nvhy_.py:15, in outer_factory.<locals>.inner_factory.<locals>.tf__train_function(iterator)
13 try:
14 do_return = True
—> 15 retval_ = ag__.converted_call(ag__.ld(step_function), (ag__.ld(self), ag__.ld(iterator)), None, fscope)
16 except:
17 do_return = False
ValueError: in user code:
File “C:Usersdell25anaconda3libsite-packageskerasenginetraining.py", line 1284, in train_function *
return step_function(self, iterator)
File “C:Usersdell25anaconda3libsite-packageskerasenginetraining.py", line 1268, in step_function **
outputs = model.distribute_strategy.run(run_step, args=(data,))
File “C:Usersdell25anaconda3libsite-packageskerasenginetraining.py", line 1249, in run_step **
outputs = model.train_step(data)
File “C:Usersdell25anaconda3libsite-packageskerasenginetraining.py", line 1050, in train_step
y_pred = self(x, training=True)
File “C:Usersdell25anaconda3libsite-packageskerasutilstraceback_utils.py", line 70, in error_handler
raise e.with_traceback(filtered_tb) from None
File “C:Usersdell25anaconda3libsite-packageskerasengineinput_spec.py", line 298, in assert_input_compatibility
raise ValueError(
ValueError: Input 1 of layer “model_7" is incompatible with the layer: expected shape=(None, 5), found shape=(None, 4)
- 変わっていないってば、先の回答と見比べてみて
- numpyの型を教えて
- ndarrayやmatrixは?
- numpyのravelとflattenについて
- 例えば、学習させていない事を質問したらどうなるの?
- Epoch 1/100
—————————————————————————
ValueError Traceback (most recent call last)
Cell In[147], line 47
44 model.compile(optimizer=’adam’, loss=’sparse_categorical_crossentropy’, metrics=['accuracy’])
46 # モデルのトレーニング
—> 47 model.fit([question_sequences, answer_sequences[:, :-1]], answer_sequences[:, 1:], epochs=100)
49 # モデルの保存
50 model.save(“qa_model")
File ~anaconda3libsite-packageskerasutilstraceback_utils.py:70, in filter_traceback.<locals>.error_handler(*args, **kwargs)
67 filtered_tb = _process_traceback_frames(e.__traceback__)
68 # To get the full stack trace, call:
69 # `tf.debugging.disable_traceback_filtering()`
—> 70 raise e.with_traceback(filtered_tb) from None
71 finally:
72 del filtered_tb
File ~AppDataLocalTemp__autograph_generated_file4r8nvhy_.py:15, in outer_factory.<locals>.inner_factory.<locals>.tf__train_function(iterator)
13 try:
14 do_return = True
—> 15 retval_ = ag__.converted_call(ag__.ld(step_function), (ag__.ld(self), ag__.ld(iterator)), None, fscope)
16 except:
17 do_return = False
ValueError: in user code:
File “C:Usersdell25anaconda3libsite-packageskerasenginetraining.py", line 1284, in train_function *
return step_function(self, iterator)
File “C:Usersdell25anaconda3libsite-packageskerasenginetraining.py", line 1268, in step_function **
outputs = model.distribute_strategy.run(run_step, args=(data,))
File “C:Usersdell25anaconda3libsite-packageskerasenginetraining.py", line 1249, in run_step **
outputs = model.train_step(data)
File “C:Usersdell25anaconda3libsite-packageskerasenginetraining.py", line 1050, in train_step
y_pred = self(x, training=True)
File “C:Usersdell25anaconda3libsite-packageskerasutilstraceback_utils.py", line 70, in error_handler
raise e.with_traceback(filtered_tb) from None
File “C:Usersdell25anaconda3libsite-packageskerasengineinput_spec.py", line 298, in assert_input_compatibility
raise ValueError(
ValueError: Input 1 of layer “model" is incompatible with the layer: expected shape=(None, 5), found shape=(None, 4)
- import numpy as np
import tensorflow as tf
from tensorflow.keras.preprocessing.text import Tokenizer
from tensorflow.keras.preprocessing.sequence import pad_sequences
# 質問とその答えのペアのデータセット
questions = [“What is your name?", “How old are you?", “What is your favorite color?"]
answers = [“My name is ChatGPT.", “I am 5 years old.", “My favorite color is blue."]
# Tokenizerの準備
tokenizer = Tokenizer()
tokenizer.fit_on_texts(questions + answers)
# データを数値シーケンスに変換
question_sequences = tokenizer.texts_to_sequences(questions)
answer_sequences = tokenizer.texts_to_sequences(answers)
# パディング
maxlen = max(max(len(seq) for seq in question_sequences), max(len(seq) for seq in answer_sequences))
question_sequences = pad_sequences(question_sequences, padding=’post’, maxlen=maxlen)
answer_sequences = pad_sequences(answer_sequences, padding=’post’, maxlen=maxlen)
# モデルの構築
vocab_size = len(tokenizer.word_index) + 1
embedding_dim = 128
units = 256
encoder_inputs = tf.keras.layers.Input(shape=(maxlen,))
encoder_embedding = tf.keras.layers.Embedding(vocab_size, embedding_dim, mask_zero=True)(encoder_inputs)
encoder_outputs, state_h, state_c = tf.keras.layers.LSTM(units, return_state=True)(encoder_embedding)
encoder_states = [state_h, state_c]
decoder_inputs = tf.keras.layers.Input(shape=(maxlen,))
decoder_embedding = tf.keras.layers.Embedding(vocab_size, embedding_dim, mask_zero=True)(decoder_inputs)
decoder_lstm = tf.keras.layers.LSTM(units, return_sequences=True, return_state=True)
decoder_outputs, _, _ = decoder_lstm(decoder_embedding, initial_state=encoder_states)
decoder_dense = tf.keras.layers.Dense(vocab_size, activation=’softmax’)
decoder_outputs = decoder_dense(decoder_outputs)
# モデルの定義
model = tf.keras.models.Model([encoder_inputs, decoder_inputs], decoder_outputs)
# モデルのコンパイル
model.compile(optimizer=’adam’, loss=’sparse_categorical_crossentropy’, metrics=['accuracy’])
# モデルのトレーニング
model.fit([question_sequences, answer_sequences[:, :-1]], answer_sequences[:, 1:], epochs=100)
# モデルの保存
model.save(“qa_model")
- チャットGPTは、学習データが膨大にあるから、適切な答えをだせてるの?
- 文章生成AIに興味がありまくる、Pythonでできる?
- APIだとお金かかるでしょ?無料なのでいうとなにがある?
- NLTKとは
- 質問したら答えるような文章生成AIをPythonで無料で作りたいんだ。
- TensorFlowをつかったサンプルコード頂戴
- このqa_modelをつかうにはどうしたらいいの?
- 暗算のコツ
- array([[ 1, 2, 3, 4, 5],
[ 6, 7, 8, 9, 10],
[11, 12, 13, 14, 15]])
このarrayの標準偏差は4.320。これは、どういう事を示唆している?
- 4.3という数値は、いいの?
- いい、悪いが分からないのに、標準偏差を出す理由があるの?
- 線形写像ってなに
- どうしたらいい?
- excelの区切り位置で、セル内の改行を指定したい
- B2CとB2Bってなんて表現するの?業態?
- 正確度、適合度、再現度について一言で
- ndarraytってなに
- 勾配ブースティングの種類
- CatBoost LightGBM XGBoost これらの使い分け
- CatBoost LightGBM XGBoostは、回帰と分類ができるの?
- 分類は、二値分類も多クラス分類も可能?
- 最後に、回帰と分類についてまとめて
- 次にクラスタリングについて教えて
- クラスタリングしてなにがいいの?
- クラスタリングは、回帰や分類のデータセットに対して認識するにも使える?
- クラスタリング単体で、仕事の依頼は来るものなのか?
- データサイエンティストと機械学習エンジニアの違い
- AIエンジニアと機械学習エンジニアはちがうの?
- モデルの評価について教えて
- 決定木やロジスティック回帰には、ハイパーパラメータはないの?
- なるほど、となるとランダムフォレストが簡単で精度もそこそこ高いのかな
- 多クラス分類におすすめのアルゴリズム
- 分類はもういいや、回帰のアルゴリズムについて教えて
- 勾配ブースティングの回帰はある?
- 勾配ブースティングの回帰には、どんなアルゴリズムがあるの?
- ニューラルネットワークも回帰できる?
- 主成分分析は、次元削減とどう違うの?
- 次元削減しなくてもいいのでは?
- 計算効率の向上:
とあるが、これは、モデルを開発する際?それとも運用する際の話?
- サポートベクターマシンとかで二値分類するときとかの評価に使えるって事かな?
- 二値分類は、サポートベクターマシンが主流なの?ほかにある?
- 二値分類する際の上記のアルゴリズムの使い分けが分からない
- そうみると、勾配ブースティングを使えばいい気がするけど
- ハイパーパラメータの調整が難しいアルゴリズム順に教えて
- 自然言語処理:
問題: テキストの意味を理解し、翻訳、要約、感情分析などのタスクを実行する。
アプローチ: リカレントニューラルネットワーク(RNN)、長短期記憶(LSTM)、トランスフォーマーなどのモデルを使用。
これは、バイクECで何か使えるかな
- 製品レビューの分析:
ユーザーが商品に関するレビューを投稿する場合、そのレビューを感情分析して、肯定的なレビューと否定的なレビューを区別することができます。これにより、顧客の意見や好みを理解し、製品の改善点を特定することができます。
サンプルコード
- 深層学習でおねがい
- 製品レビューの分析:
ユーザーが商品に関するレビューを投稿する場合、そのレビューを感情分析して、肯定的なレビューと否定的なレビューを区別することができます。これにより、顧客の意見や好みを理解し、製品の改善点を特定することができます。
これを深層学習でPython
- LSTM(Long Short-Term Memory)というリカレントニューラルネットワーク(RNN)なにこれ?
- 商品の説明の自動生成:
商品ページに掲載される製品の説明や特徴を自動的に生成します。これにより、商品の説明を効率的に作成し、顧客にとって魅力的な情報を提供することができます。
これをpythonの深層学習でサンプルコード頂戴
- Pythonで機械学習をする流れを教えて。
アルゴリズムを選定したり、交互検証したり、評価したり、運用したりとか。
- 上記の中で、ジニ不純度は、モデルの評価に該当するの?
- 決定木を使った方が良い場合はなに?
- 特徴量のスケーリングってなに?
- 正規化つかわないで、標準化使っとけばいいんじゃないの?
- 深層学習を使ってなにかモデルを作りたい
- 画像分類をCNNを使ってしたいpython
- keras.datasets.cifar10.load_data()
korehanani?
- 何件のデータがあるの?
- トレーニング画像に犬とかのラベルは与えられているの?
- バイク用品のECで画像認識をさせて、それでどう活かせるかな
- セグメンテーション:
問題: 画像内の各ピクセルを特定のクラスに割り当てる。
アプローチ: U-Net、SegNet、DeepLabなどのセグメンテーションネットワークを使用。
これはなに?
- 商品の在庫管理:
在庫品を販売可能か否かを判断するために、需要予測モデルを構築し、商品が売り切れるかどうかを二値分類することができます。これにより、在庫の適切な管理や補充が行えます。
これは、需要予測という回帰モデル?
- SVMやランダムフォレストはつかわないほうがいい?
- データ数が少ないって、具体的に何件とか目安ある?
- 1000件ならどう?
- バイク用品のEコマースで多クラス分類をするならなにがあるかな
- 回帰なら何があるかな?
- クラスタリングなら何があるかな
- 20万点あるバイク用品を車種別に振り分けたいんだ。どうしたらいいと思う?
- 機械学習開発ののながれ
- データのパイプラインってなに?
- どうやって自動化させるの?
- One-hotエンコーディング
- 分散正規化とは
- モデルの開発は、AIの開発といっていいの?
- ランダムフォレストのモデルはAIに該当するの?
- ロジスティック回帰は?
- 単回帰は?
- モデルをつくれば、それはAIになるのか
- 勾配ブースティング以外のブースティングは、あまり使われないのかな?
- 特徴量が多いタクラス分類におすすめのアルゴリズム
- 上記の4つの中で、精度が良い順に並べてみて
- ランダムフォレストより、SVMの方が高いの?精度
- 決定木回帰は、線形?
- ニューラルネットワークとブースティングは、どっちがモデル構築の工数が高い?
- イメージ的には、ニューラルネットワークが一番高精度で高単価というイメージなんだが
- 大規模なデータセットで分類をする場合のアルゴリズムのおすすめ
- ロジスティック回帰はNGなの?
- 勾配ブースティングとは
- 目的関数の勾配とは
- 目的関数
- バイク用品の通販をしているんだけど、二値分類をしてみたい。なにか二値分類することあるかな?
- 勾配以外になにかあるの?
- アンサンブル学習のほうが、精度は高いんじゃない?
- バイアスとバリアンスの低減
- ロジスティック回帰でつくったものは、モデルといえるの?
- アンサンブル学習でなくても、モデルというんだね
- アンサンブル学習は、バギングとブースティングに分かれるけど、勾配ブースティングってなに?
- クラスの不均衡ってなに
- 、適切なサンプリング手法、クラスの重み付け、異常検出、再サンプリング
- 異常検出:
クラスの不均衡に対処するために、少数クラスを異常として検出するアプローチです。異常検出手法は、少数クラスの特徴を捉えて分類や識別を行います。
- ホテリングのT2法
- SMOTEやADASYN
- ロジスティック回帰とは
- ロジスティック回帰って、単回帰・重回帰とは異なるってこと?
- 非線形のメリットは?
- 特徴エンジニアリングとは
- なぜロジスティック回帰って呼ばれるの?回帰できないのに
- 機械学習ってそもそもなに?決定木もふくまれるの?
- ロジスティック回帰って、アンサンブル学習ではない?
- サポートベクターマシンって、アンサンブル学習なの?
- 正則化
- サポートベクターマシンは、線形じゃないの?
- SVMのカーネルトリックは、非線形で分類や予測ができるってこと?
- SVMカーネルトリックを使っても、これは基本的には二値分類に適しているんだよね?
- という事は、相関関係によって、学習をさせているの?
- 相関関係によって、重要なデータかどうかを判断しているの?
- その他の要因によって重要な情報を提供することがあるため、単純な相関関係だけで重要性を判断するのは適切ではありません。したがって、相関関係を考慮しながら特徴量の重要性を評価
相関関係がないのに重要なの?
- それを見極めるにはどうしたらいいの
- バイクのカテゴリーならなにが相関関係のない重要な特徴量といえる?
- 分類をするのに、分類済みの教師データを用意する必要があるよね。
- これは、手作業でしないといけないよね?
- 何件必要?
- 数千のデータを用意するんだ・・・骨が折れる
- ロジスティック回帰って、2次元だけ?
- 10次元でもいける?
- ロジスティック回帰のデメリットおしえて
- 特徴量間の相関関係:特徴量同士の相関を確認して、互いに類似した情報を持つ特徴量がないかどうかを評価します。相関の高い特徴量が複数ある場合、その中から適切な特徴量を選択するか、特徴量を組み合わせて新しい特徴量を作成することで、モデルの複雑さを減らし、性能を向上させることができます。
これについて、詳細に
- 先の説明で、似たような相関関係が複数あるとよくないといったが、似たような相関関係が複数とはどういう意味
- A、B、Cの具体例をあげてみて
- あー、そういうこと?
- 相関関係を特徴量間と、特徴量とターゲット間で見るんだよね。
相関関係が無いものに関しては、どうしたらいい?除去?
- なるほど、ランダムフォレストとLightGBMだとどっちが早い?
- 特徴量エンジニアリングは、相関関係性をみたほうがいいの?
- 相関関係は、ターゲットとの関係性の有無だけをみておけばいい?
- 相関の高い特徴量が複数って例をあげてみて
- 特徴量を減らさないとだめなの?
- 商品名と商品説明文からカテゴリを予測したいんだけど
- 今回、カテゴリを予測するんだけど、どのような特徴量を選定したらいいと思う?商品名、商品説明文、あとは?
- 商品の価格やブランド、製造国、サイズ、重量などの情報もカテゴリ予測に役立つことがあります。
この根拠は?
- カテゴリ変数を数値化する事をなんていうんだっけ
- エンコーディングしなくても、自動的に処理してくれるブースティング系のアルゴリズムなかったっけ
- LightGBMでもエンコーディングしなくてもできるの?
- サンプルデータ量が10万件位あるんだけど、これは多い?
- どのアルゴリズムがいいかな
- 多クラス分類なのだが、ロジスティック回帰も大丈夫か?
- database disk image is malformed
- 先のおすすめのアルゴリズムは、実際にやってみないと精度は分からない?
- 特徴エンジニアリングはどうしたらいいかな
- 今回、文字情報を処理するんだけど、スケーリングとかするの?
- ロジスティック回帰、SVM、ランダムフォレストは、文字情報を処理できるの?エンコーディングしなくていいの?>
- ナイーブベイスもエンコーディングする?
- 標準偏差が大きくなるとはどういう意味?
- 凝集型とは
- 凝集型以外になにがある
- 分割型ってなに
- 深層学習より機械学習を先にした方がいいかな?
- 商品名や説明文からのカテゴリ分類を行おうと思う。
おすすめのアルゴリズムおしえてくれ
- import numpy as np
from tensorflow.keras.preprocessing.text import Tokenizer
from tensorflow.keras.preprocessing.sequence import pad_sequences
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Embedding, LSTM, Dense
from tensorflow.keras.optimizers import Adam
from sklearn.model_selection import train_test_split
# サンプルの製品特徴データ
product_features = [
“コンパクトなデザイン",
“高性能なプロセッサ",
“大容量のストレージ",
“高解像度のディスプレイ",
“バッテリーの持続時間が長い"
]
# テキストのトークン化とシーケンス化
tokenizer = Tokenizer()
tokenizer.fit_on_texts(product_features)
sequences = tokenizer.texts_to_sequences(product_features)
# パディング
maxlen = max([len(x) for x in sequences])
padded_sequences = pad_sequences(sequences, maxlen=maxlen)
# ラベルデータ(次の単語の予測)
labels = np.roll(padded_sequences, -1, axis=1)
# データの分割
X_train, X_val, y_train, y_val = train_test_split(padded_sequences, labels, test_size=0.2, random_state=42)
# モデルの構築
model = Sequential()
model.add(Embedding(input_dim=len(tokenizer.word_index)+1, output_dim=32, input_length=maxlen))
model.add(LSTM(64, return_sequences=True))
model.add(LSTM(64))
model.add(Dense(len(tokenizer.word_index)+1, activation=’softmax’))
# モデルのコンパイル
model.compile(optimizer=Adam(), loss=’sparse_categorical_crossentropy’)
# モデルの学習
model.fit(X_train, y_train, epochs=100, validation_data=(X_val, y_val), verbose=2)
# 製品特徴の自動生成
# 製品特徴の自動生成
def generate_product_description(seed_text, length=10):
for _ in range(length):
sequence = tokenizer.texts_to_sequences([seed_text])[0]
padded_sequence = pad_sequences([sequence], maxlen=maxlen, padding=’pre’)
predicted_probabilities = model.predict(padded_sequence)[0]
predicted_index = np.argmax(predicted_probabilities)
next_word = tokenizer.index_word.get(predicted_index, ")
seed_text += ' ' + next_word
return seed_text
# 製品特徴の自動生成(サンプルの開始テキスト: “コンパクトなデザイン")
generated_description = generate_product_description(“コンパクト")
print(“Generated Product Description:", generated_description)
上記ですでにモデルが出来た。
これを使って実際に商品特徴の生成をするには、どのような入力情報がひつようか?
- 例えば、メーカー品番:HA001、原価:10000円、メーカー希望小売価格:20000円、フルエキゾーストマフラー、Z900RS
上記のような情報を与えれば生成してくれるってこと?
- なるほど、自動で予測したら、それを人間が確かめないといけない。つまり補助的なツールとして使えるってこと?
- 良く分かった。ありがとうございます。
- ちなみに、先の商品説明の生成するのは、回帰になるの?
- 他に、なにか回帰系でEコマースで使えそうなモデルないかな
- 機械学習より、深層学習のほうが簡単に思えるが
- 1つの深層学習のモデルを作るのにどれくらいの工数がかかるものなの?あと1時間辺りの工賃は日本円でいくらくらい?
- ブートストラップデータってなに
- 重回帰って、非線形もできるんだっけ?
- 単回帰は線形のみだよね?
- kaggleで優秀な人のコードは見れるの?
- 深層学習は、データの生成した、過程を見る事はできないという認識だけど合ってる?
- 製品特徴の自動生成する際は、どのように指定すればいいの?
- じゃあ、メーカー品番は何に役立つの?メーカー品番を生成する事は無いでしょ?
- 誤って、意味不明なメーカー品番が生成される事はないのかな?
- 深層学習で、その可能性が低い根拠を教えて
- 全ての商品説明を1行にまとめて学習させるってこと?
- ■キーワード:
上記の文字も不要だと思う?
- 例えば、文章で学習させたら、出力も文章になるの?
- 1行に20万件入れると覚えさせるのに大変だって言ったじゃん?
- 1商品1行でcsv形式ならどう?
- メーカー品番とかは入れない方がいい?
- 価格情報は、どうして必要なの??
「リーズナブル」みたいな文言を生成できる可能性があるってこと?
- なるほど、でも、リーズナブルという文言が、学習データに含まれている必要があるよね?
- —————————————————————————
AttributeError Traceback (most recent call last)
Cell In[1], line 54
51 return seed_text
53 # 製品特徴の自動生成(サンプルの開始テキスト: “コンパクトなデザイン")
—> 54 generated_description = generate_product_description(“コンパクトなデザイン")
55 print(“Generated Product Description:", generated_description)
Cell In[1], line 48, in generate_product_description(seed_text, length)
46 sequence = tokenizer.texts_to_sequences([seed_text])[0]
47 padded_sequence = pad_sequences([sequence], maxlen=maxlen, padding=’pre’)
—> 48 predicted_index = model.predict_classes(padded_sequence, verbose=0)
49 next_word = tokenizer.index_word.get(predicted_index[0], ")
50 seed_text += ' ' + next_word
AttributeError: 'Sequential’ object has no attribute 'predict_classes’
- import numpy as np
from tensorflow.keras.preprocessing.text import Tokenizer
from tensorflow.keras.preprocessing.sequence import pad_sequences
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Embedding, LSTM, Dense
from tensorflow.keras.optimizers import Adam
from sklearn.model_selection import train_test_split
# サンプルの製品特徴データ
product_features = [
“コンパクトなデザイン",
“高性能なプロセッサ",
“大容量のストレージ",
“高解像度のディスプレイ",
“バッテリーの持続時間が長い"
]
# テキストのトークン化とシーケンス化
tokenizer = Tokenizer()
tokenizer.fit_on_texts(product_features)
sequences = tokenizer.texts_to_sequences(product_features)
# パディング
maxlen = max([len(x) for x in sequences])
padded_sequences = pad_sequences(sequences, maxlen=maxlen)
# ラベルデータ(次の単語の予測)
labels = np.roll(padded_sequences, -1, axis=1)
# モデルの構築
model = Sequential()
model.add(Embedding(input_dim=len(tokenizer.word_index)+1, output_dim=32, input_length=maxlen))
model.add(LSTM(64, return_sequences=True))
model.add(LSTM(64))
model.add(Dense(len(tokenizer.word_index)+1, activation=’softmax’))
# モデルのコンパイル
model.compile(optimizer=Adam(), loss=’sparse_categorical_crossentropy’)
# モデルの学習
model.fit(padded_sequences, labels, epochs=100, verbose=2)
# 製品特徴の自動生成
def generate_product_description(seed_text, length=10):
for _ in range(length):
sequence = tokenizer.texts_to_sequences([seed_text])[0]
padded_sequence = pad_sequences([sequence], maxlen=maxlen, padding=’pre’)
predicted_index = model.predict_classes(padded_sequence, verbose=0)
next_word = tokenizer.index_word.get(predicted_index[0], ")
seed_text += ' ' + next_word
return seed_text
# 製品特徴の自動生成(サンプルの開始テキスト: “コンパクトなデザイン")
generated_description = generate_product_description(“コンパクトなデザイン")
print(“Generated Product Description:", generated_description)
これを修正して
- Epoch 1/100
1/1 – 19s – loss: 1.7918 – val_loss: 1.7952 – 19s/epoch – 19s/step
Epoch 2/100
1/1 – 0s – loss: 1.7899 – val_loss: 1.7981 – 78ms/epoch – 78ms/step
Epoch 3/100
1/1 – 0s – loss: 1.7881 – val_loss: 1.8010 – 75ms/epoch – 75ms/step
Epoch 4/100
1/1 – 0s – loss: 1.7862 – val_loss: 1.8040 – 91ms/epoch – 91ms/step
Epoch 5/100
1/1 – 0s – loss: 1.7844 – val_loss: 1.8071 – 64ms/epoch – 64ms/step
Epoch 6/100
1/1 – 0s – loss: 1.7825 – val_loss: 1.8102 – 71ms/epoch – 71ms/step
Epoch 7/100
1/1 – 0s – loss: 1.7805 – val_loss: 1.8134 – 87ms/epoch – 87ms/step
Epoch 8/100
1/1 – 0s – loss: 1.7785 – val_loss: 1.8167 – 81ms/epoch – 81ms/step
Epoch 9/100
1/1 – 0s – loss: 1.7764 – val_loss: 1.8200 – 89ms/epoch – 89ms/step
Epoch 10/100
1/1 – 0s – loss: 1.7743 – val_loss: 1.8235 – 49ms/epoch – 49ms/step
Epoch 11/100
1/1 – 0s – loss: 1.7722 – val_loss: 1.8270 – 75ms/epoch – 75ms/step
Epoch 12/100
1/1 – 0s – loss: 1.7699 – val_loss: 1.8306 – 86ms/epoch – 86ms/step
Epoch 13/100
1/1 – 0s – loss: 1.7676 – val_loss: 1.8344 – 173ms/epoch – 173ms/step
Epoch 14/100
1/1 – 0s – loss: 1.7652 – val_loss: 1.8382 – 69ms/epoch – 69ms/step
Epoch 15/100
1/1 – 0s – loss: 1.7627 – val_loss: 1.8422 – 65ms/epoch – 65ms/step
Epoch 16/100
1/1 – 0s – loss: 1.7601 – val_loss: 1.8463 – 100ms/epoch – 100ms/step
Epoch 17/100
1/1 – 0s – loss: 1.7574 – val_loss: 1.8505 – 83ms/epoch – 83ms/step
Epoch 18/100
1/1 – 0s – loss: 1.7545 – val_loss: 1.8548 – 54ms/epoch – 54ms/step
Epoch 19/100
1/1 – 0s – loss: 1.7516 – val_loss: 1.8593 – 82ms/epoch – 82ms/step
Epoch 20/100
1/1 – 0s – loss: 1.7485 – val_loss: 1.8639 – 59ms/epoch – 59ms/step
Epoch 21/100
1/1 – 0s – loss: 1.7453 – val_loss: 1.8687 – 63ms/epoch – 63ms/step
Epoch 22/100
1/1 – 0s – loss: 1.7420 – val_loss: 1.8736 – 46ms/epoch – 46ms/step
Epoch 23/100
1/1 – 0s – loss: 1.7384 – val_loss: 1.8787 – 38ms/epoch – 38ms/step
Epoch 24/100
1/1 – 0s – loss: 1.7348 – val_loss: 1.8840 – 48ms/epoch – 48ms/step
Epoch 25/100
1/1 – 0s – loss: 1.7309 – val_loss: 1.8894 – 45ms/epoch – 45ms/step
Epoch 26/100
1/1 – 0s – loss: 1.7269 – val_loss: 1.8950 – 38ms/epoch – 38ms/step
Epoch 27/100
1/1 – 0s – loss: 1.7226 – val_loss: 1.9009 – 51ms/epoch – 51ms/step
Epoch 28/100
1/1 – 0s – loss: 1.7182 – val_loss: 1.9069 – 77ms/epoch – 77ms/step
Epoch 29/100
1/1 – 0s – loss: 1.7135 – val_loss: 1.9131 – 56ms/epoch – 56ms/step
Epoch 30/100
1/1 – 0s – loss: 1.7086 – val_loss: 1.9195 – 60ms/epoch – 60ms/step
Epoch 31/100
1/1 – 0s – loss: 1.7034 – val_loss: 1.9262 – 55ms/epoch – 55ms/step
Epoch 32/100
1/1 – 0s – loss: 1.6980 – val_loss: 1.9330 – 63ms/epoch – 63ms/step
Epoch 33/100
1/1 – 0s – loss: 1.6922 – val_loss: 1.9402 – 51ms/epoch – 51ms/step
Epoch 34/100
1/1 – 0s – loss: 1.6862 – val_loss: 1.9475 – 56ms/epoch – 56ms/step
Epoch 35/100
1/1 – 0s – loss: 1.6799 – val_loss: 1.9551 – 56ms/epoch – 56ms/step
Epoch 36/100
1/1 – 0s – loss: 1.6732 – val_loss: 1.9629 – 54ms/epoch – 54ms/step
Epoch 37/100
1/1 – 0s – loss: 1.6661 – val_loss: 1.9710 – 69ms/epoch – 69ms/step
Epoch 38/100
1/1 – 0s – loss: 1.6587 – val_loss: 1.9794 – 70ms/epoch – 70ms/step
Epoch 39/100
1/1 – 0s – loss: 1.6508 – val_loss: 1.9880 – 52ms/epoch – 52ms/step
Epoch 40/100
1/1 – 0s – loss: 1.6426 – val_loss: 1.9970 – 58ms/epoch – 58ms/step
Epoch 41/100
1/1 – 0s – loss: 1.6338 – val_loss: 2.0062 – 58ms/epoch – 58ms/step
Epoch 42/100
1/1 – 0s – loss: 1.6246 – val_loss: 2.0157 – 67ms/epoch – 67ms/step
Epoch 43/100
1/1 – 0s – loss: 1.6149 – val_loss: 2.0256 – 52ms/epoch – 52ms/step
Epoch 44/100
1/1 – 0s – loss: 1.6046 – val_loss: 2.0357 – 54ms/epoch – 54ms/step
Epoch 45/100
1/1 – 0s – loss: 1.5937 – val_loss: 2.0462 – 69ms/epoch – 69ms/step
Epoch 46/100
1/1 – 0s – loss: 1.5823 – val_loss: 2.0570 – 71ms/epoch – 71ms/step
Epoch 47/100
1/1 – 0s – loss: 1.5702 – val_loss: 2.0681 – 62ms/epoch – 62ms/step
Epoch 48/100
1/1 – 0s – loss: 1.5574 – val_loss: 2.0796 – 66ms/epoch – 66ms/step
Epoch 49/100
1/1 – 0s – loss: 1.5440 – val_loss: 2.0915 – 78ms/epoch – 78ms/step
Epoch 50/100
1/1 – 0s – loss: 1.5298 – val_loss: 2.1037 – 63ms/epoch – 63ms/step
Epoch 51/100
1/1 – 0s – loss: 1.5148 – val_loss: 2.1163 – 74ms/epoch – 74ms/step
Epoch 52/100
1/1 – 0s – loss: 1.4990 – val_loss: 2.1293 – 84ms/epoch – 84ms/step
Epoch 53/100
1/1 – 0s – loss: 1.4824 – val_loss: 2.1426 – 84ms/epoch – 84ms/step
Epoch 54/100
1/1 – 0s – loss: 1.4650 – val_loss: 2.1563 – 129ms/epoch – 129ms/step
Epoch 55/100
1/1 – 0s – loss: 1.4466 – val_loss: 2.1705 – 89ms/epoch – 89ms/step
Epoch 56/100
1/1 – 0s – loss: 1.4273 – val_loss: 2.1850 – 70ms/epoch – 70ms/step
Epoch 57/100
1/1 – 0s – loss: 1.4071 – val_loss: 2.1999 – 90ms/epoch – 90ms/step
Epoch 58/100
1/1 – 0s – loss: 1.3858 – val_loss: 2.2152 – 98ms/epoch – 98ms/step
Epoch 59/100
1/1 – 0s – loss: 1.3636 – val_loss: 2.2309 – 95ms/epoch – 95ms/step
Epoch 60/100
1/1 – 0s – loss: 1.3405 – val_loss: 2.2469 – 62ms/epoch – 62ms/step
Epoch 61/100
1/1 – 0s – loss: 1.3163 – val_loss: 2.2634 – 68ms/epoch – 68ms/step
Epoch 62/100
1/1 – 0s – loss: 1.2911 – val_loss: 2.2802 – 74ms/epoch – 74ms/step
Epoch 63/100
1/1 – 0s – loss: 1.2649 – val_loss: 2.2973 – 53ms/epoch – 53ms/step
Epoch 64/100
1/1 – 0s – loss: 1.2378 – val_loss: 2.3148 – 67ms/epoch – 67ms/step
Epoch 65/100
1/1 – 0s – loss: 1.2098 – val_loss: 2.3326 – 72ms/epoch – 72ms/step
Epoch 66/100
1/1 – 0s – loss: 1.1809 – val_loss: 2.3507 – 54ms/epoch – 54ms/step
Epoch 67/100
1/1 – 0s – loss: 1.1512 – val_loss: 2.3690 – 66ms/epoch – 66ms/step
Epoch 68/100
1/1 – 0s – loss: 1.1207 – val_loss: 2.3876 – 63ms/epoch – 63ms/step
Epoch 69/100
1/1 – 0s – loss: 1.0895 – val_loss: 2.4063 – 60ms/epoch – 60ms/step
Epoch 70/100
1/1 – 0s – loss: 1.0577 – val_loss: 2.4252 – 56ms/epoch – 56ms/step
Epoch 71/100
1/1 – 0s – loss: 1.0255 – val_loss: 2.4442 – 65ms/epoch – 65ms/step
Epoch 72/100
1/1 – 0s – loss: 0.9928 – val_loss: 2.4633 – 82ms/epoch – 82ms/step
Epoch 73/100
1/1 – 0s – loss: 0.9599 – val_loss: 2.4823 – 66ms/epoch – 66ms/step
Epoch 74/100
1/1 – 0s – loss: 0.9268 – val_loss: 2.5014 – 59ms/epoch – 59ms/step
Epoch 75/100
1/1 – 0s – loss: 0.8936 – val_loss: 2.5204 – 87ms/epoch – 87ms/step
Epoch 76/100
1/1 – 0s – loss: 0.8606 – val_loss: 2.5393 – 76ms/epoch – 76ms/step
Epoch 77/100
1/1 – 0s – loss: 0.8278 – val_loss: 2.5580 – 44ms/epoch – 44ms/step
Epoch 78/100
1/1 – 0s – loss: 0.7953 – val_loss: 2.5765 – 49ms/epoch – 49ms/step
Epoch 79/100
1/1 – 0s – loss: 0.7634 – val_loss: 2.5948 – 61ms/epoch – 61ms/step
Epoch 80/100
1/1 – 0s – loss: 0.7322 – val_loss: 2.6129 – 59ms/epoch – 59ms/step
Epoch 81/100
1/1 – 0s – loss: 0.7017 – val_loss: 2.6306 – 49ms/epoch – 49ms/step
Epoch 82/100
1/1 – 0s – loss: 0.6721 – val_loss: 2.6481 – 47ms/epoch – 47ms/step
Epoch 83/100
1/1 – 0s – loss: 0.6435 – val_loss: 2.6652 – 43ms/epoch – 43ms/step
Epoch 84/100
1/1 – 0s – loss: 0.6161 – val_loss: 2.6820 – 40ms/epoch – 40ms/step
Epoch 85/100
1/1 – 0s – loss: 0.5898 – val_loss: 2.6984 – 42ms/epoch – 42ms/step
Epoch 86/100
1/1 – 0s – loss: 0.5647 – val_loss: 2.7145 – 39ms/epoch – 39ms/step
Epoch 87/100
1/1 – 0s – loss: 0.5408 – val_loss: 2.7302 – 36ms/epoch – 36ms/step
Epoch 88/100
1/1 – 0s – loss: 0.5182 – val_loss: 2.7456 – 40ms/epoch – 40ms/step
Epoch 89/100
1/1 – 0s – loss: 0.4968 – val_loss: 2.7606 – 42ms/epoch – 42ms/step
Epoch 90/100
1/1 – 0s – loss: 0.4765 – val_loss: 2.7752 – 38ms/epoch – 38ms/step
Epoch 91/100
1/1 – 0s – loss: 0.4574 – val_loss: 2.7895 – 42ms/epoch – 42ms/step
Epoch 92/100
1/1 – 0s – loss: 0.4393 – val_loss: 2.8034 – 40ms/epoch – 40ms/step
Epoch 93/100
1/1 – 0s – loss: 0.4222 – val_loss: 2.8169 – 43ms/epoch – 43ms/step
Epoch 94/100
1/1 – 0s – loss: 0.4060 – val_loss: 2.8300 – 44ms/epoch – 44ms/step
Epoch 95/100
1/1 – 0s – loss: 0.3907 – val_loss: 2.8427 – 55ms/epoch – 55ms/step
Epoch 96/100
1/1 – 0s – loss: 0.3762 – val_loss: 2.8551 – 50ms/epoch – 50ms/step
Epoch 97/100
1/1 – 0s – loss: 0.3623 – val_loss: 2.8671 – 50ms/epoch – 50ms/step
Epoch 98/100
1/1 – 0s – loss: 0.3490 – val_loss: 2.8787 – 67ms/epoch – 67ms/step
Epoch 99/100
1/1 – 0s – loss: 0.3363 – val_loss: 2.8899 – 65ms/epoch – 65ms/step
Epoch 100/100
1/1 – 0s – loss: 0.3240 – val_loss: 2.9007 – 51ms/epoch – 51ms/step
—————————————————————————
AttributeError Traceback (most recent call last)
Cell In[3], line 57
54 return seed_text
56 # 製品特徴の自動生成(サンプルの開始テキスト: “コンパクトなデザイン")
—> 57 generated_description = generate_product_description(“コンパクトなデザイン")
58 print(“Generated Product Description:", generated_description)
Cell In[3], line 51, in generate_product_description(seed_text, length)
49 sequence = tokenizer.texts_to_sequences([seed_text])[0]
50 padded_sequence = pad_sequences([sequence], maxlen=maxlen, padding=’pre’)
—> 51 predicted_index = model.predict_classes(padded_sequence, verbose=0)
52 next_word = tokenizer.index_word.get(predicted_index[0], ")
53 seed_text += ' ' + next_word
AttributeError: 'Sequential’ object has no attribute 'predict_classes’
- この製品特徴の自動生成は、文章のように表示するわけではないの?
- 学習データは以下ってこと?
product_features = [
“コンパクトなデザイン",
“高性能なプロセッサ",
“大容量のストレージ",
“高解像度のディスプレイ",
“バッテリーの持続時間が長い"
]
- 学習データを用意するにはどうしたらいいとおもう?
- 例えば、今商品データ20万件のデータがあるんだけど、これを利用できるかな?商品説明文をつかえばいい?
- # モデルの学習
model.fit(x_train, y_train, batch_size=64, epochs=10, validation_split=0.2)
これの
- これのハイパーパラメータ調整ってどうやるの
- ランダムサーチで行いたい
- import numpy as np
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers
# データの準備
(x_train, y_train), (x_test, y_test) = keras.datasets.cifar10.load_data()
x_train = x_train.astype(“float32") / 255.0
x_test = x_test.astype(“float32″) / 255.0
# モデルの構築
model = keras.Sequential([
keras.Input(shape=(32, 32, 3)),
layers.Conv2D(32, kernel_size=(3, 3), activation="relu"),
layers.MaxPooling2D(pool_size=(2, 2)),
layers.Conv2D(64, kernel_size=(3, 3), activation="relu"),
layers.MaxPooling2D(pool_size=(2, 2)),
layers.Flatten(),
layers.Dropout(0.5),
layers.Dense(10, activation="softmax"),
])
# モデルのコンパイル
model.compile(loss="sparse_categorical_crossentropy", optimizer="adam", metrics=[“accuracy"])
# モデルの学習
model.fit(x_train, y_train, batch_size=64, epochs=10, validation_split=0.2)
# モデルの評価
test_loss, test_acc = model.evaluate(x_test, y_test)
print(“Test accuracy:", test_acc)
ランダムサーチを入れて
- クラスの不均衡を考慮した評価指標を使うって?
- データのバランスをとるためのサンプリングをしたい
- 具体的なサンプルコードちょうだい
- # モデルの評価
test_loss, test_acc = model.evaluate(x_test, y_test)
print(“Test accuracy:", test_acc)
これはなに?
- import numpy as np
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers
# データの準備
(x_train, y_train), (x_test, y_test) = keras.datasets.cifar10.load_data()
x_train = x_train.astype(“float32") / 255.0
x_test = x_test.astype(“float32″) / 255.0
# モデルの構築
model = keras.Sequential([
keras.Input(shape=(32, 32, 3)),
layers.Conv2D(32, kernel_size=(3, 3), activation="relu"),
layers.MaxPooling2D(pool_size=(2, 2)),
layers.Conv2D(64, kernel_size=(3, 3), activation="relu"),
layers.MaxPooling2D(pool_size=(2, 2)),
layers.Flatten(),
layers.Dropout(0.5),
layers.Dense(10, activation="softmax"),
])
# モデルのコンパイル
model.compile(loss="sparse_categorical_crossentropy", optimizer="adam", metrics=[“accuracy"])
# モデルの学習
model.fit(x_train, y_train, batch_size=64, epochs=10, validation_split=0.2)
# モデルの評価
test_loss, test_acc = model.evaluate(x_test, y_test)
print(“Test accuracy:", test_acc)
Test accuracy: 0.6721000075340271
この精度は低い?
- どうやって精度を向上させる?
- 商品名カラムに品番が含まれていて、品番カラムが別途ある場合、特徴量としてどうか
- 重複があってもいい?商品名カラムと品番カラムに
- Aucが80は精度いいの?
- Aucについて詳しく
- ランダムフォレストと、ブースティングで結果が変わらないこともある?
- カテゴリ変数が多いものは、精度は落ちるのかな?
- 梱包サイズを予測するモデルを作ってるんだけど、aucが80だけどaccuracyは55くらいなんだよね
- クラスタリング結果を多クラス分類の説明変数に使えないか?
- Epoch 1/5
2024-04-10 15:11:27.891429: W tensorflow/core/framework/op_kernel.cc:1828] OP_REQUIRES failed at sparse_xent_op.cc:103 : INVALID_ARGUMENT: Received a label value of 160 which is outside the valid range of [0, 6). Label values: 60 60 140 80 60 120 60 120 60 120 60 160 120 60 120 120 100 60 100 140 60 60 160 100 60 60 140 100 60 120 100 60
—————————————————————————
InvalidArgumentError Traceback (most recent call last)
Cell In[214], line 30
27 model.compile(optimizer=’adam’, loss=’sparse_categorical_crossentropy’, metrics=['accuracy’])
29 # モデルのトレーニング
—> 30 history = model.fit(X_train_scaled, y_train, epochs=5, batch_size=32, validation_data=(X_test_scaled, y_test))
32 # テストデータでの予測と評価
33 loss, accuracy = model.evaluate(X_test_scaled, y_test)
File /home/share/temp/venv/lib/python3.8/site-packages/keras/src/utils/traceback_utils.py:70, in filter_traceback.<locals>.error_handler(*args, **kwargs)
67 filtered_tb = _process_traceback_frames(e.__traceback__)
68 # To get the full stack trace, call:
69 # `tf.debugging.disable_traceback_filtering()`
—> 70 raise e.with_traceback(filtered_tb) from None
71 finally:
72 del filtered_tb
File /home/share/temp/venv/lib/python3.8/site-packages/tensorflow/python/eager/execute.py:53, in quick_execute(op_name, num_outputs, inputs, attrs, ctx, name)
51 try:
52 ctx.ensure_initialized()
—> 53 tensors = pywrap_tfe.TFE_Py_Execute(ctx._handle, device_name, op_name,
54 inputs, attrs, num_outputs)
55 except core._NotOkStatusException as e:
56 if name is not None:
…
File “/home/share/temp/venv/lib/python3.8/site-packages/keras/src/backend.py", line 5762, in sparse_categorical_crossentropy
res = tf.nn.sparse_softmax_cross_entropy_with_logits(
Node: 'sparse_categorical_crossentropy/SparseSoftmaxCrossEntropyWithLogits/SparseSoftmaxCrossEntropyWithLogits’
Received a label value of 160 which is outside the valid range of [0, 6). Label values: 60 60 140 80 60 120 60 120 60 120 60 160 120 60 120 120 100 60 100 140 60 60 160 100 60 60 140 100 60 120 100 60
[[{{node sparse_categorical_crossentropy/SparseSoftmaxCrossEntropyWithLogits/SparseSoftmaxCrossEntropyWithLogits}}]] [Op:__inference_train_function_161012]
Output is truncated. View as a scrollable element or open in a text editor. Adjust cell output settings…
- Epoch 1/5
2024-04-10 15:12:23.321185: W tensorflow/core/framework/op_kernel.cc:1828] OP_REQUIRES failed at sparse_xent_op.cc:103 : INVALID_ARGUMENT: Received a label value of 140 which is outside the valid range of [0, 6). Label values: 120 60 60 100 140 60 120 60 100 80 60 60 60 100 120 140 100 60 80 60 60 120 100 60 100 100 60 60 60 140 120 60
—————————————————————————
InvalidArgumentError Traceback (most recent call last)
Cell In[215], line 34
31 model.compile(optimizer=’adam’, loss=’sparse_categorical_crossentropy’, metrics=['accuracy’])
33 # モデルのトレーニング
—> 34 history = model.fit(X_train_scaled, y_train, epochs=5, batch_size=32, validation_data=(X_test_scaled, y_test))
36 # テストデータでの予測と評価
37 loss, accuracy = model.evaluate(X_test_scaled, y_test)
File /home/share/temp/venv/lib/python3.8/site-packages/keras/src/utils/traceback_utils.py:70, in filter_traceback.<locals>.error_handler(*args, **kwargs)
67 filtered_tb = _process_traceback_frames(e.__traceback__)
68 # To get the full stack trace, call:
69 # `tf.debugging.disable_traceback_filtering()`
—> 70 raise e.with_traceback(filtered_tb) from None
71 finally:
72 del filtered_tb
File /home/share/temp/venv/lib/python3.8/site-packages/tensorflow/python/eager/execute.py:53, in quick_execute(op_name, num_outputs, inputs, attrs, ctx, name)
51 try:
52 ctx.ensure_initialized()
—> 53 tensors = pywrap_tfe.TFE_Py_Execute(ctx._handle, device_name, op_name,
54 inputs, attrs, num_outputs)
55 except core._NotOkStatusException as e:
56 if name is not None:
…
File “/home/share/temp/venv/lib/python3.8/site-packages/keras/src/backend.py", line 5762, in sparse_categorical_crossentropy
res = tf.nn.sparse_softmax_cross_entropy_with_logits(
Node: 'sparse_categorical_crossentropy/SparseSoftmaxCrossEntropyWithLogits/SparseSoftmaxCrossEntropyWithLogits’
Received a label value of 140 which is outside the valid range of [0, 6). Label values: 120 60 60 100 140 60 120 60 100 80 60 60 60 100 120 140 100 60 80 60 60 120 100 60 100 100 60 60 60 140 120 60
[[{{node sparse_categorical_crossentropy/SparseSoftmaxCrossEntropyWithLogits/SparseSoftmaxCrossEntropyWithLogits}}]] [Op:__inference_train_function_161988]
Output is truncated. View as a scrollable element or open in a text editor. Adjust cell output settings…
- # 必要なライブラリのインポート
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import LabelEncoder
from keras.models import Sequential
from keras.layers import Dense
# データの読み込み
# data = pd.read_csv('your_data.csv’) # データのファイルパスを指定してください
# カテゴリカル変数のエンコード
label_encoder = LabelEncoder()
data['category_encoded’] = label_encoder.fit_transform(data['category’])
# 目的変数と説明変数の分割
X = data.drop(['size’, 'product_name’, 'original_product_code’], axis=1) # 説明変数
y = data['size’] # 目的変数
# 訓練データとテストデータに分割
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# モデルの構築
model = Sequential([
Dense(64, activation=’relu’, input_shape=(X_train.shape[1],)),
Dense(64, activation=’relu’),
Dense(len(np.unique(y)), activation=’softmax’)
])
# モデルのコンパイル
model.compile(optimizer=’adam’, loss=’sparse_categorical_crossentropy’, metrics=['accuracy’])
# モデルのトレーニング
model.fit(X_train, y_train, epochs=10, batch_size=32, validation_data=(X_test, y_test))
# モデルの評価
loss, accuracy = model.evaluate(X_test, y_test)
print(“Test Loss:", loss)
print(“Test Accuracy:", accuracy)
- —————————————————————————
ValueError Traceback (most recent call last)
Cell In[219], line 37
34 model.compile(optimizer=’adam’, loss=’sparse_categorical_crossentropy’, metrics=['accuracy’])
36 # モデルのトレーニング
—> 37 model.fit(X_train, y_train, epochs=10, batch_size=32, validation_data=(X_test, y_test))
39 # モデルの評価
40 loss, accuracy = model.evaluate(X_test, y_test)
File /home/share/temp/venv/lib/python3.8/site-packages/keras/src/utils/traceback_utils.py:70, in filter_traceback.<locals>.error_handler(*args, **kwargs)
67 filtered_tb = _process_traceback_frames(e.__traceback__)
68 # To get the full stack trace, call:
69 # `tf.debugging.disable_traceback_filtering()`
—> 70 raise e.with_traceback(filtered_tb) from None
71 finally:
72 del filtered_tb
File /home/share/temp/venv/lib/python3.8/site-packages/tensorflow/python/framework/constant_op.py:98, in convert_to_eager_tensor(value, ctx, dtype)
96 dtype = dtypes.as_dtype(dtype).as_datatype_enum
97 ctx.ensure_initialized()
—> 98 return ops.EagerTensor(value, ctx.device_name, dtype)
ValueError: Failed to convert a NumPy array to a Tensor (Unsupported object type int).
- int型だからいけないんじゃない?floatにしたら直ると思う
- 新しい特徴量をつくりたい
- 梱包サイズを多クラス分類したいんだ。
- 商品名からできないかな?
- 寸法も重量もわからない
- クラスタリングの説明変数は?
- クラスタリングのサンプルコードくれ
- WARNING:tensorflow:Keras is training/fitting/evaluating on array-like data. Keras may not be optimized for this format, so if your input data format is supported by TensorFlow I/O (https://github.com/tensorflow/io) we recommend using that to load a Dataset instead.
Epoch 1/5
2024-04-10 15:04:15.112780: W tensorflow/core/framework/op_kernel.cc:1816] INVALID_ARGUMENT: TypeError: 'SparseTensor’ object is not subscriptable
Traceback (most recent call last):
File “/home/share/temp/venv/lib/python3.8/site-packages/tensorflow/python/ops/script_ops.py", line 266, in __call__
return func(device, token, args)
File “/home/share/temp/venv/lib/python3.8/site-packages/tensorflow/python/ops/script_ops.py", line 144, in __call__
outputs = self._call(device, args)
File “/home/share/temp/venv/lib/python3.8/site-packages/tensorflow/python/ops/script_ops.py", line 151, in _call
ret = self._func(*args)
File “/home/share/temp/venv/lib/python3.8/site-packages/tensorflow/python/autograph/impl/api.py", line 643, in wrapper
return func(*args, **kwargs)
File “/home/share/temp/venv/lib/python3.8/site-packages/keras/src/engine/data_adapter.py", line 519, in py_method
return [slice_array(inp) for inp in flat_inputs]
File “/home/share/temp/venv/lib/python3.8/site-packages/keras/src/engine/data_adapter.py", line 519, in <listcomp>
return [slice_array(inp) for inp in flat_inputs]
File “/home/share/temp/venv/lib/python3.8/site-packages/keras/src/engine/data_adapter.py", line 515, in slice_array
return training_utils.slice_arrays(
File “/home/share/temp/venv/lib/python3.8/site-packages/keras/src/engine/training_utils.py", line 47, in slice_arrays
…
File “/home/share/temp/venv/lib/python3.8/site-packages/keras/src/engine/training_utils.py", line 47, in slice_arrays
entries = [[x[i : i + 1] for i in indices] for x in arrays]
Fi
- from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from keras.models import Sequential
from keras.layers import Dense
# データをトレーニングセットとテストセットに分割
X_train, X_test, y_train, y_test = train_test_split(X_combined, y, test_size=0.3, random_state=42)
# データの標準化
scaler = StandardScaler(with_mean=False) # with_mean=Falseを追加
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)
X_train_scaled = X_train.toarray()
X_test_scaled = X_test.toarray()
# クラス数を取得
num_classes = len(np.unique(y_train))
# モデルの作成
model = Sequential([
Dense(64, activation=’relu’, input_shape=(X_train_scaled.shape[1],)),
Dense(64, activation=’relu’),
Dense(num_classes, activation=’softmax’) # 多クラス分類用の出力層
])
# モデルのコンパイル
model.compile(optimizer=’adam’, loss=’sparse_categorical_crossentropy’, metrics=['accuracy’])
# モデルのトレーニング
history = model.fit(X_train_scaled, y_train, epochs=5, batch_size=32, validation_data=(X_test_scaled, y_test))
# テストデータでの予測と評価
loss, accuracy = model.evaluate(X_test_scaled, y_test)
print(“Test Loss:", loss)
print(“Test Accuracy:", accuracy)
- —————————————————————————
InvalidArgumentError Traceback (most recent call last)
Cell In[212], line 34
31 model.compile(optimizer=’adam’, loss=’sparse_categorical_crossentropy’, metrics=['accuracy’])
33 # モデルのトレーニング
—> 34 history = model.fit(X_train_scaled, y_train, epochs=5, batch_size=32, validation_data=(X_test_scaled, y_test))
36 # テストデータでの予測と評価
37 loss, accuracy = model.evaluate(X_test_scaled, y_test)
File /home/share/temp/venv/lib/python3.8/site-packages/keras/src/utils/traceback_utils.py:70, in filter_traceback.<locals>.error_handler(*args, **kwargs)
67 filtered_tb = _process_traceback_frames(e.__traceback__)
68 # To get the full stack trace, call:
69 # `tf.debugging.disable_traceback_filtering()`
—> 70 raise e.with_traceback(filtered_tb) from None
71 finally:
72 del filtered_tb
File /home/share/temp/venv/lib/python3.8/site-packages/tensorflow/python/eager/execute.py:53, in quick_execute(op_name, num_outputs, inputs, attrs, ctx, name)
51 try:
52 ctx.ensure_initialized()
—> 53 tensors = pywrap_tfe.TFE_Py_Execute(ctx._handle, device_name, op_name,
54 inputs, attrs, num_outputs)
55 except core._NotOkStatusException as e:
56 if name is not None:
…
File “/home/share/temp/venv/lib/python3.8/site-packages/keras/src/backend.py", line 5762, in sparse_categorical_crossentropy
res = tf.nn.sparse_softmax_cross_entropy_with_logits(
Node: 'sparse_categorical_crossentropy/SparseSoftmaxCrossEntropyWithLogits/SparseSoftmaxCrossEntropyWithLogits’
Received a label value of 160 which is outside the valid range of [0, 6). Label values: 60 80 80 160 60 100 60 60 100 80 60 60 120 60 60 60 60 100 100 100 160 140 100 160 100 100 100 120 80 120 160 60
[[{{node sparse_categorical_crossentropy/SparseSoftmaxCrossEntropyWithLogits/SparseSoftmaxCrossEntropyWithLogits}}]] [Op:__inference_train_function_159060]
Output is truncated. View as a scrollable element or open in a text editor. Adjust cell output settings…
- from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from keras.models import Sequential
from keras.layers import Dense
# データをトレーニングセットとテストセットに分割
X_train, X_test, y_train, y_test = train_test_split(X_combined, y, test_size=0.3, random_state=42)
# データの標準化
scaler = StandardScaler(with_mean=False) # with_mean=Falseを追加
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)
X_train_scaled = X_train.toarray()
X_test_scaled = X_test.toarray()
# クラス数を取得
num_classes = len(np.unique(y_train))
# モデルの作成
model = Sequential([
Dense(64, activation=’relu’, input_shape=(X_train_scaled.shape[1],)),
Dense(64, activation=’relu’),
Dense(num_classes, activation=’softmax’) # 多クラス分類用の出力層
])
# モデルのコンパイル
model.compile(optimizer=’adam’, loss=’sparse_categorical_crossentropy’, metrics=['accuracy’])
# モデルのトレーニング
history = model.fit(X_train_scaled, y_train, epochs=5, batch_size=32, validation_data=(X_test_scaled, y_test))
# テストデータでの予測と評価
loss, accuracy = model.evaluate(X_test_scaled, y_test)
print(“Test Loss:", loss)
print(“Test Accuracy:", accuracy)
- —————————————————————————
InvalidArgumentError Traceback (most recent call last)
Cell In[194], line 35
32 model.compile(optimizer=’adam’, loss=’sparse_categorical_crossentropy’, metrics=['accuracy’])
34 # モデルのトレーニング
—> 35 history = model.fit(X_train_scaled, y_train, epochs=10, batch_size=32, validation_data=(X_test_scaled, y_test))
37 # テストデータでの予測と評価
38 y_pred = model.predict_classes(X_test_scaled)
File /home/share/temp/venv/lib/python3.8/site-packages/keras/src/utils/traceback_utils.py:70, in filter_traceback.<locals>.error_handler(*args, **kwargs)
67 filtered_tb = _process_traceback_frames(e.__traceback__)
68 # To get the full stack trace, call:
69 # `tf.debugging.disable_traceback_filtering()`
—> 70 raise e.with_traceback(filtered_tb) from None
71 finally:
72 del filtered_tb
File /home/share/temp/venv/lib/python3.8/site-packages/tensorflow/python/eager/execute.py:53, in quick_execute(op_name, num_outputs, inputs, attrs, ctx, name)
51 try:
52 ctx.ensure_initialized()
—> 53 tensors = pywrap_tfe.TFE_Py_Execute(ctx._handle, device_name, op_name,
54 inputs, attrs, num_outputs)
55 except core._NotOkStatusException as e:
56 if name is not None:
…
File “/home/share/temp/venv/lib/python3.8/site-packages/keras/src/backend.py", line 5762, in sparse_categorical_crossentropy
res = tf.nn.sparse_softmax_cross_entropy_with_logits(
Node: 'sparse_categorical_crossentropy/SparseSoftmaxCrossEntropyWithLogits/SparseSoftmaxCrossEntropyWithLogits’
Received a label value of 5 which is outside the valid range of [0, 1). Label values: 2 2 1 0 0 2 2 0 1 1 4 1 0 0 2 2 3 0 5 0 0 4 3 4 0 1 1 3 0 1 3 2
[[{{node sparse_categorical_crossentropy/SparseSoftmaxCrossEntropyWithLogits/SparseSoftmaxCrossEntropyWithLogits}}]] [Op:__inference_train_function_81794]
- 修正してコードちょうだい
- from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from keras.models import Sequential
from keras.layers import Dense
# データをトレーニングセットとテストセットに分割
X_train, X_test, y_train, y_test = train_test_split(X_combined, y, test_size=0.2, random_state=42)
# データの標準化
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)
# モデルの作成
model = Sequential([
Dense(64, activation=’relu’, input_shape=(X_train_scaled.shape[1],)),
Dense(64, activation=’relu’),
Dense(1, activation=’linear’) # 線形活性化関数
])
# モデルのコンパイル
model.compile(optimizer=’adam’, loss=’mean_squared_error’, metrics=['mae’]) # 回帰タスクのため、損失関数は平均二乗誤差を使用
# モデルのトレーニング
history = model.fit(X_train_scaled, y_train, epochs=10, batch_size=32, validation_data=(X_test_scaled, y_test))
# テストデータでの予測と評価
y_pred = model.predict(X_test_scaled)
# モデルの評価
loss, mae = model.evaluate(X_test_scaled, y_test)
print(“Mean Absolute Error:", mae)
- —————————————————————————
ValueError Traceback (most recent call last)
Cell In[195], line 11
9 # データの標準化
10 scaler = StandardScaler()
—> 11 X_train_scaled = scaler.fit_transform(X_train)
12 X_test_scaled = scaler.transform(X_test)
14 # モデルの作成
File /home/share/temp/venv/lib/python3.8/site-packages/sklearn/utils/_set_output.py:157, in _wrap_method_output.<locals>.wrapped(self, X, *args, **kwargs)
155 @wraps(f)
156 def wrapped(self, X, *args, **kwargs):
–> 157 data_to_wrap = f(self, X, *args, **kwargs)
158 if isinstance(data_to_wrap, tuple):
159 # only wrap the first output for cross decomposition
160 return_tuple = (
161 _wrap_data_with_container(method, data_to_wrap[0], X, self),
162 *data_to_wrap[1:],
163 )
File /home/share/temp/venv/lib/python3.8/site-packages/sklearn/base.py:916, in TransformerMixin.fit_transform(self, X, y, **fit_params)
912 # non-optimized default implementation; override when a better
913 # method is possible for a given clustering algorithm
914 if y is None:
915 # fit method of arity 1 (unsupervised transformation)
…
909 )
911 if self.with_std:
912 # First pass
ValueError: Cannot center sparse matrices: pass `with_mean=False` instead. See docstring for motivation and alternatives.
- Epoch 1/10
102/102 [==============================] – 1s 3ms/step – loss: 2.1570 – mae: 1.1738 – val_loss: 1.9768 – val_mae: 1.1114
Epoch 2/10
102/102 [==============================] – 0s 2ms/step – loss: 1.0467 – mae: 0.7564 – val_loss: 1.7705 – val_mae: 1.0883
Epoch 3/10
102/102 [==============================] – 0s 2ms/step – loss: 0.4408 – mae: 0.4885 – val_loss: 1.7413 – val_mae: 1.0596
Epoch 4/10
102/102 [==============================] – 0s 2ms/step – loss: 0.3026 – mae: 0.3916 – val_loss: 1.6404 – val_mae: 1.0242
Epoch 5/10
102/102 [==============================] – 0s 3ms/step – loss: 0.2146 – mae: 0.3167 – val_loss: 1.6466 – val_mae: 1.0354
Epoch 6/10
102/102 [==============================] – 0s 2ms/step – loss: 0.1584 – mae: 0.2664 – val_loss: 1.6535 – val_mae: 1.0311
Epoch 7/10
102/102 [==============================] – 0s 2ms/step – loss: 0.1262 – mae: 0.2351 – val_loss: 1.6146 – val_mae: 1.0215
Epoch 8/10
102/102 [==============================] – 0s 2ms/step – loss: 0.1029 – mae: 0.2090 – val_loss: 1.5955 – val_mae: 1.0156
Epoch 9/10
102/102 [==============================] – 0s 2ms/step – loss: 0.0929 – mae: 0.1936 – val_loss: 1.6060 – val_mae: 1.0129
Epoch 10/10
102/102 [==============================] – 0s 2ms/step – loss: 0.0926 – mae: 0.1874 – val_loss: 1.5877 – val_mae: 1.0155
26/26 [==============================] – 0s 460us/step
26/26 [==============================] – 0s 401us/step – loss: 1.5877 – mae: 1.0155
Mean Absolute Error: 1.0154569149017334
- ValueError Traceback (most recent call last)
Cell In[197], line 11
9 # データの標準化
10 scaler = StandardScaler()
—> 11 X_train_scaled = scaler.fit_transform(X_train)
12 X_test_scaled = scaler.transform(X_test)
14 # クラス数を取得
File /home/share/temp/venv/lib/python3.8/site-packages/sklearn/utils/_set_output.py:157, in _wrap_method_output.<locals>.wrapped(self, X, *args, **kwargs)
155 @wraps(f)
156 def wrapped(self, X, *args, **kwargs):
–> 157 data_to_wrap = f(self, X, *args, **kwargs)
158 if isinstance(data_to_wrap, tuple):
159 # only wrap the first output for cross decomposition
160 return_tuple = (
161 _wrap_data_with_container(method, data_to_wrap[0], X, self),
162 *data_to_wrap[1:],
163 )
File /home/share/temp/venv/lib/python3.8/site-packages/sklearn/base.py:916, in TransformerMixin.fit_transform(self, X, y, **fit_params)
912 # non-optimized default implementation; override when a better
913 # method is possible for a given clustering algorithm
914 if y is None:
915 # fit method of arity 1 (unsupervised transformation)
…
909 )
911 if self.with_std:
912 # First pass
ValueError: Cannot center sparse matrices: pass `with_mean=False` instead. See docstring for motivation and alternatives.
Output is truncated. View as a scrollable element or open in a text editor. Adjust cell output settings…
- Epoch 1/30
102/102 [==============================] – 1s 3ms/step – loss: 1.5513 – accuracy: 0.3968 – val_loss: 1.4406 – val_accuracy: 0.4617
Epoch 2/30
102/102 [==============================] – 0s 2ms/step – loss: 0.4365 – accuracy: 0.8805 – val_loss: 1.6337 – val_accuracy: 0.4519
Epoch 3/30
102/102 [==============================] – 0s 2ms/step – loss: 0.1051 – accuracy: 0.9731 – val_loss: 1.7925 – val_accuracy: 0.4654
Epoch 4/30
102/102 [==============================] – 0s 2ms/step – loss: 0.0418 – accuracy: 0.9883 – val_loss: 1.9068 – val_accuracy: 0.4556
Epoch 5/30
102/102 [==============================] – 0s 2ms/step – loss: 0.0209 – accuracy: 0.9941 – val_loss: 1.9635 – val_accuracy: 0.4593
Epoch 6/30
102/102 [==============================] – 0s 2ms/step – loss: 0.0170 – accuracy: 0.9935 – val_loss: 2.0427 – val_accuracy: 0.4506
Epoch 7/30
102/102 [==============================] – 0s 2ms/step – loss: 0.0101 – accuracy: 0.9972 – val_loss: 2.0677 – val_accuracy: 0.4630
Epoch 8/30
102/102 [==============================] – 0s 2ms/step – loss: 0.0084 – accuracy: 0.9963 – val_loss: 2.1438 – val_accuracy: 0.4543
Epoch 9/30
102/102 [==============================] – 0s 2ms/step – loss: 0.0068 – accuracy: 0.9975 – val_loss: 2.1674 – val_accuracy: 0.4593
Epoch 10/30
102/102 [==============================] – 0s 2ms/step – loss: 0.0047 – accuracy: 0.9981 – val_loss: 2.2183 – val_accuracy: 0.4568
Epoch 11/30
102/102 [==============================] – 0s 2ms/step – loss: 0.0042 – accuracy: 0.9981 – val_loss: 2.2547 – val_accuracy: 0.4593
Epoch 12/30
102/102 [==============================] – 0s 2ms/step – loss: 0.0043 – accuracy: 0.9981 – val_loss: 2.2842 – val_accuracy: 0.4605
Epoch 13/30
102/102 [==============================] – 0s 2ms/step – loss: 0.0032 – accuracy: 0.9981 – val_loss: 2.3219 – val_accuracy: 0.4630
…
102/102 [==============================] – 0s 2ms/step – loss: 0.0013 – accuracy: 0.9994 – val_loss: 2.7391 – val_accuracy: 0.4605
26/26 [==============================] – 0s 486us/step – loss: 2.7391 – accuracy: 0.4605
Test Loss: 2.7390570640563965
Test Accuracy: 0.4604938328266144
- from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from keras.models import Sequential
from keras.layers import Dense
# データをトレーニングセットとテストセットに分割
X_train, X_test, y_train, y_test = train_test_split(X_combined, y, test_size=0.3, random_state=42)
# データの標準化
scaler = StandardScaler(with_mean=False) # with_mean=Falseを追加
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)
# クラス数を取得
num_classes = len(np.unique(y_train))
# モデルの作成
model = Sequential([
Dense(64, activation=’relu’, input_shape=(X_train_scaled.shape[1],)),
Dense(64, activation=’relu’),
Dense(num_classes, activation=’softmax’) # 多クラス分類用の出力層
])
# モデルのコンパイル
model.compile(optimizer=’adam’, loss=’sparse_categorical_crossentropy’, metrics=['accuracy’])
# モデルのトレーニング
history = model.fit(X_train_scaled, y_train, epochs=5, batch_size=32, validation_data=(X_test_scaled, y_test))
# テストデータでの予測と評価
loss, accuracy = model.evaluate(X_test_scaled, y_test)
print(“Test Loss:", loss)
print(“Test Accuracy:", accuracy)
- japaneseを引き数にすればいい?
- Word Embeddings
単語の意味を表す密なベクトル表現を学習する方法です。Word2VecやGloVeなどのアルゴリズムを使用して、単語を連続したベクトル空間に埋め込むことができます。
商品名の各単語をベクトルに変換し、それらのベクトルの平均や合計をとることで、商品名全体の埋め込みを得ることができます。
これのサンプルコードくれ
- 正則化の係数ってなに?
- —————————————————————————
InvalidArgumentError Traceback (most recent call last)
Cell In[180], line 26
23 model.summary()
25 # モデルのトレーニング
—> 26 history = model.fit(X_train, y_train, epochs=10, batch_size=32, validation_data=(X_test, y_test))
28 # テストデータでの予測
29 y_pred = model.predict(X_test)
File /home/share/temp/venv/lib/python3.8/site-packages/keras/src/utils/traceback_utils.py:70, in filter_traceback.<locals>.error_handler(*args, **kwargs)
67 filtered_tb = _process_traceback_frames(e.__traceback__)
68 # To get the full stack trace, call:
69 # `tf.debugging.disable_traceback_filtering()`
—> 70 raise e.with_traceback(filtered_tb) from None
71 finally:
72 del filtered_tb
File /home/share/temp/venv/lib/python3.8/site-packages/tensorflow/python/eager/execute.py:53, in quick_execute(op_name, num_outputs, inputs, attrs, ctx, name)
51 try:
52 ctx.ensure_initialized()
—> 53 tensors = pywrap_tfe.TFE_Py_Execute(ctx._handle, device_name, op_name,
54 inputs, attrs, num_outputs)
55 except core._NotOkStatusException as e:
56 if name is not None:
…
TypeError: 'SparseTensor’ object is not subscriptable
- —————————————————————————
InvalidArgumentError Traceback (most recent call last)
Cell In[183], line 31
28 model.compile(optimizer=’adam’, loss=’sparse_categorical_crossentropy’, metrics=['accuracy’])
30 # モデルのトレーニング
—> 31 history = model.fit(X_train, y_train, epochs=10, batch_size=32, validation_data=(X_test, y_test))
34 # テストデータでの予測
35 y_pred = model.predict(X_test)
File /home/share/temp/venv/lib/python3.8/site-packages/keras/src/utils/traceback_utils.py:70, in filter_traceback.<locals>.error_handler(*args, **kwargs)
67 filtered_tb = _process_traceback_frames(e.__traceback__)
68 # To get the full stack trace, call:
69 # `tf.debugging.disable_traceback_filtering()`
—> 70 raise e.with_traceback(filtered_tb) from None
71 finally:
72 del filtered_tb
File /home/share/temp/venv/lib/python3.8/site-packages/tensorflow/python/eager/execute.py:53, in quick_execute(op_name, num_outputs, inputs, attrs, ctx, name)
51 try:
52 ctx.ensure_initialized()
—> 53 tensors = pywrap_tfe.TFE_Py_Execute(ctx._handle, device_name, op_name,
54 inputs, attrs, num_outputs)
55 except core._NotOkStatusException as e:
56 if name is not None:
…
File “/home/share/temp/venv/lib/python3.8/site-packages/keras/src/backend.py", line 5762, in sparse_categorical_crossentropy
res = tf.nn.sparse_softmax_cross_entropy_with_logits(
Node: 'sparse_categorical_crossentropy/SparseSoftmaxCrossEntropyWithLogits/SparseSoftmaxCrossEntropyWithLogits’
Received a label value of 140 which is outside the valid range of [0, 1). Label values: 120 80 100 120 140 100 60 100 140 100 60 60 60 100 100 60 100 80 80 60 100 60 60 100 120 60 60 140 60 60 60 60
[[{{node sparse_categorical_crossentropy/SparseSoftmaxCrossEntropyWithLogits/SparseSoftmaxCrossEntropyWithLogits}}]] [Op:__inference_train_function_33833]
Output is truncated. View as a scrollable element or open in a text editor. Adjust cell output settings…
- Epoch 1/10
102/102 [==============================] – 1s 3ms/step – loss: -2549.9565 – accuracy: 0.0000e+00 – val_loss: -9641.7832 – val_accuracy: 0.0000e+00
Epoch 2/10
102/102 [==============================] – 0s 2ms/step – loss: -100903.8047 – accuracy: 0.0000e+00 – val_loss: -109140.1953 – val_accuracy: 0.0000e+00
Epoch 3/10
102/102 [==============================] – 0s 2ms/step – loss: -641171.8750 – accuracy: 0.0000e+00 – val_loss: -435671.3750 – val_accuracy: 0.0000e+00
Epoch 4/10
102/102 [==============================] – 0s 2ms/step – loss: -2067545.3750 – accuracy: 0.0000e+00 – val_loss: -1124630.8750 – val_accuracy: 0.0000e+00
Epoch 5/10
102/102 [==============================] – 0s 2ms/step – loss: -4791715.5000 – accuracy: 0.0000e+00 – val_loss: -2288296.2500 – val_accuracy: 0.0000e+00
Epoch 6/10
102/102 [==============================] – 0s 2ms/step – loss: -9201973.0000 – accuracy: 0.0000e+00 – val_loss: -4054063.5000 – val_accuracy: 0.0000e+00
Epoch 7/10
102/102 [==============================] – 0s 2ms/step – loss: -15661360.0000 – accuracy: 0.0000e+00 – val_loss: -6518505.0000 – val_accuracy: 0.0000e+00
Epoch 8/10
102/102 [==============================] – 0s 2ms/step – loss: -24346854.0000 – accuracy: 0.0000e+00 – val_loss: -9727398.0000 – val_accuracy: 0.0000e+00
Epoch 9/10
102/102 [==============================] – 0s 2ms/step – loss: -35608440.0000 – accuracy: 0.0000e+00 – val_loss: -13758504.0000 – val_accuracy: 0.0000e+00
Epoch 10/10
102/102 [==============================] – 0s 2ms/step – loss: -49649712.0000 – accuracy: 0.0000e+00 – val_loss: -18720726.0000 – val_accuracy: 0.0000e+00
26/26 [==============================] – 0s 617us/step
Accuracy: 0.0
Precision: 0.0
Recall: 0.0
F1 Score: 0.0
- 商品名を高次元の特徴量にしたい
- トピックモデリング
商品名の意味的なトピックを抽出する方法です。Latent Dirichlet Allocation(LDA)などの手法を使用して、商品名のトピック分布を推定することができます。
- stopwordってなに
- 日本語のほうがいいかも
- リサイズした時、何ピクセルくらいがいい?64*64pixelでもいい?
- imgタグのhtmlデータがあって、それを一括でDLしたい。
- itemCodesmallImageUrls
webike-rb:27512543https://thumbnail.image.rakuten.co.jp/@0_mall/webike-rb/cabinet/2475/1155525_2475.jpg?_ex=128×128
webike-rb:26660942https://thumbnail.image.rakuten.co.jp/@0_mall/webike-rb/cabinet/2142/932618_2142.jpg?_ex=128×128
webike-rb:26657584https://thumbnail.image.rakuten.co.jp/@0_mall/webike-rb/cabinet/2141/929604_2141.jpg?_ex=128×128
webike-rb:27511253https://thumbnail.image.rakuten.co.jp/@0_mall/webike-rb/cabinet/2470/1152236_2470.jpg?_ex=128×128
webike-rb:26268541https://thumbnail.image.rakuten.co.jp/@0_mall/webike-rb/cabinet/70/82073_70.jpg?_ex=128×128
webike-rb:27394622https://thumbnail.image.rakuten.co.jp/@0_mall/webike-rb/cabinet/2179/960809_2179.jpg?_ex=128×128
webike-rb:27394621https://thumbnail.image.rakuten.co.jp/@0_mall/webike-rb/cabinet/2179/960807_2179.jpg?_ex=128×128
webike-rb:26654089https://thumbnail.image.rakuten.co.jp/@0_mall/webike-rb/cabinet/2134/916648_2134.jpg?_ex=128×128
webike-rb:26653133https://thumbnail.image.rakuten.co.jp/@0_mall/webike-rb/cabinet/2133/914851_2133.jpg?_ex=128×128
webike-rb:26268543https://thumbnail.image.rakuten.co.jp/@0_mall/webike-rb/cabinet/28/25400_28.jpg?_ex=128×128
webike-rb:26654086https://thumbnail.image.rakuten.co.jp/@0_mall/webike-rb/cabinet/2134/916642_2134.jpg?_ex=128×128
webike-rb:27147831https://thumbnail.image.rakuten.co.jp/@0_mall/webike-rb/cabinet/132/373431_132.jpg?_ex=128×128
webike-rb:20649061https://thumbnail.image.rakuten.co.jp/@0_mall/webike-rb/cabinet/174/623295_174.jpg?_ex=128×128
csvでこんな感じである。これをダウンロードしたい
- 128*128pixelの画像データなら、ディープラーニングで画像の特徴を判定するのに十分か?
- 画像データがある場合、画像を適切に前処理して特徴量として使用します。例えば、画像をリサイズし、正規化します。
商品名やその他のテキストデータがある場合、テキストをトークン化して数値特徴量に変換します。
カテゴリカルなデータがある場合、エンコーディングして数値データに変換します。
- 特徴量の作成:
商品名やテキストデータから特徴量を抽出します。これには、TF-IDFや単語の埋め込み(Word Embeddings)を使用することができます
- TF-IDF特徴量を含めると精度は和久瑠奈った
- いや、悪くなった。
- ハイパーパラメータは、特徴量を追加するたびにするの?ランダムサーチとか時間かかって大変なんだけど
- データの結合:
特徴量を結合し、1つの特徴量行列を作成します。
- もし、実際の予測したいデータに画像が欠損していたらどうなる?
- sqlで、空欄以外を取得したい
- X_testの形式どうしたらいいの?
- 特徴量の作成にsizeを使ってしまった。目的変数を特徴量作成にいれてはいけないんだね
- 梱包サイズの推定に、どのような情報があればよいと思う?
- 梱包サイズの推定に商品画像も学習データにいれたい
- 梱包サイズの推定にはディープラーニングじゃないとダメ?
- 機械学習で梱包サイズの推定を試してみたい
- 手元に画像データがある。画像データと、梱包サイズ、その他商品タイトル等があるので、梱包サイズ分類するモデルをつくりたい
- img_array.reshape(1, 224, 224, 3)ってなに
- Precision: 0.9975623181567979
Recall: 0.9975308641975309
F1 Score: 0.9975335885438207
ROC AUC Score: 1.0
lightgbmの結果
- 過学習かどうかは、どうやって判定するの?
- 交差検証で、過学習かどうかわかる?
- モデルを出力して、そのモデルを使って、分類を行いたい。
- 保存はtxt形式?
- Accuracy: 0.0
Precision: 0.0
Recall: 0.0
F1 Score: 0.0
ROC AUC Score: 0.9999537180443555
となる。なんで?
- titanicは、回帰?分類?
- Titanicデータセットを使用してランダムフォレストをトレーニングし、生存を予測する
- titanicのcsvなんかもってない
- import seaborn as sns
# Titanicデータセットの読み込み
titanic_data = sns.load_dataset('titanic’)
# データの概要を確認
print(titanic_data.head())
このデータセットをつかって、再度分類のサンプルコード生成して、評価は、例の4つで
- 基本的に、AUCの指標が最も高くなるのかな?
- titanicのこの分類問題は、最高でどれくらいの精度の値がでるの?
- 標準偏差をみて、なにがわかる
- 平均が0.38で標準偏差が0.48ならどう考察する
- 平均が0.38で標準偏差が0.38ならどう考察する
- オーバーサンプリング、アンダーサンプリングって、目的変数に対して行うの?
- size 発送件数
60 1559
100 817
120 610
80 593
140 293
160 179
180 30
200 11
極端に件数がすくないものは、除去したほうがいいのかな?
- オーバーサンプリングのみしたい。
- オーバーサンプリングやアンダーサンプリングをしても、大きな変化はなかった。
- やはり、データセットによる、機械学習モデルの性能への影響が一番大きいよね
- カテゴリーがデータセットに与える影響が大きいと思う
- from sklearn.preprocessing import LabelEncoder
import xgboost as xgb
# LabelEncoderを使用してクラスラベルを変換する
label_encoder = LabelEncoder()
y_train_encoded = label_encoder.fit_transform(y_train)
y_test_encoded = label_encoder.transform(y_test)
# XGBoostモデルの作成とトレーニング
xgb_model = xgb.XGBClassifier(n_estimators=1000, random_state=100)
xgb_model.fit(X_train, y_train_encoded)
# テストセットでの予測
y_pred_encoded = xgb_model.predict(X_test)
# モデルの評価
accuracy = accuracy_score(y_test_encoded, y_pred_encoded)
precision = precision_score(y_test_encoded, y_pred_encoded, average=’weighted’)
recall = recall_score(y_test_encoded, y_pred_encoded, average=’weighted’)
f1 = f1_score(y_test_encoded, y_pred_encoded, average=’weighted’)
roc_auc = roc_auc_score(y_test_encoded, xgb_model.predict_proba(X_test), multi_class=’ovr’)
print(“Accuracy:", accuracy)
print(“Precision:", precision)
print(“Recall:", recall)
print(“F1 Score:", f1)
print(“ROC AUC Score:", roc_auc)
from sklearn.preprocessing import LabelEncoder
import xgboost as xgb
# LabelEncoderを使用してクラスラベルを変換する
label_encoder = LabelEncoder()
y_train_encoded = label_encoder.fit_transform(y_train)
y_test_encoded = label_encoder.transform(y_test)
# XGBoostモデルの作成とトレーニング
xgb_model = xgb.XGBClassifier(n_estimators=1000, random_state=100)
xgb_model.fit(X_train, y_train_encoded)
# テストセットでの予測
y_pred_encoded = xgb_model.predict(X_test)
# モデルの評価
accuracy = accuracy_score(y_test_encoded, y_pred_encoded)
precision = precision_score(y_test_encoded, y_pred_encoded, average=’weighted’)
recall = recall_score(y_test_encoded, y_pred_encoded, average=’weighted’)
f1 = f1_score(y_test_encoded, y_pred_encoded, average=’weighted’)
roc_auc = roc_auc_score(y_test_encoded, xgb_model.predict_proba(X_test), multi_class=’ovr’)
print(“Accuracy:", accuracy)
print(“Precision:", precision)
print(“Recall:", recall)
print(“F1 Score:", f1)
print(“ROC AUC Score:", roc_auc)
from sklearn.preprocessing import LabelEncoder
import xgboost as xgb
# LabelEncoderを使用してクラスラベルを変換する
label_encoder = LabelEncoder()
y_train_encoded = label_encoder.fit_transform(y_train)
y_test_encoded = label_encoder.transform(y_test)
# XGBoostモデルの作成とトレーニング
xgb_model = xgb.XGBClassifier(n_estimators=1000, random_state=100)
xgb_model.fit(X_train, y_train_encoded)
# テストセットでの予測
y_pred_encoded = xgb_model.predict(X_test)
# モデルの評価
accuracy = accuracy_score(y_test_encoded, y_pred_encoded)
precision = precision_score(y_test_encoded, y_pred_encoded, average=’weighted’)
recall = recall_score(y_test_encoded, y_pred_encoded, average=’weighted’)
f1 = f1_score(y_test_encoded, y_pred_encoded, average=’weighted’)
roc_auc = roc_auc_score(y_test_encoded, xgb_model.predict_proba(X_test), multi_class=’ovr’)
print(“Accuracy:", accuracy)
print(“Precision:", precision)
print(“Recall:", recall)
print(“F1 Score:", f1)
print(“ROC AUC Score:", roc_auc)
from sklearn.preprocessing import LabelEncoder
import xgboost as xgb
# LabelEncoderを使用してクラスラベルを変換する
label_encoder = LabelEncoder()
y_train_encoded = label_encoder.fit_transform(y_train)
y_test_encoded = label_encoder.transform(y_test)
# XGBoostモデルの作成とトレーニング
xgb_model = xgb.XGBClassifier(n_estimators=1000, random_state=100)
xgb_model.fit(X_train, y_train_encoded)
# テストセットでの予測
y_pred_encoded = xgb_model.predict(X_test)
# モデルの評価
accuracy = accuracy_score(y_test_encoded, y_pred_encoded)
precision = precision_score(y_test_encoded, y_pred_encoded, average=’weighted’)
recall = recall_score(y_test_encoded, y_pred_encoded, average=’weighted’)
f1 = f1_score(y_test_encoded, y_pred_encoded, average=’weighted’)
roc_auc = roc_auc_score(y_test_encoded, xgb_model.predict_proba(X_test), multi_class=’ovr’)
print(“Accuracy:", accuracy)
print(“Precision:", precision)
print(“Recall:", recall)
print(“F1 Score:", f1)
print(“ROC AUC Score:", roc_auc)—————————————————————————
XGBoostError Traceback (most recent call last)
Cell In[61], line 12
10 # XGBoostモデルの作成とトレーニング
11 xgb_model = xgb.XGBClassifier(n_estimators=1000, random_state=100)
—> 12 xgb_model.fit(X_train, y_train)
14 # テストセットでの予測
15 y_pred = xgb_model.predict(X_test)
File /home/share/temp/venv/lib/python3.8/site-packages/xgboost/core.py:730, in require_keyword_args.<locals>.throw_if.<locals>.inner_f(*args, **kwargs)
728 for k, arg in zip(sig.parameters, args):
729 kwargs[k] = arg
–> 730 return func(**kwargs)
File /home/share/temp/venv/lib/python3.8/site-packages/xgboost/sklearn.py:1500, in XGBClassifier.fit(self, X, y, sample_weight, base_margin, eval_set, eval_metric, early_stopping_rounds, verbose, xgb_model, sample_weight_eval_set, base_margin_eval_set, feature_weights, callbacks)
1489 params[“num_class"] = self.n_classes_
1491 (
1492 model,
1493 metric,
(…)
1498 xgb_model, eval_metric, params, early_stopping_rounds, callbacks
1499 )
-> 1500 train_dmatrix, evals = _wrap_evaluation_matrices(
1501 missing=self.missing,
1502 X=X,
…
[bt] (6) /usr/lib/python3.8/lib-dynload/_ctypes.cpython-38-x86_64-linux-gnu.so(_ctypes_callproc+0x5b6) [0x7fc1a4d77306]
[bt] (7) /usr/lib/python3.8/lib-dynload/_ctypes.cpython-38-x86_64-linux-gnu.so(+0x139dc) [0x7fc1a4d779dc]
[bt] (8) /home/share/temp/venv/bin/python(_PyObject_MakeTpCall+0x296) [0x5d6066]
Output is truncated. View as a scrollable element or open in a text editor. Adjust cell output settings…
- from sklearn.preprocessing import LabelEncoder
import xgboost as xgb
# LabelEncoderを使用してクラスラベルを変換する
label_encoder = LabelEncoder()
y_train_encoded = label_encoder.fit_transform(y_train)
y_test_encoded = label_encoder.transform(y_test)
# XGBoostモデルの作成とトレーニング
xgb_model = xgb.XGBClassifier(n_estimators=1000, random_state=100)
xgb_model.fit(X_train, y_train_encoded)
# テストセットでの予測
y_pred_encoded = xgb_model.predict(X_test)
# モデルの評価
accuracy = accuracy_score(y_test_encoded, y_pred_encoded)
precision = precision_score(y_test_encoded, y_pred_encoded, average=’weighted’)
recall = recall_score(y_test_encoded, y_pred_encoded, average=’weighted’)
f1 = f1_score(y_test_encoded, y_pred_encoded, average=’weighted’)
roc_auc = roc_auc_score(y_test_encoded, xgb_model.predict_proba(X_test), multi_class=’ovr’)
print(“Accuracy:", accuracy)
print(“Precision:", precision)
print(“Recall:", recall)
print(“F1 Score:", f1)
print(“ROC AUC Score:", roc_auc)
—————————————————————————
XGBoostError Traceback (most recent call last)
Cell In[66], line 12
10 # XGBoostモデルの作成とトレーニング
11 xgb_model = xgb.XGBClassifier(n_estimators=1000, random_state=100)
—> 12 xgb_model.fit(X_train, y_train_encoded)
14 # テストセットでの予測
15 y_pred_encoded = xgb_model.predict(X_test)
File /home/share/temp/venv/lib/python3.8/site-packages/xgboost/core.py:730, in require_keyword_args.<locals>.throw_if.<locals>.inner_f(*args, **kwargs)
728 for k, arg in zip(sig.parameters, args):
729 kwargs[k] = arg
–> 730 return func(**kwargs)
File /home/share/temp/venv/lib/python3.8/site-packages/xgboost/sklearn.py:1500, in XGBClassifier.fit(self, X, y, sample_weight, base_margin, eval_set, eval_metric, early_stopping_rounds, verbose, xgb_model, sample_weight_eval_set, base_margin_eval_set, feature_weights, callbacks)
1489 params[“num_class"] = self.n_classes_
1491 (
1492 model,
1493 metric,
(…)
1498 xgb_model, eval_metric, params, early_stopping_rounds, callbacks
1499 )
-> 1500 train_dmatrix, evals = _wrap_evaluation_matrices(
1501 missing=self.missing,
1502 X=X,
…
[bt] (6) /usr/lib/python3.8/lib-dynload/_ctypes.cpython-38-x86_64-linux-gnu.so(_ctypes_callproc+0x5b6) [0x7fc1a4d77306]
[bt] (7) /usr/lib/python3.8/lib-dynload/_ctypes.cpython-38-x86_64-linux-gnu.so(+0x139dc) [0x7fc1a4d779dc]
[bt] (8) /home/share/temp/venv/bin/python(_PyObject_MakeTpCall+0x296) [0x5d6066]
- —————————————————————————
ValueError Traceback (most recent call last)
Cell In[70], line 59
57 # XGBoostモデルの作成とトレーニング
58 xgb_model = xgb.XGBClassifier(n_estimators=1000, random_state=100)
—> 59 xgb_model.fit(X_train, y_train)
61 # テストセットでの予測
62 y_pred = xgb_model.predict(X_test)
File /home/share/temp/venv/lib/python3.8/site-packages/xgboost/core.py:730, in require_keyword_args.<locals>.throw_if.<locals>.inner_f(*args, **kwargs)
728 for k, arg in zip(sig.parameters, args):
729 kwargs[k] = arg
–> 730 return func(**kwargs)
File /home/share/temp/venv/lib/python3.8/site-packages/xgboost/sklearn.py:1471, in XGBClassifier.fit(self, X, y, sample_weight, base_margin, eval_set, eval_metric, early_stopping_rounds, verbose, xgb_model, sample_weight_eval_set, base_margin_eval_set, feature_weights, callbacks)
1466 expected_classes = self.classes_
1467 if (
1468 classes.shape != expected_classes.shape
1469 or not (classes == expected_classes).all()
1470 ):
-> 1471 raise ValueError(
1472 f"Invalid classes inferred from unique values of `y`. "
1473 f"Expected: {expected_classes}, got {classes}"
1474 )
1476 params = self.get_xgb_params()
1478 if callable(self.objective):
ValueError: Invalid classes inferred from unique values of `y`. Expected: [0 1 2 3 4 5], got [ 60 80 100 120 140 160]
- 分類の有名なデータセットある?
- オーバーサンプリングをおこなってみたい。
- Exception ignored on calling ctypes callback function: <function ThreadpoolController._find_libraries_with_dl_iterate_phdr.<locals>.match_library_callback at 0x7fc098116040>
Traceback (most recent call last):
File “/home/share/temp/venv/lib/python3.8/site-packages/threadpoolctl.py", line 1014, in match_library_callback
self._make_controller_from_path(filepath)
File “/home/share/temp/venv/lib/python3.8/site-packages/threadpoolctl.py", line 1184, in _make_controller_from_path
lib_controller = controller_class(
File “/home/share/temp/venv/lib/python3.8/site-packages/threadpoolctl.py", line 113, in __init__
self.dynlib = ctypes.CDLL(filepath, mode=_RTLD_NOLOAD)
File “/usr/lib/python3.8/ctypes/__init__.py", line 373, in __init__
self._handle = _dlopen(self._name, mode)
OSError: dlopen() error
- from imblearn.over_sampling import SMOTE
# SMOTEを適用
smote = SMOTE(random_state=42)
X_train_resampled, y_train_resampled = smote.fit_resample(X_train_scaled, y_train)
# ランダムフォレストモデルの作成とトレーニング
rf_model_resampled = RandomForestClassifier(n_estimators=100, random_state=100)
rf_model_resampled.fit(X_train_resampled, y_train_resampled)
精度等表示して
- RF_ベースモデル_est100ベースモデル_est500商品名の除外メーカー品番をラベルエンコーディング追加商品名の記号置換商品名のラベルエンコーディング追加商品名のCountVectorizerの除外標準化XB_ベースモデル_est=1000XB_ランダムサーチXB_ベイズ最適化XB_ベイズ最適化周辺をグリッドサーチRF_オーバーサンプリング
Accuracy:0.5628815630.560439560.4884004880.5677655680.5567765570.5714285710.5372405370.5677655680.5335775340.5543345540.5457875460.5641025640.576312576
Precision:0.5315840.5277868790.4782995730.5402894350.5314114290.5392694230.5214282930.5402894350.5237452480.5215769110.5144864210.5397745430.55480101
Recall:0.5628815630.560439560.4884004880.5677655680.5567765570.5714285710.5372405370.5677655680.5335775340.5543345540.5457875460.5641025640.576312576
F10.5259812770.5214738420.481048240.5319235320.5225131660.5370858670.5254654420.5319235320.5251315840.5190071830.5115733910.5346487760.546732668
ROC0.7550416090.7828641750.7191715240.7903844320.7616002680.7545344520.7385223670.7903920030.726494170.8012548850.7742405460.8034846850.767741851
これが今までの結果。オーバーサンプリングしたら少しは改善されたけど、まだまだ
- アンダーサンプリングとの組み合わせ: オーバーサンプリングとアンダーサンプリングを組み合わせ
- コードちょうだい
- RF_ベースモデル_est100ベースモデル_est500商品名の除外メーカー品番をラベルエンコーディング追加商品名の記号置換商品名のラベルエンコーディング追加商品名のCountVectorizerの除外標準化XB_ベースモデル_est=1000XB_ランダムサーチXB_ベイズ最適化XB_ベイズ最適化周辺をグリッドサーチRF_オーバーサンプリングRF_オーバーアンダーサンプリング
Accuracy:0.5628815630.560439560.4884004880.5677655680.5567765570.5714285710.5372405370.5677655680.5335775340.5543345540.5457875460.5641025640.5763125760.568986569
Precision:0.5315840.5277868790.4782995730.5402894350.5314114290.5392694230.5214282930.5402894350.5237452480.5215769110.5144864210.5397745430.554801010.541631725
Recall:0.5628815630.560439560.4884004880.5677655680.5567765570.5714285710.5372405370.5677655680.5335775340.5543345540.5457875460.5641025640.5763125760.568986569
F10.5259812770.5214738420.481048240.5319235320.5225131660.5370858670.5254654420.5319235320.5251315840.5190071830.5115733910.5346487760.5467326680.53367793
ROC0.7550416090.7828641750.7191715240.7903844320.7616002680.7545344520.7385223670.7903920030.726494170.8012548850.7742405460.8034846850.7677418510.755179211
大して変わらないなぁ
- オーバーサンプリングやアンダーサンプリングをしているが、具体的にどう不均衡が発生しているのか視覚化してみたい
- Best Parameters: {'colsample_bytree’: 0.6431565707973218, 'learning_rate’: 0.019428755706020276, 'max_depth’: 9, 'n_estimators’: 340, 'subsample’: 0.7257423924305306}
これは、ランダムサーチの結果です。このパラメーターをベースにして、グリッドサーチで探索してほしい。
- AUCがたかくて、accuracy,precision,recallが低い、オーバーサンプリングかアンダーサンプリングをしたほうが良いか?
- クラスの不均衡にクラスの重みづけで対応してみたい
- from sklearn.preprocessing import LabelEncoder
import xgboost as xgb
# LabelEncoderを使用してクラスラベルを変換する
label_encoder = LabelEncoder()
y_train_encoded = label_encoder.fit_transform(y_train)
y_test_encoded = label_encoder.transform(y_test)
# XGBoostモデルの作成とトレーニング
xgb_model = xgb.XGBClassifier(n_estimators=1000, random_state=100)
xgb_model.fit(X_train, y_train_encoded)
# テストセットでの予測
y_pred_encoded = xgb_model.predict(X_test)
# モデルの評価
accuracy = accuracy_score(y_test_encoded, y_pred_encoded)
precision = precision_score(y_test_encoded, y_pred_encoded, average=’weighted’)
recall = recall_score(y_test_encoded, y_pred_encoded, average=’weighted’)
f1 = f1_score(y_test_encoded, y_pred_encoded, average=’weighted’)
roc_auc = roc_auc_score(y_test_encoded, xgb_model.predict_proba(X_test), multi_class=’ovr’)
print(“Accuracy:", accuracy)
print(“Precision:", precision)
print(“Recall:", recall)
print(“F1 Score:", f1)
print(“ROC AUC Score:", roc_auc)
- from sklearn.utils.class_weight import compute_class_weight
# クラスの重みを計算
class_weights = compute_class_weight('balanced’, np.unique(y_train), y_train)
# クラスの重みを辞書に変換
class_weight_dict = dict(zip(np.unique(y_train), class_weights))
# ランダムフォレストモデルの作成とトレーニング
rf_model_weighted = RandomForestClassifier(n_estimators=100, random_state=100, class_weight=class_weight_dict)
rf_model_weighted.fit(X_train_scaled, y_train)
# テストセットでの予測
y_pred_weighted = rf_model_weighted.predict(X_test_scaled)
# モデルの評価
accuracy_weighted = accuracy_score(y_test, y_pred_weighted)
precision_weighted = precision_score(y_test, y_pred_weighted, average=’weighted’)
recall_weighted = recall_score(y_test, y_pred_weighted, average=’weighted’)
f1_weighted = f1_score(y_test, y_pred_weighted, average=’weighted’)
roc_auc_weighted = roc_auc_score(y_test, rf_model_weighted.predict_proba(X_test_scaled), multi_class=’ovr’)
print(“Weighted Accuracy:", accuracy_weighted)
print(“Weighted Precision:", precision_weighted)
print(“Weighted Recall:", recall_weighted)
print(“Weighted F1 Score:", f1_weighted)
print(“Weighted ROC AUC Score:", roc_auc_weighted)
TypeError Traceback (most recent call last)
Cell In[26], line 4
1 from sklearn.utils.class_weight import compute_class_weight
3 # クラスの重みを計算
—-> 4 class_weights = compute_class_weight('balanced’, np.unique(y_train), y_train)
6 # クラスの重みを辞書に変換
7 class_weight_dict = dict(zip(np.unique(y_train), class_weights))
TypeError: compute_class_weight() takes 1 positional argument but 3 were given
- Weighted Accuracy: 0.5616605616605617
Weighted Precision: 0.5318493541919603
Weighted Recall: 0.5616605616605617
Weighted F1 Score: 0.5216993753351751
Weighted ROC AUC Score: 0.7692266112375148
不均衡が未だ発生している。AUCが高い
- ランダムフォレストのaverage="weighted"で行った場合、上手く重みづけがされていないようだけど、どうしたらいいと思う?
- xgboostでクラスの重みづけはどうやるの?
- Accuracy: 0.5335775335775336
Precision: 0.5237452475014479
Recall: 0.5335775335775336
F1 Score: 0.5251315843386484
ROC AUC Score: 0.7264941698664935
結果はこれ、やはり重みづけではだめか?
- n_iter=50 これは50回のイテレーション?
- ベイズ最適化でクロスバリデーションをしたい
- Best Parameters: {'colsample_bytree’: 0.6431565707973218, 'learning_rate’: 0.019428755706020276, 'max_depth’: 9, 'n_estimators’: 340, 'subsample’: 0.7257423924305306}
ランダムサーチの結果、上記だったんだ。これを活かせないか?
- ランダムサーチを活かしたベイズ最適化のコードくれ
- RandomizedSearchCVのn_iterパラメータが100とは?
- from sklearn.model_selection import RandomizedSearchCV
from scipy.stats import uniform, randint
# チューニングするハイパーパラメータの範囲を定義
param_dist = {
'n_estimators’: randint(100, 1000),
'max_depth’: randint(3, 10),
'learning_rate’: uniform(0.01, 0.3),
'subsample’: uniform(0.6, 0.4),
'colsample_bytree’: uniform(0.6, 0.4),
}
# ランダムサーチを行う
random_search = RandomizedSearchCV(estimator=xgb_model, param_distributions=param_dist, n_iter=100,
cv=3, scoring=’accuracy’, verbose=2, random_state=42, n_jobs=-1)
random_search.fit(X_train, y_train_encoded)
# 最適なモデルを取得
best_model = random_search.best_estimator_
# 最適なモデルで予測を行う
y_pred_encoded = best_model.predict(X_test)
# モデルの評価
accuracy = accuracy_score(y_test_encoded, y_pred_encoded)
precision = precision_score(y_test_encoded, y_pred_encoded, average=’weighted’)
recall = recall_score(y_test_encoded, y_pred_encoded, average=’weighted’)
f1 = f1_score(y_test_encoded, y_pred_encoded, average=’weighted’)
roc_auc = roc_auc_score(y_test_encoded, best_model.predict_proba(X_test), multi_class=’ovr’)
print(“Best Parameters:", random_search.best_params_)
print(“Accuracy:", accuracy)
print(“Precision:", precision)
print(“Recall:", recall)
print(“F1 Score:", f1)
print(“ROC AUC Score:", roc_auc)
print(accuracy,precision,recall,f1,roc_auc)
いつ終わるのこれ?何組?
- random_search = RandomizedSearchCV(estimator=xgb_model, param_distributions=param_dist, n_iter=100, cv=3, scoring=’accuracy’, verbose=2, random_state=42, n_jobs=-1)これについて詳しく
- n_iter×cv=300だから、300回のイテレーションログが出力されるの?
- ランダムサーチの結果から、その周辺を探ったらどうかな?
- 機械学習ってさ、時間をかけて全パターン試せば、最適解が出るって事?
- XGBOOSTで行っているけど、ランダムサーチで、目星をつけて、その周辺をベイス最適化させたらどうか?
- Best Parameters: {'colsample_bytree’: 0.6431565707973218, 'learning_rate’: 0.019428755706020276, 'max_depth’: 9, 'n_estimators’: 340, 'subsample’: 0.7257423924305306}
Accuracy: 0.5543345543345544
Precision: 0.5215769114241183
Recall: 0.5543345543345544
F1 Score: 0.5190071834938049
ROC AUC Score: 0.8012548849572678
上記の結果が出た。
RF_ベースモデル_est100ベースモデル_est500商品名の除外メーカー品番をラベルエンコーディング追加商品名の記号置換商品名のラベルエンコーディング追加商品名のCountVectorizerの除外標準化XB_ベースモデル_est=1000XB_ランダムサーチ
Accuracy:0.5628815630.560439560.4884004880.5677655680.5567765570.5714285710.5372405370.5677655680.5335775340.554334554
Precision:0.5315840.5277868790.4782995730.5402894350.5314114290.5392694230.5214282930.5402894350.5237452480.521576911
Recall:0.5628815630.560439560.4884004880.5677655680.5567765570.5714285710.5372405370.5677655680.5335775340.554334554
F10.5259812770.5214738420.481048240.5319235320.5225131660.5370858670.5254654420.5319235320.5251315840.519007183
ROC0.7550416090.7828641750.7191715240.7903844320.7616002680.7545344520.7385223670.7903920030.726494170.801254885
- ベイズ最適化をしてみたい
- サーバーから応答がなくなる。CPUが常に100%になっている。ブースティングの処理をしているから。
- サーバーからの応答が無くなるんだけど、どうしたらいいかな、VSCODE。
重くなっても繋がってほしいのだが
- プロセッサ28個ついてるんだけどシステムが高い処理能力あるってこと?
- ランダムフォレストが応答しないよ
- random_search = RandomizedSearchCV(estimator=xgb_model, param_distributions=param_dist, n_iter=100, cv=3, scoring=’accuracy’, verbose=2, random_state=42, n_jobs=-1)これは、何パターン試すの?
- from sklearn.preprocessing import LabelEncoder
# LabelEncoderを使用してクラスラベルを変換する
label_encoder = LabelEncoder()
y_train_encoded = label_encoder.fit_transform(y_train)
y_test_encoded = label_encoder.transform(y_test)
# XGBoostモデルの作成とトレーニング
xgb_model = xgb.XGBClassifier(n_estimators=1000, random_state=100)
xgb_model.fit(X_train, y_train_encoded)
# テストセットでの予測
y_pred_encoded = xgb_model.predict(X_test)
# モデルの評価
accuracy = accuracy_score(y_test_encoded, y_pred_encoded)
precision = precision_score(y_test_encoded, y_pred_encoded, average=’weighted’)
recall = recall_score(y_test_encoded, y_pred_encoded, average=’weighted’)
f1 = f1_score(y_test_encoded, y_pred_encoded, average=’weighted’)
roc_auc = roc_auc_score(y_test_encoded, xgb_model.predict_proba(X_test), multi_class=’ovr’)
print(“Accuracy:", accuracy)
print(“Precision:", precision)
print(“Recall:", recall)
print(“F1 Score:", f1)
print(“ROC AUC Score:", roc_auc)
グリッドサーチして
- ランダムフォレストの方がブースティング系より結果が良かったんだけど、なんで?
- ModuleNotFoundError: No module named 'sklearn’
- NameError: name 'xgb’ is not defined
- ModuleNotFoundError: No module named 'xgboost’
- from sklearn.model_selection import GridSearchCV
# チューニングするハイパーパラメータの範囲を定義
param_grid = {
'n_estimators’: [100, 500, 1000],
'max_depth’: [3, 5, 7],
'learning_rate’: [0.01, 0.1, 0.3],
'subsample’: [0.6, 0.8, 1.0],
'colsample_bytree’: [0.6, 0.8, 1.0],
}
# グリッドサーチを行う
grid_search = GridSearchCV(estimator=xgb_model, param_grid=param_grid, cv=3, scoring=’accuracy’, verbose=2, n_jobs=-1)
grid_search.fit(X_train, y_train_encoded)
# 最適なモデルを取得
best_model = grid_search.best_estimator_
# 最適なモデルで予測を行う
y_pred_encoded = best_model.predict(X_test)
# モデルの評価
accuracy = accuracy_score(y_test_encoded, y_pred_encoded)
precision = precision_score(y_test_encoded, y_pred_encoded, average=’weighted’)
recall = recall_score(y_test_encoded, y_pred_encoded, average=’weighted’)
f1 = f1_score(y_test_encoded, y_pred_encoded, average=’weighted’)
roc_auc = roc_auc_score(y_test_encoded, best_model.predict_proba(X_test), multi_class=’ovr’)
print(“Best Parameters:", grid_search.best_params_)
print(“Accuracy:", accuracy)
print(“Precision:", precision)
print(“Recall:", recall)
print(“F1 Score:", f1)
print(“ROC AUC Score:", roc_auc)
ランダムサーチでおねがい
- データセットの特性: ランダムフォレストは、ブースティングよりもロバスト(頑健)な傾向があります。特に、外れ値やノイズが多い場合や、特徴量間の相互作用が複雑でない場合には、ランダムフォレストの方が良い結果を示すことがあります。
カテゴリ変数の場合、外れ値とかあるの?
- 機械学習でデータの標準化をしたい
- TypeError: Expected np.float32 or np.float64, met type(int64)
- —————————————————————————
ValueError Traceback (most recent call last)
Cell In[105], line 89
87 # データの標準化
88 scaler = StandardScaler()
—> 89 X_train_scaled = scaler.fit_transform(X_train)
90 X_test_scaled = scaler.transform(X_test)
94 # ランダムフォレストモデルの作成とトレーニング
File ~anaconda3libsite-packagessklearnutils_set_output.py:142, in _wrap_method_output.<locals>.wrapped(self, X, *args, **kwargs)
140 @wraps(f)
141 def wrapped(self, X, *args, **kwargs):
–> 142 data_to_wrap = f(self, X, *args, **kwargs)
143 if isinstance(data_to_wrap, tuple):
144 # only wrap the first output for cross decomposition
145 return (
146 _wrap_data_with_container(method, data_to_wrap[0], X, self),
147 *data_to_wrap[1:],
148 )
File ~anaconda3libsite-packagessklearnbase.py:859, in TransformerMixin.fit_transform(self, X, y, **fit_params)
855 # non-optimized default implementation; override when a better
856 # method is possible for a given clustering algorithm
857 if y is None:
858 # fit method of arity 1 (unsupervised transformation)
–> 859 return self.fit(X, **fit_params).transform(X)
860 else:
861 # fit method of arity 2 (supervised transformation)
862 return self.fit(X, y, **fit_params).transform(X)
File ~anaconda3libsite-packagessklearnpreprocessing_data.py:824, in StandardScaler.fit(self, X, y, sample_weight)
822 # Reset internal state before fitting
823 self._reset()
–> 824 return self.partial_fit(X, y, sample_weight)
File ~anaconda3libsite-packagessklearnpreprocessing_data.py:889, in StandardScaler.partial_fit(self, X, y, sample_weight)
887 if sparse.issparse(X):
888 if self.with_mean:
–> 889 raise ValueError(
890 “Cannot center sparse matrices: pass `with_mean=False` "
891 “instead. See docstring for motivation and alternatives."
892 )
893 sparse_constructor = (
894 sparse.csr_matrix if X.format == “csr" else sparse.csc_matrix
895 )
897 if self.with_std:
898 # First pass
ValueError: Cannot center sparse matrices: pass `with_mean=False` instead. See docstring for motivation and alternatives.
- [LightGBM] [Warning] No further splits with positive gain, best gain: -inf
別のアルゴリズムで試したい
- ブースティング系のサンプルコード XGBoost
- —————————————————————————
ValueError Traceback (most recent call last)
Cell In[108], line 5
3 # XGBoostモデルの作成とトレーニング
4 xgb_model = xgb.XGBClassifier(n_estimators=1000, random_state=100)
—-> 5 xgb_model.fit(X_train, y_train)
7 # テストセットでの予測
8 y_pred = xgb_model.predict(X_test)
File ~anaconda3libsite-packagesxgboostcore.py:729, in require_keyword_args.<locals>.throw_if.<locals>.inner_f(*args, **kwargs)
727 for k, arg in zip(sig.parameters, args):
728 kwargs[k] = arg
–> 729 return func(**kwargs)
File ~anaconda3libsite-packagesxgboostsklearn.py:1467, in XGBClassifier.fit(self, X, y, sample_weight, base_margin, eval_set, eval_metric, early_stopping_rounds, verbose, xgb_model, sample_weight_eval_set, base_margin_eval_set, feature_weights, callbacks)
1462 expected_classes = self.classes_
1463 if (
1464 classes.shape != expected_classes.shape
1465 or not (classes == expected_classes).all()
1466 ):
-> 1467 raise ValueError(
1468 f"Invalid classes inferred from unique values of `y`. "
1469 f"Expected: {expected_classes}, got {classes}"
1470 )
1472 params = self.get_xgb_params()
1474 if callable(self.objective):
ValueError: Invalid classes inferred from unique values of `y`. Expected: [0 1 2 3 4 5 6 7], got [ 60 80 100 120 140 160 180 200]
- パラメーターチューニングをサーチしたい
- RandomForestClassifier
日本語で何て読む?
- TypeError: Expected np.float32 or np.float64, met type(int64)
- [LightGBM] [Warning] No further splits with positive gain, best gain: -inf
このエラーを消したい
- ハイパーパラメータの調整は、LightGBMのモデルの性能を向上させる
- CountVectorizerは具体的に何をしているの?
- CountVectorizerは文章ならどうなる?
- CountVectorizerは形態素解析する感じ?
- 単語レベルのカウント CountVectorizer
- カテゴリ変数は、countvectorrizerした方がいい?
- メーカー品番とかは効果ないかな?
- Accuracy:
Precision:
Recall:
F1
が低いのに、ROCは高いのはなぜ?
- AUCが高い事は何を示唆するの?
- 機械学習でモデルを作るうえでの手順教えて
- ランダムフォレストのパラメータチューニング教えて
- ランダムフォレストやブースティング系か、ニューラルネットワークどっちがいい?
- X_product_name_vectorized という商品名と、sizeという梱包サイズ(目的変数)の相関関係を出すって難しい?
- カテゴリ変数の場合は相関関係をみるのではなくて、実際に学習させた結果の精度等の数値をみて判断するという事?
- ランダムフォレストでベースモデル作ったんだけど、例えば、ランダムフォレストで良い数値がでれば、ブースティング系でも良い数値がでる?(特徴量エンジニアリングの部分において)
- product_name
の文字列をreplaceしたい
- 商品名をラベルエンコーディングしたい
- 通常はカテゴリ変数は相関係数を計算しないの?
- 代わりに、カテゴリ変数と目的変数の関係を理解するためには、カテゴリごとの目的変数の平均や分布を見ることが一般的です。これにより、カテゴリ変数の各水準が目的変数にどのように影響を与えるかを理解することができます。
- 商品名なんだけど、これが説明変数に必要なのか分からないんだ
- 他の説明変数との関係を評価してから、説明変数としての適切さを決定する必要があります。どうやって?
- カテゴリ変数の場合: カテゴリ変数の各水準ごとに目的変数の平均値や分布を見て、カテゴリ変数が目的変数に与える影響を評価します。これにより、カテゴリ変数の水準ごとに目的変数がどのように変化するかを理解できます。
具体的なサンプルコードちょうだい
- カテゴリごとの目的変数の分布を可視化するなど、必要に応じてさらなる分析を行うこともできます
- 商品名だから、重複した商品名はないんだ。これをgroupbyしても意味はあるのかな
- カテゴリ変数は、重複している必要があるってこと?
- 商品名というカテゴリ変数から、キーワードに応じて梱包サイズが推測できるかな
- X_maker_numberは文字列なんだよね
- メーカー品番なんだけど、どっちで変換したらいいかな?
- Label EncodingとOne-Hot Encodingのサンプルコード
- hstackってなに?
- 相関係数って、0~1の間をとるの?
- X_product_name_vectorizedも相関係数を表示したい
- pd.dummieメソッド
- TypeError: sparse matrix length is ambiguous; use getnnz() or shape[0]
- CountVectorizer について詳しく
- CountVectorizer は、要は新しい特徴量を作る時に使うの?
- X_product_name_vectorizedの中のでーたを見てみたい
- UFuncTypeError: ufunc 'maximum’ did not contain a loop with signature matching types (dtype('<U21’), dtype('<U21’)) -> None
- そもそも、カテゴリ変数は、文字列じゃないの?
- onehotとラベルエンコーディングの違いは
- NameError: name 'LabelEncoder’ is not defined<