2023 Huashu Cup 数学モデリング C 問題コード + モデル + 論文フルセット

目次

完全なコードモデル用紙 用紙の最後にある名刺を表示

非数値型の量子化

データ正規化コード:

質問 1 の分析:

PCA のコードは次のとおりです。

重線形回帰に関連するコード:

ここで完全なコードモデルペーパーを参照してください


完全なコードモデル用紙 用紙の最後にある名刺を表示

母親は赤ちゃんの人生において最も重要な人物の 1 人であり、栄養や身体の保護だけでなく、
精神的なサポートや安心感も与えてくれます。うつ病、不安、ストレスなど、母親の精神的健康に悪い状態は、
赤ちゃんの認知、感情、社会的行動に悪影響を与える可能性があります。母親がストレスを感じる
と、睡眠に影響を与えるなど、赤ちゃんの身体的および心理的発達に悪影響を及ぼす可能性があります。
付録には、生後 3 か月から 12 か月の乳児 390 人とその母親に関するデータが示されています。
これらのデータは、年齢、婚姻状況、教育レベル、妊娠期間、出産方法、母親の
心理的。 )表)、HADS (病院
不安およびうつ病尺度)、および夜間の睡眠時間、起床回数、入眠パターンを含む乳児の睡眠の質の指標。
背景分析: 背景から、この質問は主に母親の身体的および精神的健康が赤ちゃんの成長に及ぼす影響を扱っていることがわかります。質問の結果を判断するには、質問に添付されたデータを分析する必要があります
つまり、添付ファイルを除き、自分で見つけたデータを使用することはできません
主題をより良く分析するため。まず添付ファイルデータを分析しましょう。
図は付属の指標を示しています。
赤ちゃんの行動は非数値データであることがわかり、最初に数値データとして処理する必要があります。
数値以外のデータを定量化するには、次の方法を使用できます。

非数値型の量子化


1 ラベルエンコーディングラベルエンコーディングは
、取り得る値のセットを整数に変換することによって非数値データを量子化する
方法です。たとえば、機械学習の分野では、複数のカテゴリを持つ変数の場合、
各カテゴリに一意の整数値を割り当てることで、数値データに変換できます。
2 ワンホット エンコーディング ワンホット
ワンホット エンコーディングは、複数の可能な値をバイナリ配列に変換する方法です。ワンホット エンコーディングでは、
各可能な値はバイナリ配列に対応し、その長さは可能な値の総数であり、1 つの要素のみが
1 で、残りの要素はすべて 0 になります。たとえば、性別変数の場合、ワンホット エンコーディングを使用して、「男性」
と「女性」をそれぞれ [1, 0] と [0, 1] に変換できます。
3 カテゴリカル カウンティング
カテゴリカウンティングは、非数値データを数値データに変換する簡単な方法です。カテゴリカウント では
、特定の属性 (教育、職業など) に従ってデータを分類し、
各カテゴリの数または頻度をカウントします。たとえば、調査アンケートでは、
質問に対する回答を「はい」、「いいえ」、「わからない」のカテゴリに分類し、各カテゴリの数または頻度をカウントできます。
4 主成分分析
主成分分析は、多次元データを低次元表現に変換する方法です。主成分分析では、
データの変動を最もよく説明する主成分を見つけることにより、生データの次元削減を実行します。このようにして、
非数値データを数値データに変換できます。
ラベル エンコーディング/ワンホット エンコーディングを使用することをお勧めします。このインジケーターのデータにはサイズの関係があるため、ラベル エンコーディングを使用することをお勧めします


また、一晩の睡眠時間については、後の計算や分析に便利なように、数値データに変換する必要があります。たとえば、10:30 を 10.5 に変換する必要があります。
データ前処理におけるもう 1 つの非常に重要なステップは、次のようなモデリング結果に対するディメンションの影響を回避するための正規化処理です

データ正規化コード:
 

#归一化处理
import pandas as pd
from sklearn.preprocessing import MinMaxScaler
# 读取数据
data = pd.read_excel('your_dataset.xlsx')
# 提取需要进行归一化的指标列
features_to_normalize = ['age', 'education', 'pregnancy_time', 'CBTS', 'EPDS', 'HADS', 'sleep_duration',
'awakening_times']
# 使用 MinMaxScaler 进行归一化
scaler = MinMaxScaler()
data[features_to_normalize] = scaler.fit_transform(data[features_to_normalize])
# 输出归一化后的数据
print(data)


1. 母親の身体的・心理的指標が赤ちゃんの行動特性や睡眠の質に影響を与えることは多くの研究で示されていますが、そのような法則があるのか​​どうかを伺い、添付資料のデータに基づいて研究を行いたいと思います。


質問 1 の分析:

