Pythonではじめる機械学習

atcoder ABC165 C - Many Requirementsの勉強

atcoder.jp・参考: よくやる再帰関数の書き方 〜 n 重 for 文を機械的に 〜 - けんちょんの競プロ精進記録・やったこと:参考記事の内容をpythonで勉強した。長さがNのリストAをDFSで全探索する。その時の得点(score)が一番高いものがansになる。 #参考:ht…

pythonではじめる機械学習 p79のIn[63]

In[63] ram_prices=pd.read_csv(os.path.join(mglearn.datasets.DATA_PATH,"ram_price.csv"))のos.path.joinは例えばos.path.join("A","B")でA/Bとパスを連結させる。plt.semilogy(ram_prices.date,ram_prices.price)はplt.semilogyでy軸を対数軸(10の何乗か…

Pythonではじめる機械学習 p76 2.3.5.4 In[61]についてくわしく

決定木においてどの特徴量が重要かfeature importanceでわかる。0だとまったく使われていない、1だとこの特徴量で完全にターゲット(予測したい値)を予測できる。これはprint(tree.feature_importances_)で確認できる。In[61]よりどの特徴量が大事か可視化で…

pythonではじめる機械学習の勉強 P75のIn[58],In[59]を詳しく

In[58] export_graphviz(tree,out_file="tree.dot",class_names=["malignant","benign"],feature_names=cancer.feature_names,impurity=False,filled=True) ・out_fileがファイル名。 ・filled=Trueで分岐のときにノードを色わけしてくれる。 ・class_names…

pythonではじめる機械学習の勉強 2.3.5 決定木について

2.3.5 決定木とは分類、回帰に使われる。Yes/Noで答えれる質問で答えを出す。例えば熊、鷹、ペンギン、イルカを最小の質問でわけたい。 これはmglearn.plots.plot_animal_tree()で確認できる。機械学習的に言うと熊、鷹、ペンギン、イルカを3つの特徴量(つま…

pythonではじめる機械学習の勉強 2.3.3.6  In[46],In[47],In[48]についてと2.3.4

2.3.6では多クラス分類をする。ここで使うデータはガウス分布に従う2次元データである。 In[46] これはfrom sklearn.datasets import make_blobsでmake_blobsデータを使う。X,y=make_blobs(random_state=42)とする。 Xは [[-7.72642091 -8.39495682] [ 5.453…

pythonではじめる機械学習の勉強 In[41]からIn[45]について

LogisticRegressionをcancerデータに使ってみる。ここでC(大きいと正則化が弱まる)を色々と変えてみる。デフォルトのC=1では適合不足しているのでC=100に増やす。In[44]で様々なCに対しての重みの大きさをプロットする。 In[44]について plt.xticks(range(ca…

pythonではじめる機械学習の勉強 2.3.3.5クラス分類、線形モデルについて

線形モデルの分類はy=w[0]*x[0]+...+w[p]*x[p]+b>0。これは線形回帰と違いyが0より大きいか判断する。 線形クラス分類はロジスティクス回帰と線形サポートベクタマシーンがある。ロジスティクス回帰は回帰とあるが分類である。 これらのモデルにはパラメー…

pythonではじめる機械学習の勉強 In[33],In[38]について

In[33] plt.plot(ridge.coef_,'s',label='Ridge alpha=1')の's'はマークを四角にする。 plt.hlines(0,0,len(lr.coef_))は水平線を引く。引数は(y,xmin,xmax)でそれぞれ水平線を引くyの値、水平線のはじめ、水平線の終わりである。 またこの図はalpha=10では…

pythonではじめる機械学習の勉強 2.3.3章

通常最小2乗法はデータと直線の点の差の2乗が最小になるように直線が引かれる。またfrom sklearn.linear_model import LinearRegressionで使うことができる。これは特徴が多いとき有効であるが過剰適合してしまう。 よって次に過剰適合を解決するためにリッ…

pythonではじめる機械学習の勉強 p44のIn[23]のline=np.linspace(-3,3,1000).reshape(-1,1)、ax.plot(X_train,y_train.'^',c=mglearn.cm2(0),markersize=8)、 ax.plot(X_test,y_test.'v',c=mglearn.cm2(1),markersize=8)について

line=np.linspace(-3,3,1000).reshape(-1,1)のnp.linspace(-3,3,1000)は-3から3の間で1000個値を作る。具体的にはnp.linspace(-3,3,1000)は [-3. -2.99399399 -2.98798799 -2.98198198 -2.97597598 -2.96996997 -2.96396396 -2.95795796 -2.95195195 -2.9459…

pythonではじめる機械学習の勉強 p39のIn[16]について

fig,axes=plt.subplots(1,3,figsize=(10,3))figが描画の領域全部のことでaxesが1つ1つの図を意味する。また引数は描画の領域が1つ、図が3つ、figsize(10,3)は描画の領域のサイズが横縦、10:3の比率を表す。 for n_neighbors,ax in zip([1,3,9],axes):n_neigh…

「pythonではじめる機械学習」の勉強 p34のIn[5]のfor n,v in zip(cancer.target_names,np.bincount(cancer.target))について

cancer.target_namesの中身は ['malignant' 'benign']。 cancer.target中身は [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 1 1 1 1 0 0 1 0 0 1 1 1 1 0 1 0 0 1 1 1 1 0 1 0 0 1 0 1 0 0 1 1 1 0…