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

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

序文

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

「人工知能を使ってダブル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 年の人工知能に関するトップ 10 の予測

[[318614]] [51CTO.com クイック翻訳] 2019年、世界中の意思決定者の53%が...

プログラマーが知っておくべき10の基本的な実用的なアルゴリズムとその説明

アルゴリズム1: クイックソートアルゴリズムクイックソートは、Tony Hall によって開発された...

...

役立つ情報 | 115 行のコードで数独パーサーを作成する方法を段階的に説明します。

あなたも数独愛好家ですか? Aakash Jhawar さんは、多くの人と同じように、新しい困難な課...

3つのシナリオは、人工知能が新しい小売業に力を与える方法を示しています

1950年代以降、人工知能は長年にわたり浮き沈みを経験し、ビジネスシーンで継続的に試されてきました。...

救急室のAIにはもう少し人間的なケアが必要

[[228274]]交換室の電話が鳴り、看護師が手際よく緊急電話に出た。その後すぐに病院は救急車を派...

TPU v4 チップの計算能力が新たな高みに到達しました。 Googleが世界最大の機械学習センターを建設

最近、Google の I/O 開発者会議で、Google は魅力的な新しい携帯電話、AR グラス、...

Metaは、すべての製品のビデオ推奨エンジンをサポートする巨大なAIモデルを構築しています。

3月7日水曜日、Metaの上級幹部は米国時間、同社がFacebookを含む傘下のさまざまなプラット...

海外メディア:人工知能はすでに自身のミスを警告できる

[[354534]]海外メディアは、人工知能は急速に発展しており、この分野における最新の技術的成果が...

顔認識アプリケーションにおける人工知能の利点と欠点についての簡単な説明

1950年代にチューリングの論文「ロボットは考えることができるか?」が人工知能への扉を開いて以来、人...

GPT-4 の推論はより人間的です!中国科学院は「思考コミュニケーション」を提唱、類推思考はCoT、プラグアンドプレイよりも優れている

今日では、GPT-4 や PaLM などの巨大なニューラル ネットワーク モデルが登場し、驚くべき少...

人工知能に必要な3つの条件

人工知能に必要な条件:ディープラーニングモデル、ビッグデータ、計算能力著者: マイケル・チャン201...

人工知能とクラウドコンピューティングの組み合わせは、企業ビジネスの飛躍的成長をどのように促進するのでしょうか?

Statistaの最近のレポートによると、「AI市場の世界的価値は2025年までに年間890億ドル...

...