この質問では、母親の身体的および心理的指標が赤ちゃんの行動特性と睡眠の質に影響を与えるかどうかが尋ねられますが、この質問ではこれらの指標が
何であるかを明確に説明していないことに注意してください。
という質問とともに。母親の身体指標モデル、心理指標モデル、赤ちゃんの行動特性モデル、睡眠の質
モデルを確立するには、ここでどの指標が直接関連しているかを考慮する必要があります。
ここでは、決定後にこれらのモデルをどのように構築する必要があるかを説明します。通常の方法は次のとおりです:
l 主成分分析 (PCA): PCA は、データセットのコンポーネント内で最も重要な主成分を
見つけて次元の削減。元のデータを新しい直交座標系に投影し、
新しい座標系上の分散を最大化することで、データ内の最も有益な特徴を保存します。
l 線形判別分析 (LDA): LDA も線形次元削減手法ですが、
PCA とは異なり、LDA は教師あり学習手法であり、主に分類タスクに使用されます。次元を削減しながら、
クラス間の距離を最大化し、クラス内距離を最小化して、より識別性能の高い低次元表現を取得しようとします。l ローカル線形埋め込み (LLE): LLEは、ローカル領域内のサンプル間の線形関係を維持することによって低次元表現を構築する
非線形次元削減手法です。
LLE は、データが高次元空間で
局所的に線形分離可能であると仮定し、
各サンプルとその近傍間の線形関係を再構築することによって高次元データを低次元空間にマッピングします。
l 非負行列分解 (NMF): NMF は非負データの手法です。
次元削減法。元のデータ行列を 2 つの非負行列の積に分解し、潜在的な特徴表現を生成します
NMF は、画像処理やテキスト マイニングなどの分野でよく使用されます。
l t-SNE: t-SNE は、高次元データを視覚化するための一般的な非線形次元削減手法です。
サンプル間の局所的な類似性を維持することにより、高次元データを 2 次元または 3 次元空間にマッピングします。t-SNE は、
データ内のクラス構造とクラスタリング パターンを明確に明らかにできます。


PCA のコードは次のとおりです。
 

#PCA代码
from sklearn.decomposition import PCA
import numpy as np
# 假设我们有一个数据集 X,其中每一行表示一个样本,每一列表示一个特征
X = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# 创建 PCA 对象,并指定要保留的主成分数量
pca = PCA(n_components=2)
# 对数据进行降维
X_pca = pca.fit_transform(X)
# 输出降维后的结果
print(X_pca)

2. 乳児行動アンケートは、乳児の行動特性を評価するために使用される尺度であり、
乳児の感情や反応に関する質問が含まれています。乳児の行動特性を「静か」「穏健」「両義的」の3つのタイプに分類します。
赤ちゃんの行動特性と母親の身体的および心理的指標との間の関係モデルを確立してください。データ表の最後の20グループ(No.391
~410)は、赤ちゃんの行動特性情報が削除されていますので、どのタイプに属するか判断してください。
質問 2 の分析: 質問 2 では、明らかに予測モデルを確立する必要があります。これには、独立変数と従属変数を定義し、
適切なモデル アルゴリズムを使用して 2 つの変数間の関係を確立する必要があります。推奨される方法は、重回帰、ランダム フォレスト、ニューラル
ネットワーク、非線形フィッティング、およびその他の方法です。ここで、先ほど述べたことを使用して、赤ちゃんの行動特性を定量化する必要があります
(1, 2, 3 に設定することをお勧めします。理由は前述しました) その後は扱いやすくなります。これらの方法は良い予測
方法複雑なアルゴリズムを使用するには、多重線形回帰を解くだけです。次のように

重線形回帰
に関連するコード:
 

#多元线性回归
import statsmodels.api as sm
import pandas as pd
# 假设我们有一个包含多个特征和目标变量的数据集 data,其中每一行表示一个样本
data = pd.DataFrame({'x1': [1, 2, 3, 4, 5],
'x2': [6, 7, 8, 9, 10],
'y': [11, 12, 13, 14, 15]})
# 提取自变量(特征)和因变量(目标变量)
X = data[['x1', 'x2']]
y = data['y']
# 添加常数列作为截距项,如果你不需要截距项,可以省略此步骤
X = sm.add_constant(X)
# 创建多元线性回归模型并拟合数据
model = sm.OLS(y, X)
results = model.fit()# 输出回归模型的详细结果
print(results.summary())

#拟合代码
import numpy as np
import matplotlib.pyplot as plt

# Creating sample data
x = [0.05 ,0.1 ,0.5 ,1 ,2 ,3 ,4 ,5]
y = [0.636966 ,0.704712 ,0.905694 ,1.451922 ,2.204378 ,2.956834 ,3.409290 ,4.161746]

# Fitting polynomial of degree 2
p = np.polyfit(x, y, 1)
p1 = np.poly1d(p,variable='x')

print("y = ",p1)

# Plotting the data points and regression line
plt.scatter(x, y)
plt.plot(x, np.polyval(p, x))

r1 = np.corrcoef(y, p1(x))[0, 1]

print("拟合优度(一次):", r1)
plt.show()

ここで完全なコードモデルペーパーを参照してください

おすすめ

転載: blog.csdn.net/weixin_45499067/article/details/132096349