タグ

qiitaとscikit-learnに関するnabinnoのブックマーク (118)

  • sklearnをpandasから使う場合の便利ツール - Qiita

    sklearn-pandas とは? pandasのDataFlameからsklearnのモデルやpiplineを使う際に若干の煩わしさが残っていたが、最近はsklearn-pandasというパッケージが開発されており扱い易くなっているようだ。 このパッケージを使うと、例えば次のようなことができるようだ。 * pandasのDataFlameをそのまま入力できて、なおかつ、出力もDataFlameで取り出せる。 * 特定のコラム(特徴量)のみへの処理をsklearnのmodelと同様の形式で定義できる。 * 従来より柔軟なpipelineを作成できる。 従来、pandasのDataFlameをsklearnの適当なmodelで学習する場合、DataFlameの特定のコラムのみを抽出し、エンコーディング、欠損補完、スケーリング等を行った後、np.arrayとして、sklearnのmodel(

    sklearnをpandasから使う場合の便利ツール - Qiita
  • class sklearn.naive_bayes.MultinomialNB(alpha=1.0, fit_prior=True, class_prior=None)のメモ - Qiita

    alpha:float, optional -> スムージングparameter(defaultは1.0) fit_prior:boolean -> class prior probabilitiesを使うかどうか class_prior:array-like, size=[n_classes] -> Prior probabilities of the classes import numpy as np # 0~5の間の乱数、サイズは6*100のarray([[1番目の100こ],…,[6番目の100こ]]) X = np.random.randint(5, size=(6, 100)) # 教師データ Y = np.array([1,2,3,4,5,6]) # クラス -> X[0]はクラス1, X[2]がクラス3のような from sklearn.naive_bayes impor

    class sklearn.naive_bayes.MultinomialNB(alpha=1.0, fit_prior=True, class_prior=None)のメモ - Qiita
  • 機械学習 〜 線形モデル(回帰) 〜 - Qiita

    今回は scikit-learn の 線形モデルを使った回帰を試してみます。 線形モデルの予測式 線形モデルの一般的な予測式は以下のようになります。 ここで、w は 特徴量 x に対する「重み」を b は「バイアス」を表し、 直線の数式として考えると、それぞれ「傾き」と「切片」に該当します。 又、特徴量が1つの場合は単回帰での予測式となり、 特徴量が複数ある場合は以下のような式となり、重回帰での予測式となります。

    機械学習 〜 線形モデル(回帰) 〜 - Qiita
  • TF-IDFとword2vecを結合する - Qiita

    fnc-1の優勝モデルでは、TF-IDFやword2vecをはじめ、5種類の特徴量が結合されています(さらに、deep learningとのアンサンブルモデルを構築している)。これを参考に、TF-IDFとword2vecを結合したら文書分類の精度が上がるのかを検証します。(ただし、ここではword2vecというより、nnlm-ja-dim128を使います) 事前準備 データはスクレイピングによって取得しましたが、著作権などもあるので、ここでは公開しません。しかし、手順だけ示しておきます: 二値分類モデルとして定義し、カテゴリー1とカテゴリー2を定義する。 カテゴリー1を提供しているニュースサイト数種から記事数千に対するタイトルと文を抽出。 カテゴリー2を提供しているニュースサイト数種から記事数千に対するタイトルと文を抽出。 Jupyter notebookで実行 データのロード。 In

    TF-IDFとword2vecを結合する - Qiita
  • なんだかよくわからないCSVファイルで機械学習(回帰)を試すまでにしたことまとめ - Qiita

    はじめに データの分析を依頼されたのですが、秘匿情報が含まれるということから全然情報を頂けないままファイルを受け取り、初期診断をすることとなったので、その手順をまとめてみました。 前提条件として、これからこのような依頼が継続しそうなので、他のツールを使って確認するというのではなく、初期診断用のスクリプトを作成することを目的とします。 ファイルのエンコーディングを確認 まずはファイルを開くためにエンコーディングを確認します。 ここでは、日語圏を対象としているので、日語を扱うエンコーディングのみを試します。 f = lambda d, e: d.decode(e) and e encs = ["utf-8", "shift-jis", "euc-jp", "iso2022-jp"] datfile = open("sample.csv", "br") data = datfile.read

    なんだかよくわからないCSVファイルで機械学習(回帰)を試すまでにしたことまとめ - Qiita
  • 文系人間が機械学習をざっくりと説明してみる - Qiita

    イントロ 文系・初心者の私が機械学習について少し学んだのでざっくりとまとめてみました。 初心者向けにざっくりとイメージだけ掴む感じで書いたのと独学なのとで間違っていることがあればご指摘ください。 この記事では下記について書きます。 ・機械学習ができるライブラリ ・scikit-learnでできること ・scilit-learnの使い方 そもそも機械学習とは 機械学習については下記のサイトが参考になりました。 https://qiita.com/taki_tflare/items/42a40119d3d8e622edd2 人工知能を形成している一部分という感じでしょうか。 機械学習の一部にニューラルネットワークというものがあります。ニューラルネットワークはざっくりいうと「人間の脳の機能を真似して作られた計算処理」という感じらしいです。ニューラルネットワークには入ってきたデータの特徴を絞り込ん

    文系人間が機械学習をざっくりと説明してみる - Qiita
  • ベイズ最適化シリーズ(2) -アンサンブル学習(Voting)の最適化- - Qiita

    前回は、ベイズ最適化の可視化を行いました。 今回は、アンサンブル学習(Voting)にベイズ最適化を適用します。 Votingとは アンサンブル学習といえばStackingが有名ですが、Votingは各分類器で多数決を とって決める手法です。詳しくは参考資料のリンクを見て下さい。 図にすると以下のようになります。 ここでは、K近傍法、XGBoost、ランダムフォレスト、ニューラルネットの4つを 使っています。予測ラベルの決定は単純な多数決ではなく、それぞれの分類器に 重み係数kを掛けて投票させます。 この重み係数をベイズ最適化で求めるのが、稿のテーマです。 式にすると、以下のようになります。 ここでは、K近傍法の係数を1に固定しています。重み付きの投票で一番多かった 投票がラベルとして出力されます。 分類精度が最も高くなるように、k1,k2,k3をベイズ最適化で求めます。 各分類器の用意

    ベイズ最適化シリーズ(2) -アンサンブル学習(Voting)の最適化- - Qiita
  • pythonで、不均衡データを識別が難しいサンプルを残してundersamplingしたいときは、imbalanced-learnのNearMissを使う - Qiita

    pythonで、不均衡データを識別が難しいサンプルを残してundersamplingしたいときは、imbalanced-learnのNearMissを使う機械学習scikit-learnPython3不均衡データ異常検知 intro 分類タスクなどで、クラスごとのサンプル数が極端に偏っていることがあります。 そういった場合、一つの方法としてresamplingを行うことがあります。 どちらかといえばoversamplingを使うことのケースが多いかと思うのですが、 以下のようにundersamplingを使いたいケースがありました。 全部を使ってトレーニングするには、データが多すぎる。 偏りが非常に大きいため、Majority classを大幅に減らしたい 線形で分けにくいケースがある Majority classのうち明らかに識別できそうなものを除いて、識別が難しいサンプルを残したい 例

    pythonで、不均衡データを識別が難しいサンプルを残してundersamplingしたいときは、imbalanced-learnのNearMissを使う - Qiita
  • 散布図・重回帰分析の自分的まとめ - Qiita

    はじめに データをまとめる,相関係数まとめたり,散布図みたり,重回帰分析する機会があったので自分的メモ github:https://github.com/Shunichi09/Qiita/tree/master/Static 相関係数 参考になったサイト https://sci-pursuit.com/math/statistics/correlation-coefficient.html#1 使ったプログラム numpyのcorrcoefがおすすめです 速いし,列ごとでも行ごとでも設定できるので! 普通データは列で管理されると思うので...

    散布図・重回帰分析の自分的まとめ - Qiita
  • 機械学習 〜 データセット生成 〜 - Qiita

    from sklearn.datasets import make_regression X, Y, coef = make_regression(random_state=12, n_samples=100, n_features=4, n_informative=2, noise=10.0, bias=-0.0, coef=True) print("X =", X[:5]) print("Y =", Y[:5]) print("coef =", coef) plt.figure(figsize=(20, 4)) plt.subplot(1, 4, 1) plt.title("Feature 1") plt.plot(X[:, 0], Y, "bo") plt.subplot(1, 4, 2) plt.title("Feature 2") plt.plot(X[:, 1], Y, "ro

    機械学習 〜 データセット生成 〜 - Qiita
  • 機械学習 〜 線形モデル(分類) 〜 - Qiita

    今回は scikit-learn の 線形モデルを使った分類を試してみます。 線形モデル(クラス分類)の予測式 線形モデルを使った分類の基的な予測式は以下のようになります。 \hat{y} = \sum_{i=1}^{n} (w_{i}x_{i}) + b = w_1x_1 + w_2x_2 \cdots + w_nx_n + b > 0 %matplotlib inline import numpy as np import pandas as pd import matplotlib.pyplot as plt from sklearn.model_selection import train_test_split from sklearn.metrics import mean_squared_error from sklearn.metrics import mean_absol

    機械学習 〜 線形モデル(分類) 〜 - Qiita
  • scikit-learn入門 - Qiita

    イントロ 今回のレッスンはscikit-learnという機械学習用のライブラリについての概要の説明と実際の使い方を簡単に紹介したいと思います。 準備 コンソールやターミナルから下記のコマンドを実行して、ライブラリを取得するだけです。 公式サイト 一般的な評価 下記の記事にもある通り、機械学習のライブラリの中ではやはり随一の知名度を誇り、アルゴリズムのバラエティにも富んでいます。 また、使い方も非常に簡単で、理論を勉強しながら実際にそれを現実的な問題に適用してみるということを簡単に行えるようにしてくれるライブラリです。 https://www.quora.com/What-are-the-best-open-source-machine-learning-libraries-written-in-Python 機械学習のモデル構築プロセス 画像引用:https://www.cloudpuls

    scikit-learn入門 - Qiita
  • Yet another 機械学習で株価を予測する (1) - Qiita

    1. はじめに これまでもQiitaには株価を機械学習/ディープラーニングで予想する、という記事が投稿されてきました (例えば参考文献の1)。果たしてそれに付け加えることがあるのか、という気もしますが考え方の整理も兼ねて投稿したいと思います。主な方針としては 日経平均(N225)がその日上がるか、下がるかを予測する N225を含む指標の、始値 (Open)、高値 (High)、安値 (Low)、終値 (Close)のみを使う 機械学習のライブラリとしてはscikit-learnを使う です。1については今日の終値が昨日の終値より安いか高いか正確に予測できたとしても、それで利益を出すのは難しそうだからです。ただし予測の難易度は上がります(70%の精度は夢のまた夢です)。2はデータの入手性によります。3はディープラーニング系のライブラリ(tensorflowなど)は使わないということです。これ

    Yet another 機械学習で株価を予測する (1) - Qiita
  • 機械学習でサザエさんとじゃんけん勝負(SVM編) - Qiita

    はじめに 先日、「サザエさんじゃんけん研究所」1様の「サザエさんじゃんけん白書」が話題になりました。 日曜夕方の代表的なアニメ「サザエさん」の次回予告で行われる「じゃんけん」を記録し、傾向と対策をまとめているという恐ろしい資料です。 1991年11月の開始から現在に至るまで、26年以上のじゃんけんの手が毎週分(執筆時点で1349回!)全て記録されているというから驚きです。2 さらに「サザエさんじゃんけん研究所」様では、傾向と対策を基にサザエさんと毎週じゃんけん勝負をしていて、1996年1月~2018年8月19日までの22年以上で、通算勝率70.4%を挙げているのです。3 前回、ニューラルネットワークを使ってサザエさんの手を予測する試み4を行ったところ、1996年1月~2018年8月12日の期間で通算勝率71.51%が得られました。 ある回の予測時には、それ以前の回の結果のみ使えるという(現

    機械学習でサザエさんとじゃんけん勝負(SVM編) - Qiita
  • digdag on docker による機械学習モデルの継続的学習 - Qiita

    こんにちは、CET というチームに所属している @kojisuganuma です。 普段は機械学習エンジニアリングと Splatoon2 をメインでやってます。 記事では、個人的に勉強中の OSS ワークフローエンジン digdag を使って、機械学習モデルの継続的学習を実現してみたいと思います。ポイントは以下の通り。 digdag server, PosgreSQLdocker コンテナで動かす digdag のタスクを digdag server とは別コンテナの上で動かす scikit-learn を使って機械学習モデリング scikit-learn の学習済みモデルを cloudpickle でシリアライズ 対象読者 docker を使って digdag server を構築したい方 機械学習モデルの継続的学習を実現したい方 scikit-learn を使って機械学習モデリ

    digdag on docker による機械学習モデルの継続的学習 - Qiita
  • scikit-learnのParallelで並列処理 - Qiita

    2019/1016 追記: Joblibのキャッシュ機能について書きました。 [Python] Joblibのキャッシュを使って同じ計算を省略する scikit-learnのチュートリアルといえば@Scaled_Wurmマンの紹介がとても分かりやすい。 今回はたまたまソースコードを読んでいて、かつそのブログエントリでは紹介さていなかったニッチなところをメモする。 結論としては特に理由が無いならmultiprocessingで書いている部分はParallelで置き換えても良さそう、ということ。 並列処理をおこなうクラス 基的にはmultiprocessingで並列処理をおこなうんだけど、あったらいいな〜というヘルプ機能を提供してくれる。 multiprocessingじゃダメなの? Parallelは (原文はソースコード中のNotes) 関数の引数をリストで作らなくもていいよ debug

    scikit-learnのParallelで並列処理 - Qiita
  • 【翻訳】scikit-learn 0.18 チュートリアル テキストデータの操作 - Qiita

    このガイドの目的は、1つの実用的なタスクに関する主要な scikit-learn ツールのいくつかを探究することです:20の異なるトピックに関するテキストドキュメント(ニュースグループの投稿)の分析。 このセクションでは、以下の方法を説明します。 ファイルの内容とカテゴリをロードする 機械学習に適した特徴ベクトルを抽出する カテゴリ化を行う線形モデルを訓練する グリッド探索戦略を使用して、特徴抽出コンポーネントと分類器の両方の良好な構成を見つける チュートリアルセットアップ このチュートリアルを始めるには、最初にscikit-learnと必要なすべての依存関係をインストールする必要があります。 詳細およびシステムごとの指示については、インストール手順のページを参照してください。 このチュートリアルのソースは、scikit-learnフォルダ内にあります: チュートリアルフォルダには、次のフ

    【翻訳】scikit-learn 0.18 チュートリアル テキストデータの操作 - Qiita
  • scikit-learnで機械学習を試す SVM - Qiita

    こんにちは。初心者です。 あるサービス(念写できる人と何か念写してほしい人のマッチングサービスです)で機械学習ためそうと思っていて、調べている最中です。 問題 試しに、これの1問目を解くよー。 教師あり学習の問題です。上記ページの回答例のように、SVMを使ってみます。 ライブラリは、scikit-learnを使ってみた。 SVM使いたいだけならほかにもライブラリあるみたいだけど、scikit-learnいいよ~的なことを言う人が多いので使ってみました。 とりあえずやってみる # -*- coding: utf-8 -*- from sklearn.svm import LinearSVC import numpy as np # 学習データ data_training_tmp = np.loadtxt('CodeIQ_auth.txt', delimiter=' ') data_train

    scikit-learnで機械学習を試す SVM - Qiita
  • scikit-learnとgensimでニュース記事を分類する - Qiita

    こんにちは、初心者です。 適当なニュース記事があったとして、ニュースのカテゴリを推測するみたいな、よくあるやつをやってみました。Python3.3を使いました。 何をやるの? データセットはlivedoorニュースコーパスを使いました。 http://www.rondhuit.com/download.html#ldcc クリエイティブ・コモンズライセンスが適用されるニュース記事だけを集めてるそうです。 トピックニュース、Sports Watch、ITライフハック、家電チャンネル 、MOVIE ENTER、独女通信、エスマックス、livedoor HOMME、Peachy というクラスがあります。 データは、1記事1テキストファイルの形式で、クラス別のディレクトリにいっぱい入っています。 これを学習して、未知の文章に対して、お前は独女通信っぽい、お前は家電チャンネルっぽい、みたいに、分類が

    scikit-learnとgensimでニュース記事を分類する - Qiita
  • scikit-learn によるナイーブベイズ分類器 - Qiita

    ナイーブベイズの概要 ナイーブベイズ分類器は特徴ベクトル間に条件付き独立性を仮定したベイズ定理に基づく分類器です。現実の問題では特徴を表す素性同士に何らかの相関が見られるケースが多々ありますが、独立性仮定によって計算量を簡素化・削減し、高速でそこそこの精度を誇る分類器を実装することができます。 ベイジアンとヒューリスティクス これらを鑑みるとそもそも元より高精度を期待できる分類器ではないですし、諸々の論文等では比較対象として負けるための分類器とまで言う声も聞かれるほどです。多くは独立性を仮定するべきではない問題に適用しているからで当たり前なのですが、筆者の私見としてはナイーブベイズはヒューリスティックな問題に高い実用性を発揮すると思います。例えばテキストマイニングといった完全性を追い求めるのがなかなか難しい分野において、高速である程度の正解率を叩きだす分類器として実用性能が高いでしょう。

    scikit-learn によるナイーブベイズ分類器 - Qiita