ヘンテコな学習ヘンテコな呟き😌。説明不足はいつものこと🤔

2022.09.13

Logging

おはようございます、夜中のほうが学習効率高いです🌃。

昨日、一つ出来そうなことを連続的につぶやいたので、それを皆さんが理解できる内容に文章としてまとめたいと思います。まず昨日の晩に下記のつぶやきをしました。これを追って何をしたいのかや何が理解できたのか、分かった方はこれから書くことを読まなくても良い人です。

まず、次のアイディアが生まれました、アクセス解析を自前してサイトの訪問者の動向を事細かに蓄積する事は出来ないだろうか、もし出来たらどのような事が出来るだろうか🤔?考えた結果、ECサイトなら購入する確率、ページ推移の予測などが出来ること、ページ単位だとどの場所にどんなデザインを置けばクリック率が上がるのかなどそういう事が、アクセス解析のデータから割り出す事が出来るのではないかと。

次にページを可視化するには、どうすれば良いのだろうかという疑問。調べていくうちに隣接行列で可視化(数値化)出来ることがわかった。これからどうすれば予測出来るのだろうかと考えた結果。ページの可視化は隣接行列で表わすことが出来るが、今の自分ではココから予測データを導き出せないなと思い、隣接行列は可視化するために使おうと考えを改める。

では、どうすれば予測できるかを考察した。まず機械学習の予測にはどのような種類があるのか、どのようなデータを与えれば適切な予測を導き出すことが出来るのかを調査。最終的にランダムフォレストという手法で予測するのが今の自分でも出来そうな方法ではないかと判断に至った😌。

尚、機械学習で注意しないといけないのは過学習【過剰適合 / オーバーフィッティング】により上手く予測出来なることがあることを注意しないといけない。

そして思ったことは、自分でも出来そうだなって事🤐。もう機械学習は参考書を買わなくてもYOUTUBEやネットで調べれば、なんちゃって機械学習予測は出来るようになっているということ。後はどんなデータを機械に与えるか、そしてどれぐらい学習させるのか。そういう事が大事になってくる事を理解したのだった。

タグ

EC, アイディア, アクセス, いつも, うち, クリック, こと, これ, サイト, それ, データ, デザイン, ページ, ヘンテコ, 一つ, 下記, 予測, , , , 内容, 効率, 動向, 単位, 可視, 場所, 夜中, 学習, 推移, 数値, 文章, , 昨日, , , 理解, 疑問, 皆さん, 確率, 結果, 自前, 蓄積, 行列, 解析, 訪問者, 説明, 購入, 隣接,

一部のサービスのアクセス数が極端に増えたことで思うこと。

2022.08.16

Logging

おはようございます。今日は3時に起床してみました。たぶん二度寝することになりそうですが🙄。

さて、一部のサービスでアクセス数が極端に増えてたみたいです、昨日の話。基本的に自分は作るまでが楽しくて作ったものは自分では使用しません。バージョンアップやテスト投稿などはしますが、それ以外の書き込みなどは全くです。

極端にアクセス数が増えたりするというのは、大体、シェアや口コミからの流れが多いことがあります。

自分にとってはアクセス数よりも収益に繋がったのかや皆が楽しく使っているのかなどの方が重要です。今、あるサービスでは匿名での投稿が殆どです、投稿内容の質もイマイチです(似たような投稿ばかり)。このまま匿名投稿を継続させるのか、Twitterのアカウントなどソーシャルなアカウントと結び付けないと使えないようにするか考えています。

アクセス解析ツールで分かることは年代、男女の比率、何処からのアクセスなのかなどは分かります。そういう傾向を見ると何だか偏っている、そして何より自分の思惑とはかなり違った方向に行っている気がします。コレばかりは仕方がない事なのかも知れませんが悩みどころですね。

トイウコトデ、検討中です。

タグ

