アルゴリズムの品質を評価するにはどうすればよいでしょうか?

アルゴリズムの品質を評価するにはどうすればよいでしょうか?

序文

アルゴリズムの品質を評価するには、そのアルゴリズムが問題を解決できるかどうかを確認することが重要だと思います。アルゴリズムが実用的な問題をうまく解決できる場合、それは良いアルゴリズムだと思います。 たとえば、予測アルゴリズムの場合、アルゴリズム自体のスコアではなく、予測の精度、つまり予測値と実際の値の近さの度合いを見ることが重要です。

「人工知能を使ってダブル11の取引量を予測する方法」という記事では、線形回帰アルゴリズムを使用して、2019年のダブル11の取引量は2,471億元になると予測しましたが、アリババが公式に発表した実際の取引量は2,684億元でした。予測値は実際の値より7.9%低く、この結果については、精度が十分に高くないと思います。予測プロセスを振り返ると、以下の点において改善できると考えています。

1. サンプル

アルゴリズム モデルを簡素化するために、過去数年間の比較的小さなデータを破棄し、過去 5 年間のデータのみを保持しました。

データの量が比較的少ない場合、私は依然として単純さの原則に従いますが、これにより、アルゴリズムの不安定性のリスクが目に見えない形で増加し、アンダーフィッティングの問題が発生します。

アルゴリズムのスコアは高いですが、スコアが高いからといってアルゴリズムが優れているというわけではありません。したがって、サンプルの選択は非常に重要です。サンプルの品質を無視して、単に高いアルゴリズムスコアを追求するべきではありません。

2. アルゴリズム

すべてのサンプルが保持される場合、データによって示されるパターンが線形ではないことは明らかであり、多項式回帰アルゴリズムを使用する方がよい選択であるはずです。

予測に 3 次多項式回帰アルゴリズムを使用する場合、アルゴリズム コードは次のようになります。

  1. # 必要なライブラリをインポートする
  2. numpyをnpとしてインポートする
  3. pandasをpdとしてインポートする
  4. matplotlib.pyplot をpltとしてインポートします。
  5. sklearn.linear_modelからLinearRegression をインポートします
  6. sklearn.preprocessingからPolynomialFeatures をインポートします
  7. sklearn.pipelineからパイプラインをインポートします
  8. sklearn.preprocessingからStandardScaler をインポートします
  9.  
  10. # インライン描画
  11. %matplotlib インライン
  12.  
  13. # 中国語ラベルの通常表示を設定する
  14. plt.rcParams[ 'font.sans-serif' ] = [ 'SimHei' ]
  15.  
  16. # データを読み取り、リン・ジの公開アカウントの背景に「1111」と返信する
  17. df = pd.read_excel( './data/1111.xlsx' )
  18.  
  19. # x 年
  20. x = np.array(df.iloc[:, 0]).reshape(-1, 1)
  21.  
  22. # y 取引金額
  23. y = np.array(df.iloc[:, 1])
  24.  
  25. # z 予測年
  26. 2019年
  27.  
  28. # パイプラインを使用して多項式回帰アルゴリズムを呼び出す
  29. poly_reg = パイプライン([
  30. ( 'ploy' 、多項式機能(次数=3))、
  31. ( 'std_scaler' 、 StandardScaler())、
  32. ( 'lin_reg' 、線形回帰())
  33. ])
  34. poly_reg.fit(x, y)
  35.  
  36. # アルゴリズムを使用して予測を行う
  37. 予測 = poly_reg.predict(z)
  38.  
  39. # 予測結果を出力する
  40. print( '2019年のダブル11の予測取引量は' , str(round(predict[0],0)), '1億元です。' )
  41. print( '線形回帰アルゴリズムのスコア:' , poly_reg.score(x, y))

2019年のダブル11の取引量は2,689億元になると予測されています。

線形回帰アルゴリズムのスコア: 0.99939752363314

以下は matplotlib を使用してグラフを描画するためのコードです。

  1. # データを視覚化し、画像サイズを設定する
  2. 図 = plt.figure(図サイズ=(10, 8))
  3. ax = fig.add_subplot(111)
  4.  
  5. # 散布図を描く
  6. ax.scatter(x, y, 色= '#0085c3' , s=100) です。
  7. ax.scatter(z, 予測, 色= '#dc5034' , マーカー= '*' , s=260)
  8.  
  9. # ラベルなどを設定します。
  10. plt.xlabel( '年' 、フォントサイズ=20)
  11. plt.ylabel( 'ダブル11取引金額' 、フォントサイズ=20)
  12. plt.tick_params(ラベルサイズ=20)
  13.  
  14. # 予測線を描く
  15. x2 = np.concatenate([x, z])
  16. y2 = poly_reg.predict(x2)
  17. plt.plot(x2, y2, '-' , c= '#7ab800' )
  18. plt.title( '多項式回帰を使用してDouble 11の取引量を予測する' 、フォントサイズ=26)
  19. plt.show()

