#第4回コード例 #################################################### #p11 #データ解析用モジュール import pandas as pd #日本語フォントのインストール !pip install japanize-matplotlib #グラフ描画用モジュール import matplotlib.pyplot as plt import japanize_matplotlib #################################################### #p13 #pandasのインポート import pandas as pd file = pd.ExcelFile("kaiki.xlsx") data = file.parse("Sheet1") data.head() #################################################### #p14 #plot.scatterメソッドで散布図が描けます。 #xはx軸の列名、yはy軸の列名、figsizeはグラフの横縦のサイズです。 #axにはグラフのオブジェクト(サブプロットと呼ばれる)が代入されます。 ax = data.plot.scatter(x="床面積", y="家賃", figsize=(5, 3)) #################################################### #p16 #LinearRegressionクラスのインポート from sklearn.linear_model import LinearRegression #LinearRegressionオブジェクトの生成 reg = LinearRegression() x = data["床面積"].values.reshape(-1, 1) y = data["家賃"] #学習してパラメータを計算 reg.fit(x, y) #傾きと切片の表示 print("傾き", reg.coef_[0]) print("切片", reg.intercept_) #################################################### #p17 #傾きをa、切片をbに代入 a = reg.coef_[0] b = reg.intercept_ ax = data.plot.scatter(x="床面積", y="家賃", figsize=(5, 3)) #xが15から31までで直線を描く ax.plot([15, 31], [a*15+b, a*31+b]) #回帰直線の方程式をannotateメソッドで描く ax.annotate("y={0:.1f}x+{1:.1f}".format(a, b), xy=(16, 80000), size=12) plt.show() #################################################### #p18 print(reg.score(x,y)) print(a * 25 + b) #################################################### #p19 ax.annotate("y={:.1f}x+{:.1f}".format(a, b), xy=(16, 80000), size=12) ax.annotate("y= %.1f x+ %.1f" % (a, b), xy=(16, 80000), size=12) #################################################### #p22 import seaborn as sb sb.set(style="whitegrid", context="notebook", font="IPAexGothic") sb.pairplot(data, size=1.5) plt.show() #################################################### #p24 sb.set(style="whitegrid", context="notebook", font="IPAexGothic") #sb.pairplot(data, size=1.5) cmap = sb.color_palette("coolwarm", 200) sb.heatmap(data.corr(), square=True, annot=True, cmap=cmap) plt.show() #################################################### #p25 #LinearRegressionオブジェクトの生成 reg = LinearRegression() x = data[["床面積", "築年数"]] #説明変数 y = data["家賃"] #目的変数 #学習してパラメータを計算 reg.fit(x, y) #傾きと切片の表示 print("傾き1", reg.coef_[0]) print("傾き2", reg.coef_[1]) print("切片", reg.intercept_) #################################################### #p26 a1 = reg.coef_[0] a2 = reg.coef_[1] b = reg.intercept_ yachin = a1 * 25 + a2 * 10 + b print(yachin) print(reg.score(x,y))