, Twitter, アカウント, アクセス, アップ, いまいち, こと, このまま, サービス, シェア, ソーシャル, それ, ツール, テスト, バージョン, もの, 一部, , , 今日, 何処, 使用, 内容, 匿名, 収益, 口コミ, 大体, 年代, 投稿, , 昨日, 極端, 殆ど, 比率, 男女, , 継続, 自分, 解析, , , 起床, 重要,

2023年7月からGA4に変わるだってさ。桐島くん。

2022.07.20

Logging

おはようございます。下記の記事には桐島くんは関係ありません😌。

2023年7月からGA4に変わるそうです、一年前から告知している、Gさん。自分は2022年の7月から変わるだと思い込んでAnalyticsの対応を全て行いました。対応後、2023年じゃんって気づいて吐息…😩。

さてGA4になるとどのように変わるのか、例えばユーザーのカウントの仕方が変わったりするそうですね。今までのカウントの数え方よりもっと厳密になるそうです。そして今まで(GA3)はリアルタイムに反映されていた訪問者数が今のところ、翌日に反映されるように!!これはあまり有り難くない仕様変更です。リリースされる頃にはリアルタイムに変更されていることを願ってます。

【新登場 Google Analytics 4】を分かりやすく解説(基礎知識 編)

ともあれ、2023年7月から無料版GA3は廃止され、GA4に移行しなくてはならないです。アクセス解析のソースコードの入れ替えを行わないといけないので、WEB業界としてはちょっと美味しいメンテナンス作業ですね。費用が発生すればの話ですけど・・・。

詳しい仕様変更の違いを呟いている人やサイトがありますので、詳しい違いはそちらを参照ください。尚、自分としてはUI(ユーザーインターフェース)がガラリと変わって少し戸惑いました。

タグ

-GA, 2022, 2023, , 4, 7, Analytics, web, アクセス, あれ, カウント, コード, こと, これ, ソース, ところ, ユーザー, リアルタイム, リリース, , 下記, , 仕方, 仕様, 全て, 反映, 吐息, 告知, 変更, 対応, 廃止, 数え方, 桐島, 業界, 無料, 移行, 翌日, 自分, 解析, 記事, 訪問者, 関係, ,

自分のサーバーが落ちる原因がわからないのでとりあえず。

2022.03.17

Logging

自分のサーバーが落ちる原因がわからないのでとりあえず。増強しましたがこれは良い対策ではないと思っています。原因は一応Netで調べましたが調べ方がナンセンスです。本当はログ解析してそこからネットでググるなどの方法を行って原因を追求しないといけない所、ネットで検索して安易にサーバーを増強するなんて、何の問題解決になっていません。

そんぐらい毎日、忙しいので自分のサーバーに関われません。休日以外は目まぐるしく一日が経過するので当分は自分のサーバーは落ちたりすると思いますが対策はお待ち下さいませ…。

このサーバーが落ちる件でGさんからは、お叱りを受けていてSEO的に良くないよと教えていただきました…。サーバーに負荷がかかり「504 Gateway Timeout」が発生していることは分かっているものの、どうしてそうなっているのかは未だにわからないままなんですね。

もしかしたら、ロシアとウクライナとの戦争に関係しているのかもしれないなって・・・。

タグ

504, Gateway, net, SEO, timeout, ウクライナ, お叱り, お待ち, こと, これ, サーバー, そこ, そん, ナンセンス, ネット, まま, ログ, ロシア, , , 休日, , 原因, 問題, 増強, 対策, 当分, 戦争, , 方法, 未だ, 本当, 検索, 毎日, 発生, , 経過, 自分, 解析, 解決, 調べ, 負荷, 追求, 関係,

Twitterプロフィールからスパムみたいなアカウントかを機械学習で判定してみた。

2021.06.28

Logging

Twitterプロフィールからスパムみたいなアカウントかを機械学習で判定してみました。

機械学習にしてもらう①。

何故、このような事を考えたかはスパムみたいなアカウントってぱっと見で人は区別できるよねって思ったのでLobeというソフトを使って画像解析(機械学習)してモデルをエクスポートし、そのモデルをテンソルフローで使用して動作確認してみました。

機械学習にしてもらう②