これは2009年からの11年間のデータとほぼ完全に一致しており、アリババのデータは完璧すぎるのではないかと思わずにはいられません。

3. 最適化

一般的な機械学習アルゴリズムのプロセスによれば、データはトレーニング データ セットとテスト データ セットと呼ばれる 2 つの部分に分割される必要があります。 2009年から2018年まで、ダブル11の取引量のデータポイントは10個しかありませんでした。予測をしていたとき、最初の5つのデータポイントを破棄しました。最終的に残ったのは5つのデータポイントだけでした。それ以上分割する必要はないと思いました。 しかし、機械学習アルゴリズムのパフォーマンスを左右する重要な要素は、十分なデータです。

さらに、グリッド検索法を適切に使用してアルゴリズムパラメータを最適化し、必要に応じてクロス検証法と組み合わせてアルゴリズム評価を実施し、アルゴリズムの信頼性と精度を向上させる必要があります。 アルゴリズムの精度に加えて、リコール率、F1 スコア、ROC、AUC、MSE、RMSE、MAE などの他の方法を使用してモデルを評価することもできます。

現実世界は複雑で、1 つのアルゴリズムだけで問題を解決するのは困難です。基本的に満足のいくモデルを見つけるには、多くの場合、何度も試行する必要があります。多項式回帰の指数は高すぎないように注意する必要があります。高すぎると、アルゴリズムが複雑になりすぎて「過剰適合」が発生し、一般化能力が低下する可能性があります。つまり、トレーニング データ セットにはうまく適合しますが、テスト データ セットの予測誤差は比較的大きくなります。モデルの複雑さと予測誤差のおおよその関係を次の図に示します。

まとめ

この記事は、線形回帰アルゴリズムを使用して Double 11 の取引量を予測した後に作成したレビューです。改善のアイデアをまとめ、最適化手法を学習します。

学んだことを応用することが私の学習の基本原則です。間違いを恐れ、練習する勇気がないなら、アルゴリズムをさらに学ぶことに何の意味があるでしょうか? それは、水に入らずに泳ぎ方を学ぶことが期待できないのと同じです。

上記があなたにインスピレーションを与えることを願っています。

<<:  デジタル時代において、クラウドインテリジェンスはクラウドの未来を再定義します

>>:  Google の 15 のオープンソース無料人工知能プロジェクト!開発者: 了解しました

ブログ    

推薦する

...

医療の発展は自動化に向かっており、手術ロボットは急速に発展している。

社会の継続的な発展に伴い、わが国の医療・ヘルスケア産業は徐々に変化を迎え、医療機器のインテリジェント...

2020 年のソフトウェア開発における 6 つの画期的なトレンドは何ですか?

[[313570]] 1. ブロックチェーンブロックチェーンは、間違いなく IT 業界で最も議論さ...

警告! AIによる偽動画で顔認証を騙し、銀行口座開設が可能になる可能性

共同通信社のウェブサイトの最近の報道によると、日立製作所の研究チームが人工知能学会で論文を発表した。...

...

金融分野における機械学習の4つの利点と5つの応用

[[198507]]誰の生活も金融から独立して存在することはできません。テクノロジーの発展により人々...

科学データ研究のための人工知能アシスタントMATAが特許を取得

サザンメソジスト大学(SMU)とNASAの研究者らは、科学的データに関する質問に答えることができる人...

AI業界で働く人々はどうすれば失業を回避できるのでしょうか?

「人工知能によって人間が失業したわけではない。人工知能に携わる人々が先に失業したのだ」これはもとも...

実践編 | アポロレーンチェンジの詳しい説明

この記事は、Heart of Autonomous Driving の公開アカウントから許可を得て転...

大規模ウェブサイトのアルゴリズムとアーキテクチャに関する簡単な説明

順序先月、上司が「大規模ウェブサイトのアルゴリズムとアーキテクチャに関する簡単な説明」という講義をし...

最高の顔認識アルゴリズムでもマスクによって妨害される可能性がある:研究

海外メディアの報道によると、研究者らは、マスクはCOVID-19などの空気感染する病気の拡散を効果的...

人工知能、垂直農法、ブロックチェーン、ロボットは、未来の農業の急速な発展を推進する4つの主要技術である。

これは日本の東京国際展示場にあるデンソーの双腕協働ロボットの写真です。写真提供:新華社記者 華毅国連...

GenAIがゼロトラスト環境でサイバーセキュリティを強化する方法

GenAI に対する信頼はまちまちです。 VentureBeat は最近、製造業とサービス業の複数の...

...

...