【问题标题】:what type of model can i use to train this data我可以使用什么类型的模型来训练这些数据
【发布时间】:2020-01-18 20:46:55
【问题描述】:

我已从 http://archive.ics.uci.edu/ml/datasets/pamap2+physical+activity+monitoring

我的任务是从给定的数据中深入了解数据,我在数据框中有大约 34 个属性(所有干净的无 nan 值)

并希望在给定其余属性的情况下基于一个目标属性“heart_rate”训练模型(所有这些都是执行各种活动的参与者的数量)

我想使用线性回归模型,但由于某种原因不能使用我的数据框,但是,如果您认为我做错了,我不介意从 0 开始

我的 DataFrame 列:

> Index(['timestamp', 'activity_ID', 'heart_rate', 'IMU_hand_temp',
>        'hand_acceleration_16_1', 'hand_acceleration_16_2',
>        'hand_acceleration_16_3', 'hand_gyroscope_rad_7',
>        'hand_gyroscope_rad_8', 'hand_gyroscope_rad_9',
>        'hand_magnetometer_μT_10', 'hand_magnetometer_μT_11',
>        'hand_magnetometer_μT_12', 'IMU_chest_temp', 'chest_acceleration_16_1',
>        'chest_acceleration_16_2', 'chest_acceleration_16_3',
>        'chest_gyroscope_rad_7', 'chest_gyroscope_rad_8',
>        'chest_gyroscope_rad_9', 'chest_magnetometer_μT_10',
>        'chest_magnetometer_μT_11', 'chest_magnetometer_μT_12',
>        'IMU_ankle_temp', 'ankle_acceleration_16_1', 'ankle_acceleration_16_2',
>        'ankle_acceleration_16_3', 'ankle_gyroscope_rad_7',
>        'ankle_gyroscope_rad_8', 'ankle_gyroscope_rad_9',
>        'ankle_magnetometer_μT_10', 'ankle_magnetometer_μT_11',
>        'ankle_magnetometer_μT_12', 'Intensity'],
>       dtype='object')

前 5 行:

timestamp   activity_ID heart_rate  IMU_hand_temp   hand_acceleration_16_1  hand_acceleration_16_2  hand_acceleration_16_3  hand_gyroscope_rad_7    hand_gyroscope_rad_8    hand_gyroscope_rad_9    ... ankle_acceleration_16_1 ankle_acceleration_16_2 ankle_acceleration_16_3 ankle_gyroscope_rad_7   ankle_gyroscope_rad_8   ankle_gyroscope_rad_9   ankle_magnetometer_μT_10    ankle_magnetometer_μT_11    ankle_magnetometer_μT_12    Intensity
2928    37.66   lying   100.0   30.375  2.21530 8.27915 5.58753 -0.004750   0.037579    -0.011145   ... 9.73855 -1.84761    0.095156    0.002908    -0.027714   0.001752    -61.1081    -36.8636    -58.3696    low
2929    37.67   lying   100.0   30.375  2.29196 7.67288 5.74467 -0.171710   0.025479    -0.009538   ... 9.69762 -1.88438    -0.020804   0.020882    0.000945    0.006007    -60.8916    -36.3197    -58.3656    low
2930    37.68   lying   100.0   30.375  2.29090 7.14240 5.82342 -0.238241   0.011214    0.000831    ... 9.69633 -1.92203    -0.059173   -0.035392   -0.052422   -0.004882   -60.3407    -35.7842    -58.6119    low
2931    37.69   lying   100.0   30.375  2.21800 7.14365 5.89930 -0.192912   0.019053    0.013374    ... 9.66370 -1.84714    0.094385    -0.032514   -0.018844   0.026950    -60.7646    -37.1028    -57.8799    low
2932    37.70   lying   100.0   30.375  2.30106 7.25857 6.09259 -0.069961   -0.018328   0.004582    ... 9.77578 -1.88582    0.095775    0.001351    -0.048878   -0.006328   -60.2040    -37.1225    -57.8847    low

如果您检查时间戳属性,您将看到获取的数据以毫秒为单位,因此最好每隔 2-5 秒使用此数据帧中的数据并训练模型

作为一个选项,我想将这些模型之一用作此任务的线性、多项式、多重线性、凝聚聚类和 kmeans 聚类。

我的代码:

target = subject1.DataFrame(data.target, columns=["heart_rate"])
X = df
y = target[“heart_rate”]
lm = linear_model.LinearRegression()
model = lm.fit(X,y)
predictions = lm.predict(X)
print(predictions)[0:5]

错误:

AttributeError                            Traceback (most recent call last)
<ipython-input-93-b0c3faad3a98> in <module>()
      3 #heart_rate
      4 # Put the target (housing value -- MEDV) in another DataFrame
----> 5 target = subject1.DataFrame(data.target, columns=["heart_rate"])

c:\python36\lib\site-packages\pandas\core\generic.py in __getattr__(self, name)
   5177             if self._info_axis._can_hold_identifiers_and_holds_name(name):
   5178                 return self[name]
-> 5179             return object.__getattribute__(self, name)
   5180 
   5181     def __setattr__(self, name, value):

AttributeError: 'DataFrame' object has no attribute 'DataFrame'

用于修复我使用过的错误:

subject1.columns = subject1.columns.str.strip()

还是不行

谢谢,如果我不够精确,请见谅。

【问题讨论】:

  • sn-p 'subject1.DataFrame' 错了……你不妨做'pd.DataFrame'

标签: regression linear-regression python-3.7 k-means


【解决方案1】:

试试这个:

X = df.drop("heart_rate", axis=1)
y = df[[“heart_rate”]]
X=X.apply(zscore)
test_size=0.30
seed=7
X_train, X_test, y_train, y_test=train_test_split(X, y, test_size=test_size, random_state=seed)
lm = linear_model.LinearRegression()
model = lm.fit(X,y)
predictions = lm.predict(X)
print(predictions)[0:5]

【讨论】:

  • zscore 是多少?
  • zscore 是我必须在假设检验中创建的东西吗? , 如果可以,你能举个例子吗?
  • 它似乎在工作,但我得到了 47% 的准确率,我猜这是因为我没有使用你提供的 z 分数,因为我不知道它是什么跨度>
  • @Zaid 您可以尝试使用 MinMaxScaler 将值标准化为 0-1。试一试,确保正确使用 EDA
猜你喜欢
  • 2018-12-01
  • 2020-05-06
  • 2017-10-29
  • 2021-09-25
  • 2017-02-24
  • 2015-10-25
  • 2017-08-19
  • 1970-01-01
  • 2018-10-23
相关资源
最近更新 更多