結果は、まぁまぁの精度だったのでモデルをお裾分けしますね。因みにTwitterのプロフィール画像のスクリーンショットを行った時のソースコードも提供します。

尚、機械学習に使用したプロフィール画像は400枚ほど(少ない?)です、ok-image(一般人)とng-image(スパムみたいなアカウント)というラベルを付けて学習させてます。

model::https://zip358.com/ai-model/tw-profile/saved_model.pb (?モデルの中身はtensorboardでご確認を!)

zip358com
zip358
# Generated by Selenium IDE
import time
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from selenium.webdriver.support.ui import Select

class twss():
	def setup_method(self):
		self.driver = webdriver.Chrome(ChromeDriverManager().install())
		self.vars = {}

	def teardown_method(self):
		self.driver.quit()

	def screenshots(self):
		self.driver.get("https://twitter.com/")
		self.driver.set_window_size(945, 900)
		with open('twname.dat','r',encoding="utf-8") as f:
			for line in f:
				FILENAME = "X:\\var\\www\\html\\labo_ai\\twss\\image\\screen_" + line.replace('\n', '') +".png"
				self.driver.get("https://twitter.com/" + line.replace('\n', ''))
				time.sleep(2)
				self.driver.save_screenshot(FILENAME)
		f.close()
		self.driver.quit()
twss = twss()
twss.setup_method()
twss.screenshots()

タグ

358, 400, ai-model, com, https, lobe, model, ng-image, ok-image, SA, tw-profile, Twitter, zip, アカウント, エクスポート, お裾分け, コード, ショット, スクリーン, スパム, ソース, ソフト, テンソル, フロー, プロフィール, モデル, ラベル, 一般人, , , 何故, 使用, 判定, 動作, 区別, 学習, 提供, , 機械, 画像, 確認, 精度, 結果, 解析,

Twitterのツイートアクティビティ(アナリティクス)って知っている人も多いと思うけど。

2021.04.14

Logging

Twitterのツイートアクティビティ(アナリティクス)って知っている人も多いと思うけど、Gさんのアクセス解析ツールみたいなのがTwitterにもあります。自分の知る所、どこの県からアクセスが有ったとかいう機能はないけれど。つぶやいた事にたいして、どれぐらいの人が呟きを見ているのか?そのつぶやきに反応した人はどれぐらいいるのかなどは確認できるようになっている。

Twitterアナリティクスの見方を覚えてフォロワー数を爆上げしよう!

アクセス解析を見るとどんなことにみんなが興味を持っているかや、どんなつぶやきをすると反応を得ることが出来るかなどがわかりとても勉強になります。ツイッター社もエモーション(感情:ライク)を増やすことを検討中らしいのでアクセス解析とエモーションの反応数を比較するともっとわかりやすくなるかと思います。ちなみに、自分はいいねの数は少ないので、つぶやきの閲覧人数と反応した人数などを参考にしています。

タグ

Twitter, アクセス, アクティビティ, アナリティクス, エモーション, こと, ツール, ツイート, ツイッター, どこ, どれぐらい, みんな, ライク, , , 人数, 勉強, 参考, 反応, 感情, , , 検討, 機能, 比較, , 確認, 自分, 興味, 解析, 閲覧,

アクセス履歴からの見つめ直し。

2021.03.31

Logging

アクセス解析をこのサイトには導入しているのでアクセスログが管理画面から見えます、それを見ていると昔書いた記事などを読んでくださるユーザー様がいるわけです。そしてそんな記事を自分でも読み直すこともありますし、アクセスの多いプログラムの記事に関してはテコ入れする場合もあります。日記のような記事には手直しは殆どしません、あまりにも今と昔とでは考えが変わったなと思う記事は削除する場合もあります。

そんな中で自分が退社した時の記事に昨日、アクセスがあり改めて読み直しました。読んでいて、その気持ちを忘れないようにと思える一文がありました。それは「おかげさま」という気持ちです。自分はこの「お陰様」をよく忘れることがあります。ついつい自分を通してしまうことがあるのだけど、一呼吸おいて言葉を選ばないとなと思うことがあります。

