library(vtreat)
sourceTable <- read.table("BuySell.csv", sep=";", header = TRUE, stringsAsFactors = FALSE)
#Эта строка кода относится только к конкретно этому файлу.
#В этом csv первая колонка и первая строка специально заполнены для конкретной модели, и тут не нужны. Удалить.
#для обычных csv файлов такую команду выполнять не нужно.
sourceTable <- sourceTable[-1,-1]
#число колонок
sourceTable_ncol <- ncol(sourceTable)
#Оценка для классификации, только для двух классов.
#Outcometarget должен быть равен значению одного из классов.
#На выбор или эта функция designTreatmentsC, или designTreatmentsN, или designTreatmentsZ (ниже, закоменчены)
#Взаимная корреляция предкиторов учитывается только в designTreatmentsC, и у повторяющихся или похожих предикторов оценка будет понижаться
set.seed(0)
treats <- designTreatmentsC(dframe = sourceTable,
varlist = colnames(sourceTable)[-sourceTable_ncol],
outcomename = colnames(sourceTable)[sourceTable_ncol],
outcometarget = 1,
verbose = FALSE
)
# #оценка для регрессии или если больше двух классов
# sourceTable[,sourceTable_ncol] <- as.numeric(sourceTable[,sourceTable_ncol])
# set.seed(0)
# treats <- designTreatmentsN(dframe = sourceTable,
# varlist = colnames(sourceTable)[-sourceTable_ncol],
# outcomename = colnames(sourceTable)[sourceTable_ncol],
# verbose = FALSE# )
# #Оценка предикторов без учёта цели.
# set.seed(0)
# treats <- designTreatmentsZ(dframe = sourceTable,
# varlist = colnames(sourceTable)[-sourceTable_ncol],
# verbose = FALSE# )
#
#табличка только с названием колонки и её оценкой важности
resultTable <- treats$scoreFrame[,c("varName", "sig")]
#сортировка
resultTable <- resultTable[order(resultTable$sig),]
#согласно общему правилу, оценка предиктора (sig) должна быть меньше 1/<общее число предикторов>
#чем оценка меньше, тем лучше
resultTable$testPassed <- resultTable$sig < 1/(sourceTable_ncol-1)
#для создания модели и прогноза лучше использовать только те предкторы у которых testPassed == TRUE
resultTable
1ヶ月間何かを始める場合 - コンピュータの無停電電源を使用してください、私は一度2週間の計算をした、ライトが消えました))
そして、GPU版はあまり期待できませんが、コードを書き直すのは長いようで、作者がやっていなければ、他の誰かがこの作業を最後までやり遂げることはないでしょう。
さて、筆者はすべてを平行移動させたので、あとは走らせるだけである。とにかく3日間MAXで走らせ、9回入力のモデルを手に入れましたが、これは正直言って今の自分にとって記録的なことです。そんなに長い間、最適化したいとは思っていません。しかし、よく言われるように市場が求めているのです。したがって、パワーを求めて、どなたかオプティマイザーで、しかも20~30コアでデータセットを最適化する機会があれば、非常にありがたいです。
ミハイル・マルキュカイツ
学習する日、週。
このような小さなデータセットでは、Knnのようなブルートフォースアルゴリズムを使用することができます。このようなデータセットでは、学習サイクル全体とセット全体の実行は1秒以上かかるべきではありません。
上で説明したとおりです。100分割、各分割は1000エポック学習など。オプティマイザーの本質は、データセットの適合性に疑問が生じないように計算することである。つまり、彼はこのファイルを比喩的に上下に回転させ、あなたはそれをニューロンの1回のトレーニングと比較し続けるのです。IMHO本来は、ニューロンの学習とともにあらゆる最適化や前処理が行われ、学習そのものが何百回も行われるAIシステムです。どちらかというと...。
上で説明したとおりです。100分割、各分割は1000エポック学習、など。オプティマイザーの本質は、データセットを計算して、その適性に疑問の余地がないようにすることなのに、あなたはニューロンの1回のトレーニングに固執している。つまり、彼はこのファイルを比喩的に上下に回転させ、あなたはそれを1つのニューロンの1回のトレーニングと比較し続けるのです。IMHO本来は、ニューロンの学習とともにあらゆる最適化や前処理が行われ、学習そのものが何百回も行われるAIシステムです。どちらかというと...。
MLPって95%くらい当ててるよね...。正しいバイクをやっているとは思えないが)悪気はない。
間違っていますよ。
表の一番最初の列は行番号で、この列は予測では使えないのですが、なぜかjPredictionにだけ必要なのです。
ターゲットは、前半のラインがクラス0、後半のラインがクラス1となるように分布しています。そこで、ニューロンは、行番号が228より小さければクラス0、そうでなければクラス1と単純に記憶している。
間違っていますよ。
テーブルの一番最初の列は行番号で、予測ではこの列は使えないのですが、なぜかjPredictionだけ義務化されています。
ターゲットは、前半のラインがクラス0、後半のラインがクラス1となるように分布しています。そこで、ニューロンは単純に、行番号が228より小さければクラス0、そうでなければクラス1と記憶しているのです。
あ、ちなみに、そうです。ただの数字であることに気づかなかった。
なし 保管する入力:4,50,53,59,61,64,92,98,101,104。
学習時の平均誤差(60.0%) =0.269 (26.9%) nLearns=2 NGrad=7376 NHess=0 NCholesky=0 codResp=2
検証時の平均誤差(20.0%) plot =0.864 (86.4%) nLearns=2 NGrad=7376 NHess=0 NCholesky=0 codResp=2
テスト時の平均誤差(20.0%) plot =0.885 (88.5%) nLearns=2 NGrad=7376 NHess=0 NCholesky=0 codResp=2
明らかにオーバートレーニング。だから、インプットを別の方法でふるいにかける必要があるんです。
入力の重さでふるいにかけるとか?スレッドの最初の投稿にある問題に対して行ったように...。
添付のRスクリプトを書き換えて、列の名前と数を決定できるようにしようとしているのですが...。が、Rを十分に知らない。
添付していただいたRスクリプトを書き換えて、列の名前と数を決定するようにしたいのですが...。が、Rを十分に知らない。
当時はまだRを学び始めたばかりで、スクリプトはほぼ全てrattle(Rのデータマイニング用ビジュアル環境)で生成されており、そのため非常に複雑で、あらゆる場面でカスタマイズされているのです。
これは...
に変更する必要があります...
そして、それは大丈夫なはずです。
一般的には、このような方法で入力の重要性を定義するのはよくありません。その時はなぜかうまくいったのですが、それっきりです。
予測変数の重要度は、以下のように定義するのがよいでしょう。
重要度評価の結果は、以下の通りです。表中の予測値は高いほど良い。VVolum6, VDel1, VVolum9, VQST10 のみが合格しました。
rattleでは、この4つの予測因子に対して一度に6つのモデルを構築することができ、SVMは検証データとテストデータで約55%の精度を示しています。悪くないですね。
MLPでは、95%の確率で正しいことが行われているのですが...。正しいバイクを作ってるとは思えない)悪気はないんです。
私も自分のバイクを作りますが、何十年も実績のあるMLP(時代遅れでもっとかっこいいものが必要だと言われています)をベースにしています。
また、alglib決定木も試してみてください。MLPよりもカウントが早く、性能も優れています。Diplerningも高速化されていますが、alglibではそうではありません。
主なものは速度と品質の比率であり、1週間、あるいは1日、あるいは1時間待つことに何の意味があるのか、だから最適な組み合わせを見つけることができないのだ)モデルの学習には数秒かかり、その後、パラメータや予測変数のオートシミュレーションに遺伝学を利用することができるようになります。)