Python で scikit-learn 機械学習ライブラリを使用する方法。
はじめに
scikit-learn は、Python で最も人気のある機械学習ライブラリの 1 つで、分類、回帰、クラスタリング、次元削減などのさまざまな機械学習アルゴリズムとツールを提供します。
scikit-learn の利点は次のとおりです:
使いやすい: scikit-learn のインターフェイスはシンプルで理解しやすいため、ユーザーは簡単に使い始めることができます。機械学習。統一された API: scikit-learn の API は非常に統一されており、さまざまなアルゴリズムの使用方法は基本的に同じであるため、学習と使用がより便利になります。
多数の機械学習アルゴリズムの実装: scikit-learn は、さまざまな古典的な機械学習アルゴリズムを実装し、豊富なツールと機能を提供して、アルゴリズムのデバッグと最適化をより便利にします。
オープンソースで無料: scikit-learn は完全にオープンソースで無料であり、誰でもそのコードを使用および変更できます。
効率的で安定した: scikit-learn は、さまざまな効率的な機械学習アルゴリズムを実装し、大規模なデータセットを処理でき、安定性と信頼性の点で優れたパフォーマンスを発揮します。 scikit-learn は、API が非常に統合されており、モデルが比較的シンプルであるため、初心者レベルの機械学習に非常に適しています。ここでのお勧めは、各モデルの適用範囲を紹介するだけでなく、コードサンプルも提供されている公式ドキュメントと合わせて学習することです。
線形回帰モデル - LinearRegression
LinearRegression モデルは、線形回帰に基づくモデルであり、連続変数の予測問題を解くのに適しています。このモデルの基本的な考え方は、線形方程式を確立し、独立変数と従属変数の間の関係を直線としてモデル化し、トレーニング データを使用して直線をフィッティングして線形方程式の係数を見つけることです。次に、この方程式を使用して、予測用のデータをテストします。
線形回帰モデルは、住宅価格予測、売上予測、ユーザー行動予測など、独立変数と従属変数の間に線形関係がある問題に適しています。もちろん、独立変数と従属変数の間の関係が非線形の場合、LinearRegression モデルのパフォーマンスは低下します。このとき、多項式回帰、リッジ回帰、ラッソ回帰などの手法を使用して問題を解決できます。
データセットの準備
他の要因の影響を脇に置いた後、学習時間と学習パフォーマンスの間には一定の線形関係があります。もちろん、ここでの学習時間は効果的な学習を指します。時間、成績 勉強時間が増えると成績も上がります。そこで、学習時間と成績のデータセットを用意します。データセット内のデータの一部は次のとおりです:
学習時間、スコア
0.5,15
0.75,23
1.0,14
1.25,42
1.5,21
1.75,28
1.75,35
2.0,51
2.25,61
2.5,49
線形回帰を使用する
特徴量の合計を決定する 目標
学習時間と成績の間では、学習時間は独立変数である特徴であり、成績は従属変数であるラベルであるため、特徴量と成績を抽出する必要があります。準備された学習時間と成績のデータセットからラベルを取得します。
import pandas as pd import numpy as np from sklearn.metrics import r2_score, mean_squared_error from sklearn.model_selection import train_test_split from sklearn.linear_model import LinearRegression # 读取学习时间和成绩CSV数据文件 data = pd.read_csv('data/study_time_score.csv') # 提取数据特征学习时间 X = data['学习时间'] # 提取数据目标(标签)分数 Y = data['分数']
トレーニング セットとテスト セットを分割する
特徴データとラベル データが準備できたら、scikit-learn の LinearRegression をトレーニングに使用し、データ セットをトレーニング セットとテスト セットに分割します。 。
""" 将特征数据和目标数据划分为测试集和训练集 通过test_size=0.25将百分之二十五的数据划分为测试集 """ X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.25, random_state=0) x_train = X_train.values.reshape(-1, 1) model.fit(x_train, Y_train)
モデルを選択してデータを当てはめる
テスト セットとトレーニング セットを準備した後、トレーニング セットに適合する適切なモデルを選択できるため、他のターゲットに対応するターゲットを予測できます。機能
# 选择模型,选择模型为LinearRegression model = LinearRegression() # Scikit-learn中,机器学习模型的输入必须是一个二维数组。我们需要将一维数组转换为二维数组,才能在模型中使用。 x_train = X_train.values.reshape(-1, 1) # 进行拟合 model.fit(x_train, Y_train)
モデル パラメーターの取得
データ セットには 2 つの学習時間と成績のみが含まれているため、非常に単純な線形モデルであり、その背後にある数式は y=ax b です。 , ここで、y 従属変数は成績、x 独立変数は学習時間です。
""" 输出模型关键参数 Intercept: 截距 即b Coefficients: 变量权重 即a """ print('Intercept:', model.intercept_) print('Coefficients:', model.coef_)
バックテスト
上記のフィッティング モデルでは、テスト セット データのみが使用されています。次に、テスト セット データを使用して、モデルのフィッティングに関するバックテストを実行する必要があります。トレーニングを使用した後、に設定すると、特徴テストセットを予測でき、得られたターゲット予測結果と実際のターゲット値を比較することで、モデルの適合度を取得できます。
# 转换为n行1列的二维数组 x_test = X_test.values.reshape(-1, 1) # 在测试集上进行预测并计算评分 Y_pred = model.predict(x_test) # 打印测试特征数据 print(x_test) # 打印特征数据对应的预测结果 print(Y_pred) # 将预测结果与原特征数据对应的实际目标值进行比较,从而获得模型拟合度 # R2 (R-squared):模型拟合优度,取值范围在0~1之间,越接近1表示模型越好的拟合了数据。 print("R2:", r2_score(Y_test, Y_pred))
プログラムの実行結果
上記のコードに従って、LinearRegression モデルの適合度を判断する必要があります。つまり、データが適切かどうか。フィッティングには線形モデルを使用します。プログラムの実行結果は次のとおりです。
##予測結果:[47.43726068 33.05457106 49.83437561 63.41802692 41.84399249 37.84880093
23.46611131 37. 84880093 26.66226456 71.40841004 18.67188144 88.9872529
63.41802692 42.6430308 21.86803469 6 9.81033341 66.61418017 33.05457106
58.62379705 50.63341392 18.67188144 41.044954 0 .8935675710322939
以上がPython で scikit-learn 機械学習ライブラリを使用する方法。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHPとPythonには独自の利点と短所があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1.PHPは、大規模なWebアプリケーションの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンスと機械学習の分野を支配しています。