別に人格者になりたい訳ではないですが、それで結構失敗もしているのでそう思った次第です。因みにアクセス数は過去のアクセス数と変わりない感じです。正直なところあと日に500ぐらいアクセス数が欲しいところですね。

タグ

アクセス, おかげさま, お陰様, こと, サイト, それ, テコ入れ, プログラム, ユーザー, ログ, 一呼吸, 一文, , 人格者, , 削除, 場合, 失敗, 導入, 履歴, 感じ, 手直し, 日記, , 昨日, , 次第, 殆ど, 気持ち, 画面, 管理, 自分, 解析, 言葉, 記事, , 退社, 過去,

高知県のダム貯水率グラフ化2

2020.03.26

Logging

以前、高知県のダム貯水率のグラフ化してみた事があるのですがいつの間にかデータが取得できなくなっていたようです。なので取得できるようにPHPコードを変更しました。高知県のダム貯水率をJSON形式で吐き出してほしいなと思う人は少数ながらいると思います。そんな方は私がJSON形式で吐き出したデータを密かに使っていたりするのかな?因みにプログラム出来るよというひとは自身で貯水率のデータが転がっているURLを掲載しますので解析して頂ければ有り難いと思います。

https://suibo-kouho.suibou.bousai.pref.kochi.lg.jp/suibou/main.html?no=4&no2=0&fnm=openTable

<?php
$html = file_get_contents("高知県のダム貯水率のURL");
$html = mb_convert_encoding($html,"UTF-8","SJIS");
$dom = new DOMDocument();
$html = mb_convert_encoding($html, "HTML-ENTITIES", 'UTF-8');
@$dom->loadHTML($html,LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
$xpath = new DOMXPath($dom);
$ary=array(
    "永瀬ダム"=>"nagase",
    "鎌井谷ダム"=>"kamaidani",
    "鏡ダム"=>"kagami",
    "早明浦ダム"=>"sameura",
    "桐見ダム"=>"kirimi",
    "坂本ダム"=>"sakamoto",
    "大渡ダム"=>"oodo",
    "中筋川ダム"=>"nakasugawa",
    "以布利川ダム"=>"iburigawa"
);
for($i=1;$i<=9;$i++){
    $r[$xpath->query("/html/body/form/div[2]/table/tbody/tr[$i]/td[3]")->item(0)->textContent] = preg_replace("/[\x{00a0}|?]/u","",$xpath->query("/html/body/form/div[2]/table/tbody/tr[$i]/td[7]")->item(0)->textContent);
}
foreach ($r as $key => $value) {
    $obj[$ary[$key]] = $value;
}
//echo '{"nagase":"91.16","kamaidani":"77.57","kagami":"39.32","sameura":"100.00","kirimi":"46.09","sakamoto":"99.38","oodo":"98.70","nakasugawa":"77.90","iburigawa":"99.12"}';
print json_encode($obj);

https://zip358.com/tool/demo6/index.html

タグ

0, 2, 4, amp, bousai, contents, convert, encoding, file, fnm, GET, html, https, jp, json, kochi, LG, lt, main, mb, no, openTable, php, pref, quot, suibo-kouho, suibou, url, グラフ, コード, ダム, データ, ひとは, プログラム, , , 取得, 変更, 少数, 形式, 掲載, , , 自身, 解析, 貯水, 高知県,

TinyMCE 5.0でwindowManager.openUrl使用してコードの送受信。

2019.08.03

Logging

TinyMCE 5.0の記事が好評だったので前回に続き、windowManager.openUrl使用してコードの送受信の内容を記載します。あくまでもサンプルコードです。プログラムなので他にもやり方はあると思います。前回の記事に勘どころは記載していますので割愛します。尚、自分は英語がダメダメですが幸いコードを読む力はある程度あるので何とかなりました。サンプルコードを記載しますので解析してみてください。

PHP&HTMLコード

<!DOCTYPE html>
<!--[if lt IE 7]>      <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]>         <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]>         <html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <title></title>
        <meta name="description" content="">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link rel="stylesheet" href="/tool/bootstrap/css/bootstrap.css">
        <script src="/tool/jquery/jquery-3.4.1.js"></script>
    </head>
    <body>
        <form method="post">
        <textarea name="htmlcode1" class="form-control">
