1.分類および回帰
カテゴリーは:これらのタグのいずれかに与えられたラベル、データの新部門に基づいています
戻り値:つまり、物事のいくつかの特性に応じて、物事の他の特性を決定するためにどの区間の範囲内
たとえば、次の人の収入の範囲を決定するなど、教育、年齢、の人のレベルによると、
差分:分類出力を離散、固定されている点である。回帰連続出力間隔です。
2.一般化、オーバーフィッティングとunderfitting
汎化:データの正確な予測をすることができるモデルは見ていない、モデルがテストセットにトレーニングセットから一般化できると言います
過剰適合:構築したモデルは、そのための既存のデータモデルはトレーニングセットの詳細を過度に懸念しているため、あまりにも複雑で、トレーニングセット上で良好なパフォーマンスを持って取得しますが、新しいデータに一般化することはできません。
Underfitting:貧困層にトレーニングセット上のモデルの性能は、underfittingされます
3.教師付き学習アルゴリズム
3.1いくつかのサンプルデータセット
データセットをscikit-学び、実際のデータを含むバンチオブジェクトであり、データの一部が(辞書のような)情報を設定します
3.1.1鍛造データセット
必要なパッケージをインポート
前記二つのデータセット鍛造
#は、データセットの生成 X、Y = mglearn.datasets.make_forge()#の X とYの2つの機能が鍛造返される
プリント( "X.shape:{}" 。フォーマット(X.shape))#1 X.shapeを:( 26、2)
#データセットプロット
mglearn.discrete_scatter(X [:0] 、X [:1]、y)を# 0とx軸、Y-Y軸として第1列の入力X
plt.legend([「クラス0「」クラス1 『] 、LOC = 4)#1 カテゴリ名設定画像
plt.xlabel(』第一の特徴『)#は、画像のx軸の名前設定
画像を設定する第二の特徴「)#1、y軸plt.ylabelを(』名前
3.1.2波データセット
波形特徴データセットは、(Y軸は出力を表し、x軸が表す)のみ1つの入力と連続目的変数であります
X-、Y = mglearn.datasets.make_wave(N_SAMPLES = 40 )#40のデータを生成する、X.shapeが(40,1)である、y.shapeは(40)である plt.plot(X、Y、' O ' ) #点線の円は、使用示し plt.ylimを( -3 ,. 3 )部#y軸表示範囲設定 plt.xlabel(「フィーチャー」) plt.ylabel(「ターゲット」)
3.1.3がんのデータセット
癌の臨床測定データセットは、データ乳房腫瘍、良性および悪性の腫瘍マーカーの各々を記録し(すなわち、2つのラベルのみ)
sklearn.datasets インポートload_breast_cancerの 癌 = load_breast_cancer() プリント(cancer.keys()) >>> dict_keys([ ' データ'、' 目標'、' target_names '、' DESCRは'、' FEATURE_NAMEに'、' ファイル名' ])
プリント(cancer.data.shape)
プリント(cancer.target.shape)
プリント(cancer.target_names)
プリント(cancer.feature_names)
>>>(569、30)
>>>(569)
>>> [ '悪性「良性」]
>>> ['の半径を意味'意味テクスチャ'境界を意味「平均面積」「「平均「凹面点意味」「の凹部を意味」コンパクトを意味'」滑らかさを意味対称「対称エラー'凹状点エラー'コンパクトエラー『凹部エラー』 『滑らかエラー』領域エラー' 『境界エラー』半径誤差' 『テクスチャエラー』 『フラクタル次元を意味』 'フラクタル次元エラー」最悪半径『最悪テクスチャ』 『最悪の境界』 『最悪エリア』 『最悪滑らか』 『最悪コンパクト』 『最悪凹部』 『最悪凹面点』 『最悪対称』 '最悪のフラクタル次元 ']
{N:V ための N、V におけるジッパー(cancer.target_names、np.bincount(cancer.target))} >>> { ' 悪性':212、' 良性':357}
np.bincountの特徴:用于统计每个数字的出现次数
X = np.array([0、1、1、3、2、1、7])a = np.bincount(x)
>>>array([1, 3, 1, 1, 0, 0, 0, 1])
# 如上例,x的范围就是0-7,bincount生成一个np.max(x)+1的array:a
# 当a要生成第一个数时,此时要生成的数字索引为0,就在x中找0出现了多少次,本例为1次,append进来
# 然后a生成第二个数,此时要生成的数组索引是1,就在x中找1出现了多少次,本例为3
# 依次遍历到7,即x
重みのnp.bincountパラメータ
np.array = W([0.3、0.5、0.2、0.7、1、-0.6 ]) #我々はxの最大数は4、ビン5の数であることを確認できるように、インデックス値0〜 > 4 X = np.array([2 ,. 1 ,. 3 ,. 4 ,. 4 ,. 3 ]) #のインデックス0 - > 0 #インデックス1 - > Wの[1] = 0.5 #インデックス2 - > W [0] = 0.3 #。索引3 - > [2] + W [5] = 0.2 W - 0.6 = -0.4 #索引4 - > W [3] + W [4] = + 0.7 = 1.7 1 np.bincount(X、重み= W ) #このため、出力される:配列([0、0.5、 0.3、-0.4、1.7])
3.1.4ボストン住宅データセット
このデータセットは、506個のデータ点を含み、各データは、13項を指し
sklearn.datasets インポートload_boston ボストン = load_boston() プリント(boston.data.shape) >>>(506、13)
3.2 kの隣人
3.2.1 k近傍分類器、K-NNアルゴリズム
自分のカテゴリとして最近傍カテゴリに丸め
mglearn.plots.plot_knn_classification(N_NEIGHBORS = 1 )
3人の隣人を取り、そして中に三つのカテゴリーに応じて、独自のカテゴリとして最大数が含まれています
mglearn.plots.plot_knn_classification(N_NEIGHBORS = 3)
k近傍の3.2.2応用
インポートデータ・セット、およびトレーニングセットとテストセットに分割
sklearn.model_selection インポートtrain_test_splitの X、Y = mglearn.datasets.make_forge() X_train、X_test、y_train、y_test = train_test_split(X、Y、random_state = 0)
隣人の数:輸入クラスとインスタンス化KNNアルゴリズム、およびパラメータを設定
sklearn.neighbors インポートKNeighborsClassifier CLF = KNeighborsClassifier(N_NEIGHBORS = 3)
(KNNは、計算例を予測するために、トレーニングデータセットのために保存される)分類器のトレーニングセットを使用してフィッティング
clf.fit(X_train, y_train)
>>>KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski', metric_params=None, n_jobs=None, n_neighbors=3, p=2, weights='uniform')
调用predict方法进行预测
clf.predict(X_test) >>>array([1, 0, 1, 0, 1, 0, 0])
clf.score(X_test, y_test)
>>>0.8571428571428571
3.2.3 分析KNeighborsClassifier
绘制决策边界: 绘制1个,3个和9个邻居的决策边界
fig, axes = plt.subplots(1, 3, figsize=(10,3)) # 绘制一个1行3列的共3个子图; fig是主图,axes是子图 for n_neighbors, ax in zip([1, 3, 9], axes): clf = KNeighborsClassifier(n_neighbors=n_neighbors).fit(X, y) mglearn.plots.plot_2d_separator(clf, X, fill=True, eps=0.5, ax=ax, alpha=.4) mglearn.discrete_scatter(X[:,0], X[:,1], y, ax=ax) ax.set_title("{} neighbor(s)".format(n_neighbors)) ax.set_xlabel("feature 0") ax.set_ylabel("feature 1") axes[0].legend(loc=3) # loc标示legend的位置是左下角还是右下角,还是上边
# # # 待更新