問題1:ドロップボール(特徴変数特性)が変化、最終ドロップ変化賞(ラベル結果タグ)の位置
- 入力機能----
- F(X)----モデル、アルゴリズム
- ラベル----出力
Fによって訓練された既知のデータの多数、(X)
- 一般的な3ステップ
- データ収集機能、ラベル
- データモデルの機能を選択し、関係--f(X)のラベル
- 選択されたモデルに係る予測
- 人間のモデル:会社に到達するまでの時間の予測を改善するための経験を積むためにいくつかの試み
- 機械学習:統計の使用、確率論、情報理論の数学的方法、既知のデータを使用して、(同様に入り口)を予測するためにこのモデルを使用してモデルを作成します
- 機械学習、古典的なモデル:KNNモデル(クラスと一緒に、人々は、グループにいました)
- 基本的な手順
- 1.データ収集
- 2.実験データとから算出した予測位置
- 3.小から大までの距離
- 4. Kは、最大確率の配置を得るために、選択したレコードを最上位
- 予測位置、予測衝突点
- パイソン達成
-
AS NP numpyのインポート インポートコレクションC AS #1のデータ収集 データnp.array =( [154 ,. 1]、 [126]、[2]、 [70]、[2]、 [196]、[2]、 [161]、[2]、 [371 ,. 4] ]) #機能、ラベル 特徴データ= [:0] ラベル=データ[:、-1] 予測から#2の計算と実験データ点 predictPoint = 200である 距離=リスト(MAP(ラムダX:ABS(X - predictPoint)、フィーチャー)) #3大小規模からの距離に応じて、ソートインデックス sortIndex = np.argsort(距離) #4一番上のレコードKを選択し、最大確率の配置が得られます、想定される3 = K。 sortedlabelラベル= [sortIndex] K = 3。 #予測[(結果数)] #5予想衝撃点の予測位置 predictlabel = c.Counter(sortedlabel [0: K])。most_commonを(1 )[0] [0] 印刷(predictlabel)
-
- コードパッケージ
-
NPのようなインポートnumpyの Cとしてインポートコレクション #代码封装 :DEF KNN(K、predictPoint、特徴、ラベル) 距離=リスト: - (マップ(ラムダX predictPoint)、特徴)ABS(X) sortindex = np.argsort(距離) sortedlabel =ラベル[sortindex] predictlabel = c.Counter(sortedlabel [0:K])。most_common(1)[0] [0] 戻りpredictlabel なら__name__ == '__main__': データ= np.array([ [154、 1]、 [126]、[2]、 [70]、[2]、 [196]、[2]、 [161]、[2]、 [371]、[4]、 ]) #特徴、ラベル 機能=データ[:, 0] ラベル=データ[:、-1] K = 3 predictPoint = 200 RES = KNN(K、predictPoint、機能、ラベル) プリント(RES)
-
- 実際のデータ検証
- データセットhttps://pan.baidu.com/s/1rw5aFlVzZb6SBdY09Rckhg
-
NPのようなインポートnumpyの Cとしてインポートコレクション #代码封装 :DEF KNN(K、predictPoint、特徴、ラベル) 距離=リスト: - (マップ(ラムダX predictPoint)、特徴)ABS(X) sortindex = np.argsort(距離) sortedlabel =ラベル[sortindex] predictlabel = c.Counter(sortedlabel [0:K])。most_common(1)[0] [0] 戻りpredictlabel なら__name__ == '__main__': データ= np.loadtxt( "数据集/ data0.csv "デリミタ="、 ") #特徴、ラベル 特徴データ= [:, 0] ラベル=データ[:, -1] 、K = 3 predictPoint = 300 RES = KNN(K、predictPoint、特徴、ラベル) 印刷(RES)
- トレーニングとテストセットを取得するためにデータを分割
- NPとしてnumpyのインポート
-
CインポートASコレクション #コードパッケージ :DEF KNN(K、predictPoint、機能、ラベル) の距離=一覧(地図(ラムダX:ABS(X - predictPoint)、フィーチャー)) sortIndex = np.argsort(距離) sortedlabelラベル= [ sortIndex] predictlabel = c.Counter(sortedlabel [0:K])most_common [0] [0](1)。 戻りpredictlabel IF __name__ == '__main__': データ= np.loadtxt( "データセット/data0.csv" 、DELIMITER = "")# 壊れたデータ np.random.shuffle(データ) #1%訓練90 traindata =データ[100:-1] #1%試験10 TESTDATA = DATA [0:100] #保存されたデータを訓練し、テストデータ np.savetxt( "DATA0-のtest.CSV"、テストデータ、デリミタ= ""、FMT = "%のD") np.savetxt( "DATA0-train.csv"、traindata、デリミタ= " " FMT =" %のD ") traindata = np.loadtxt(" DATA0-train.csv"、デリミタ= "") #特徴、ラベル 機能= traindata [:, 0] ラベル= traindata [:, -1] max_accuracy = 0 max_k = [] #预测点、来自测试数据的每一条记录 TESTDATA = np.loadtxt( "DATA0-のtest.CSV"、デリミタ= "") の範囲内のkに対する(1100): カウント= 0 テストデータの項目のための: 予測= KNN(K、項目[0]、特徴、ラベル) 実=項目[1] 実==予測する場合: カウント+ = 1つの 精度=カウント* 100.0 / LEN(テストデータ) であれば精度> = max_accuracy。 max_accuracy =精度 max_k.append(K) 印刷( "K = {}、精度:{%}"形式(K、COUNT * 100.0 / LEN(テストデータ))) プリント(SET(MAX_K))
-
多次元データから選択
-
へのユークリッド距離
-
- 予測は非常に正確ではありません
- 1.モデルパラメータの選択は十分に良い、助手---アシスタントエンジニアではありません
- Kの選択は、あまりにも明白なノイズが小さすぎます
- Kの選択はあまりにも、他のタイプをカバーします
- 評価基準のK値
- trainDataを設定し、トレーニング---モデルを与えます
- モデルの検証テストセットTESTDATA ---
- 経験:K一般に選択されたサンプルセット平方根
- 2.インパクトファクターは十分
- 増加次元データ
- ボールの色が異なる弾性につながります
- 特別なデータをインポートします
-
インポートnumpyのAS NP DEF Colornum(STR): 辞書= { "赤" 0.50 "黄" 0.51 "青" 0.52 "グリーン" 0.53 "紫色" 0.54 "粉末":0.55} リターン辞書[STR] データ= np.loadtxt(「データセット/data1.csv',delimiter=",",converters={1:colornum},encoding="gbk「) プリント(データ)
-
- 増加次元データ
- 3.サンプルサイズが十分なデータではありません
- 4.モデルが良い十分ではありません選択し、他の機械学習のモデルを選択
- 1.モデルパラメータの選択は十分に良い、助手---アシスタントエンジニアではありません
- 基本的な手順
- 機械学習、古典的なモデル:KNNモデル(クラスと一緒に、人々は、グループにいました)