<?php
    echo urldecode($_GET["sdata"]);
?>
        </textarea>
        <input type="button" name="submitbtn" value="htmlcode-submit"class="btn btn-primary">
        </form>
        <script>
            var chageJson = function(data) {
            console.log(data);
            var JsonData = [];
            for (i = 0; i < data.length; i++) {
                if(/htmlcode/.test(data[i].name)){
                    data[i].value = encodeURIComponent(data[i].value);
                }
                JsonData[data[i].name] = data[i].value
            }
            //console.log(JSON.stringify(data));
            return JsonData;
            }
            $("[name=submitbtn]").on("click",function(){
                data = chageJson($("form").serializeArray());
                window.parent.postMessage({ mceAction: 'customAction',data:data});
                window.parent.postMessage({ mceAction: 'close' });
            });
        </script>
    </body>
</html>

jsコード

(function() {
    tinymce.create('tinymce.plugins.btxt', {
        init : function( ed,  url) {
            //console.log(ed);
            act = function(e)
            {
                    //console.log("e=",encodeURIComponent(e.selection.editor.getContent()));
                ed.windowManager.openUrl(
                    {
                    type: 'panel',
                    title: 'HTMLCODE',
                    url:url + "/btxt.php?sdata=" + encodeURIComponent(e.selection.editor.getContent()) ,
                    onMessage:function(api, details){
                      console.log(e);
                      //console.log('htmlcode1',decodeURIComponent(details.data.htmlcode1));
//                      var editorInstance = tinymce.editors[0];
                      e.selection.editor.setContent(decodeURIComponent(details.data.htmlcode1));
                   }
                }
                );
            };
              ed.ui.registry.addButton('btxt',{
                title : 'htmlcode',
                text: 'htmlcode',
                onAction:function(){act(ed)}
            });
        },
    getInfo : function() {
        return {
            longname : 'tinymce.plugins.btxt',
            author : 'taoka',
            authorurl : 'https://zip358.com',
            infourl : 'https://zip358.com',
            version : '1.0'
        };
    }
});
        tinymce.PluginManager.add('btxt', tinymce.plugins.btxt);
})();

タグ

--, 5.0, 7, 8, , class, DOCTYPE, endif, gt, html, IE, if, lt, lt-ie, no-js, openUrl, php, quot, TinyMCE, windowManager, コード, サンプル, ダメダメ, プログラム, やり方, , 使用, 内容, 前回, 割愛, , 勘どころ, 好評, 自分, 英語, 解析, 記事, 記載, 送受信,

SQLの無知さ加減。

2019.07.13

Logging

select id,namae,furigana
from passport
where id = ANY(select id from travellist where namae like "田中%");

自分のSQLに関しての無知さ加減は半端ないと思います。
メンターがいないので自分で調べないといけないのです、
こんな構文すら知らなかったのは痛い。
サブクエリの存在は前から知っていたのですが、ANYを前に
付けると、複数のHITにも対応できることを知った。
ちなみに更新作業や削除作業の際に
主キーを検索対象に入れていないと処理がもっさりします。
そう考えると一番最初に働いていたIT会社のSQLは
今思うと初歩的な構文が多かったのかもしれない。
何気ない事なのかもしれないけど
動いていた構文に追加対応とか行う際にもっとその構文を
解析すれば良かったなと思います。
やはりSQLで行ったほうが早いことって結構あります。
 

タグ

ANY, from, furigana, HIT, ID, IT, like, namae, passport, select, SQL, travellist, where, キー, クエリ, こと, サブ, はり, メンター, , , 会社, 作業, 処理, 削除, , 加減, 半端, 存在, 対応, 対象, 更新, 最初, 検索, 構文, 無知, 田中, 自分, 複数, 解析, 追加, ,