from sklearn import datasets from sklearn.model_selection import train_test_split from sklearn.ensemble import RandomForestClassifier from sklearn.metrics import accuracy_score import matplotlib.pyplot as plt import seaborn as sns
次に、心臓疾患のデータセットをロードします。
scikit-learnのdatasetsモジュールには、心臓疾患のデータセットが含まれています。
1 2 3
heart = datasets.load_breast_cancer() X = heart.data y = heart.target
次に、データセットを訓練データとテストデータに分割します。
1
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
defpredator_prey_equations(xy, t, alpha, beta, delta, gamma): x, y = xy dxdt = alpha * x - beta * x * y dydt = delta * x * y - gamma * y return [dxdt, dydt]
plt.hist(degrees, bins='auto', alpha=0.7, color='skyblue', edgecolor='black') plt.xlabel('Degree') plt.ylabel('Frequency') plt.title('Degree Distribution of a Watts-Strogatz Graph') plt.show()
# 変数を作成 x = [] for i in families: x.append(solver.IntVar(0, 1, 'x[%i]' % i)) # x[i] = 家族iに食糧を配達するかどうか (0 または 1)
# 制約を定義 budget = 30# 予算 solver.Add(sum(transport_costs[i] * x[i] for i in families) <= budget)
# 目的関数を定義 solver.Maximize(scalar_multiplier * sum(food_required[i] * x[i] for i in families) - sum(transport_costs[i] * x[i] for i in families))
# 問題を解く solver.Solve()
# 結果を出力 print("Total food delivered = ", sum(food_required[i] * x[i].solution_value() for i in families)) delivered = [x[i].solution_value() for i in families] plt.figure(figsize=(10,5)) plt.bar(range(len(families)), delivered) plt.title("Food delivered to each family") plt.xlabel("Family") plt.ylabel("Food quantity") plt.xticks(range(len(families)), families) plt.show()
print("Total food delivered = ", sum(food_required[i] * x[i].solution_value() for i in families)) delivered = [x[i].solution_value() for i in families] plt.figure(figsize=(10,5)) plt.bar(range(len(families)), delivered) plt.title("Food delivered to each family") plt.xlabel("Family") plt.ylabel("Food quantity") plt.xticks(range(len(families)), families) plt.show()
np.random.seed(seed=4) n = 13 m = 100 X = np.linspace(0, 10, m) y_truth = f(X) x = 0.5 + 8.5 * np.random.rand(n) y = f(x)
次に、カーネルマトリックスを計算します。
1
K = np.array([[kernel(x[i], x[j]) for j inrange(n)] for i inrange(n)])
次に、カーネルメソッドによる予測を行います。
1 2 3 4 5 6 7 8
c = np.linalg.inv(K) @ y y_pred = [] for i inrange(m): sum = 0 for j inrange(n): sum += c[j] * kernel(x[j], X[i]) y_pred.append(sum) y_pred = np.array(y_pred)