CentOSシステムでのPytorchモデルの効率的なトレーニングには手順が必要であり、この記事では詳細なガイドが提供されます。 1。環境の準備:Pythonおよび依存関係のインストール:Centosシステムは通常Pythonをプリインストールしますが、バージョンは古い場合があります。 YumまたはDNFを使用してPython 3をインストールし、PIP:sudoyumupdatepython3(またはsudodnfupdatepython3)、pip3install-upgradepipをアップグレードすることをお勧めします。 cuda and cudnn(GPU加速):nvidiagpuを使用する場合は、cudatoolをインストールする必要があります

PythonとJavaScriptには、コミュニティ、ライブラリ、リソースの観点から、独自の利点と短所があります。 1)Pythonコミュニティはフレンドリーで初心者に適していますが、フロントエンドの開発リソースはJavaScriptほど豊富ではありません。 2)Pythonはデータサイエンスおよび機械学習ライブラリで強力ですが、JavaScriptはフロントエンド開発ライブラリとフレームワークで優れています。 3)どちらも豊富な学習リソースを持っていますが、Pythonは公式文書から始めるのに適していますが、JavaScriptはMDNWebDocsにより優れています。選択は、プロジェクトのニーズと個人的な関心に基づいている必要があります。

Pytorch GPUアクセラレーションを有効にすることで、CentOSシステムでは、PytorchのCUDA、CUDNN、およびGPUバージョンのインストールが必要です。次の手順では、プロセスをガイドします。CUDAおよびCUDNNのインストールでは、CUDAバージョンの互換性が決定されます。NVIDIA-SMIコマンドを使用して、NVIDIAグラフィックスカードでサポートされているCUDAバージョンを表示します。たとえば、MX450グラフィックカードはCUDA11.1以上をサポートする場合があります。 cudatoolkitのダウンロードとインストール:nvidiacudatoolkitの公式Webサイトにアクセスし、グラフィックカードでサポートされている最高のCUDAバージョンに従って、対応するバージョンをダウンロードしてインストールします。 cudnnライブラリをインストールする:

DockerはLinuxカーネル機能を使用して、効率的で孤立したアプリケーションランニング環境を提供します。その作業原則は次のとおりです。1。ミラーは、アプリケーションを実行するために必要なすべてを含む読み取り専用テンプレートとして使用されます。 2。ユニオンファイルシステム(UnionFS)は、違いを保存するだけで、スペースを節約し、高速化する複数のファイルシステムをスタックします。 3.デーモンはミラーとコンテナを管理し、クライアントはそれらをインタラクションに使用します。 4。名前空間とcgroupsは、コンテナの分離とリソースの制限を実装します。 5.複数のネットワークモードは、コンテナの相互接続をサポートします。これらのコア概念を理解することによってのみ、Dockerをよりよく利用できます。

CentOSでPytorchバージョンを選択する場合、次の重要な要素を考慮する必要があります。1。CUDAバージョンの互換性GPUサポート:NVIDIA GPUを使用してGPU加速度を活用したい場合は、対応するCUDAバージョンをサポートするPytorchを選択する必要があります。 NVIDIA-SMIコマンドを実行することでサポートされているCUDAバージョンを表示できます。 CPUバージョン:GPUをお持ちでない場合、またはGPUを使用したくない場合は、PytorchのCPUバージョンを選択できます。 2。PythonバージョンPytorch

NGINXのインストールをインストールするには、次の手順に従う必要があります。開発ツール、PCRE-Devel、OpenSSL-Develなどの依存関係のインストール。 nginxソースコードパッケージをダウンロードし、それを解凍してコンパイルしてインストールし、/usr/local/nginxとしてインストールパスを指定します。 nginxユーザーとユーザーグループを作成し、アクセス許可を設定します。構成ファイルnginx.confを変更し、リスニングポートとドメイン名/IPアドレスを構成します。 nginxサービスを開始します。依存関係の問題、ポート競合、構成ファイルエラーなど、一般的なエラーに注意する必要があります。パフォーマンスの最適化は、キャッシュをオンにしたり、ワーカープロセスの数を調整するなど、特定の状況に応じて調整する必要があります。

MINIOオブジェクトストレージ:CENTOSシステムの下での高性能展開Minioは、Amazons3と互換性のあるGO言語に基づいて開発された高性能の分散オブジェクトストレージシステムです。 Java、Python、JavaScript、Goなど、さまざまなクライアント言語をサポートしています。この記事では、CentosシステムへのMinioのインストールと互換性を簡単に紹介します。 Centosバージョンの互換性Minioは、Centos7.9を含むがこれらに限定されない複数のCentosバージョンで検証されています。
